<?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>196530</bug_id>
          
          <creation_ts>2019-04-03 00:50:24 -0700</creation_ts>
          <short_desc>[JSC] Add FuzzerAgent, which has a hooks to get feedback &amp; inject fuzz data into JSC</short_desc>
          <delta_ts>2019-04-03 15:25:37 -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>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1523637</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-03 00:50:24 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523653</commentid>
    <comment_count>1</comment_count>
      <attachid>366587</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-03 01:59:52 -0700</bug_when>
    <thetext>Created attachment 366587
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523656</commentid>
    <comment_count>2</comment_count>
      <attachid>366589</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-03 02:06:40 -0700</bug_when>
    <thetext>Created attachment 366589
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523657</commentid>
    <comment_count>3</comment_count>
      <attachid>366590</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-03 02:22:31 -0700</bug_when>
    <thetext>Created attachment 366590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523659</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-03 02:42:57 -0700</bug_when>
    <thetext>Maybe, randomizing part is too simple, but I&apos;ll try running this debug build this night, and see the results tomorrow morning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523763</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-03 10:05:36 -0700</bug_when>
    <thetext>I got several test failures. Looking into them.

stress/string-equal-exception-check.js reveals missing exception check.
stress/strict-to-this-int.js reveals incorrect result.
stress/regress-153486.js fails. need to investigate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523768</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-03 10:13:36 -0700</bug_when>
    <thetext>** The following JSC stress test failures have been introduced:
        jsc-layout-tests.yaml/js/script-tests/dfg-double-vote-fuzz.js.layout
        stress/activation-sink-osrexit-default-value-tdz-error.js.ftl-no-cjit-small-pool
        stress/activation-sink-osrexit-default-value.js.ftl-no-cjit-small-pool
        stress/arrowfunction-lexical-this-activation-sink-osrexit.js.ftl-no-cjit-small-pool
        stress/op_bitand.js.misc-ftl-no-cjit
        stress/op_bitor.js.misc-ftl-no-cjit
        stress/op_bitxor.js.misc-ftl-no-cjit
        stress/regress-153486.js.default
        stress/regress-153486.js.dfg-eager
        stress/regress-153486.js.dfg-eager-no-cjit-validate
        stress/regress-153486.js.dfg-maximal-flush-validate-no-cjit
        stress/regress-153486.js.ftl-eager
        stress/regress-153486.js.ftl-eager-no-cjit
        stress/regress-153486.js.ftl-eager-no-cjit-b3o1
        stress/regress-153486.js.ftl-no-cjit-b3o0
        stress/regress-153486.js.ftl-no-cjit-no-put-stack-validate
        stress/regress-153486.js.ftl-no-cjit-validate-sampling-profiler
        stress/regress-153486.js.no-cjit-validate-phases
        stress/regress-153486.js.no-ftl
        stress/regress-153486.js.no-llint
        stress/rest-parameter-many-arguments.js.ftl-no-cjit-small-pool
        stress/strict-to-this-int.js.dfg-eager
        stress/strict-to-this-int.js.dfg-eager-no-cjit-validate
        stress/strict-to-this-int.js.no-cjit-validate-phases
        stress/strict-to-this-int.js.no-ftl
        stress/strict-to-this-int.js.no-llint
        stress/string-equal-exception-check.js.default
        stress/tailCallForwardArguments.js.ftl-no-cjit-small-pool
        stress/validate-int-52-ai-state.js.default

Results for JSC stress tests:
    29 failures found.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523769</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-03 10:13:56 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #6)
&gt; ** The following JSC stress test failures have been introduced:
&gt;         jsc-layout-tests.yaml/js/script-tests/dfg-double-vote-fuzz.js.layout
&gt;        
&gt; stress/activation-sink-osrexit-default-value-tdz-error.js.ftl-no-cjit-small-
&gt; pool
&gt;        
&gt; stress/activation-sink-osrexit-default-value.js.ftl-no-cjit-small-pool
&gt;        
&gt; stress/arrowfunction-lexical-this-activation-sink-osrexit.js.ftl-no-cjit-
&gt; small-pool
&gt;         stress/op_bitand.js.misc-ftl-no-cjit
&gt;         stress/op_bitor.js.misc-ftl-no-cjit
&gt;         stress/op_bitxor.js.misc-ftl-no-cjit
&gt;         stress/regress-153486.js.default
&gt;         stress/regress-153486.js.dfg-eager
&gt;         stress/regress-153486.js.dfg-eager-no-cjit-validate
&gt;         stress/regress-153486.js.dfg-maximal-flush-validate-no-cjit
&gt;         stress/regress-153486.js.ftl-eager
&gt;         stress/regress-153486.js.ftl-eager-no-cjit
&gt;         stress/regress-153486.js.ftl-eager-no-cjit-b3o1
&gt;         stress/regress-153486.js.ftl-no-cjit-b3o0
&gt;         stress/regress-153486.js.ftl-no-cjit-no-put-stack-validate
&gt;         stress/regress-153486.js.ftl-no-cjit-validate-sampling-profiler
&gt;         stress/regress-153486.js.no-cjit-validate-phases
&gt;         stress/regress-153486.js.no-ftl
&gt;         stress/regress-153486.js.no-llint
&gt;         stress/rest-parameter-many-arguments.js.ftl-no-cjit-small-pool
&gt;         stress/strict-to-this-int.js.dfg-eager
&gt;         stress/strict-to-this-int.js.dfg-eager-no-cjit-validate
&gt;         stress/strict-to-this-int.js.no-cjit-validate-phases
&gt;         stress/strict-to-this-int.js.no-ftl
&gt;         stress/strict-to-this-int.js.no-llint
&gt;         stress/string-equal-exception-check.js.default
&gt;         stress/tailCallForwardArguments.js.ftl-no-cjit-small-pool
&gt;         stress/validate-int-52-ai-state.js.default
&gt; 
&gt; Results for JSC stress tests:
&gt;     29 failures found.

Many of them are simple timeout. But it seems that some of them are real issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523949</commentid>
    <comment_count>8</comment_count>
      <attachid>366646</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-03 14:43:07 -0700</bug_when>
    <thetext>Created attachment 366646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523951</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-03 14:46:02 -0700</bug_when>
    <thetext>Attachment 366646 did not pass style-queue:


ERROR: Source/JavaScriptCore/ChangeLog:3:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer, fuzzer, fuzzer, fuzzer, fuzzer, fuzzer, fuzzer, fuzzer, fuzzer, fuzzer, fuzzer, fuzzer, fuzzer, fuzzer, fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 1 in 15 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>1523966</commentid>
    <comment_count>10</comment_count>
      <attachid>366646</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-03 15:06:04 -0700</bug_when>
    <thetext>Comment on attachment 366646
Patch

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

r=me

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:844
&gt; +            auto* fuzzerAgent = m_vm-&gt;fuzzerAgent();
&gt; +            if (UNLIKELY(fuzzerAgent))
&gt; +                return fuzzerAgent-&gt;getPrediction(codeBlock, bytecodeIndex, prediction);

nit: I like to write this as a single line:
if (UNLIKELY(auto* fuzzerAgent = m_vm-&gt;fuzzerAgent()))

&gt; Source/JavaScriptCore/runtime/RandomizingFuzzerAgent.cpp:36
&gt; +SpeculatedType RandomizingFuzzerAgent::getPrediction(CodeBlock*, int, SpeculatedType)

Can we enable this on some of our tests once we pass all tests with it? Maybe worth filing a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523983</commentid>
    <comment_count>11</comment_count>
      <attachid>366646</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-03 15:17:11 -0700</bug_when>
    <thetext>Comment on attachment 366646
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:844
&gt;&gt; +                return fuzzerAgent-&gt;getPrediction(codeBlock, bytecodeIndex, prediction);
&gt; 
&gt; nit: I like to write this as a single line:
&gt; if (UNLIKELY(auto* fuzzerAgent = m_vm-&gt;fuzzerAgent()))

Unfortunately, we cannot do this since `auto* fuzzerAgent = m_vm-&gt;fuzzerAgent()` is not expression, so we cannot wrap it with UNLIKELY.

if (UNLIKELY(auto* fuzzerAgent = m_vm-&gt;fuzzerAgent())) =&gt; compile error

This is why we have two lines now... :(

&gt;&gt; Source/JavaScriptCore/runtime/RandomizingFuzzerAgent.cpp:36
&gt;&gt; +SpeculatedType RandomizingFuzzerAgent::getPrediction(CodeBlock*, int, SpeculatedType)
&gt; 
&gt; Can we enable this on some of our tests once we pass all tests with it? Maybe worth filing a bug.

Yeah, I think we can add an another variant like &quot;-value-profiling-fuzz&quot; in the stress tests to fuzz our engine more. I&apos;ve opened the bug for this https://bugs.webkit.org/show_bug.cgi?id=196569.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523989</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-03 15:24:52 -0700</bug_when>
    <thetext>Committed r243832: &lt;https://trac.webkit.org/changeset/243832&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523990</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-03 15:25:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/49576836&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366587</attachid>
            <date>2019-04-03 01:59:52 -0700</date>
            <delta_ts>2019-04-03 02:06:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196530-20190403015952.patch</filename>
            <type>text/plain</type>
            <size>16276</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NmUyMmRhMmY5YTYyNzQ1NWQ2MTM1ODA3ZTQ0ZmQxM2YwYmJjNjEyLi4wYTFiZTZhMmJiNjc0MWRj
ZjU5ZDljMjU0ODI0YmI1Y2EyMjAxMmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxOS0wNC0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBGdXp6ZXJBZ2VudCwgd2hpY2ggaGFzIGEgaG9va3MgdG8g
Z2V0IGZlZWRiYWNrICYgaW5qZWN0IGZ1enogZGF0YSBpbnRvIEpTQworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NTMwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OnZhbHVlUHJvZmlsZVByZWRpY3Rpb25Gb3JCeXRlY29kZU9m
ZnNldCk6CisgICAgICAgICogcnVudGltZS9EZWZhdWx0RnV6emVyQWdlbnQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6RGVmYXVsdEZ1enplckFnZW50OjpEZWZhdWx0RnV6emVyQWdlbnQpOgor
ICAgICAgICAoSlNDOjpEZWZhdWx0RnV6emVyQWdlbnQ6OmdldFByZWRpY3Rpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvRGVmYXVsdEZ1enplckFnZW50Lmg6IEFkZGVkLgorICAgICAgICAqIHJ1bnRp
bWUvRnV6emVyQWdlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RnV6emVyQWdlbnQ6Omdl
dFByZWRpY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvRnV6emVyQWdlbnQuaDogQWRkZWQuCisg
ICAgICAgIChKU0M6OkZ1enplckFnZW50Ojp+RnV6emVyQWdlbnQpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9u
cy5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0Lmg6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoK
KyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAg
IChKU0M6OlZNOjpmdXp6ZXJBZ2VudCBjb25zdCk6CisgICAgICAgIChKU0M6OlZNOjpzZXRGdXp6
ZXJBZ2VudCk6CisKIDIwMTktMDQtMDIgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5j
b20+CiAKICAgICAgICAgQ3Jhc2ggaW4gT3B0aW9uczo6c2V0T3B0aW9ucygpIHVzaW5nIC0tY29u
ZmlnRmlsZSBvcHRpb24gYW5kIGxpYmdtYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCA2YWYxMWIzNWUwNDIwNTZiMjUxMWE1ODg4ZTcxZGJiMzk2NGVkM2E5Li4yNDRl
NDZiZDM0MDVhYmM1ZjU5OGRhODllNTMyNmVhMzY0NDQyOWY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC04MDYsNiArODA2LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRD
YWNoZS5oCiAgICAgcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCiAgICAgcnVudGltZS9GdW5j
dGlvblJhcmVEYXRhLmgKKyAgICBydW50aW1lL0Z1enplckFnZW50LmgKICAgICBydW50aW1lL0dl
bmVyaWNPZmZzZXQuaAogICAgIHJ1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKICAgICBy
dW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDQ4ZTdlZDk5NGNkYjUxYWZlNGEyOTEzMGNiZGI0N2U5YjNhMDNlZjAuLjk0
ZTc1ZTc4ZWU1MWRhNWMxNmI2YWEwZmQ5NDJhM2FmODRiN2Y0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U291cmNlcy50eHQKQEAgLTczOSw2ICs3MzksNyBAQCBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5j
cHAKIHJ1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCiBydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAK
IHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKK3J1bnRpbWUvRGVmYXVsdEZ1enplckFnZW50LmNw
cAogcnVudGltZS9EaXJlY3RBcmd1bWVudHMuY3BwCiBydW50aW1lL0RpcmVjdEFyZ3VtZW50c09m
ZnNldC5jcHAKIHJ1bnRpbWUvRGlyZWN0RXZhbEV4ZWN1dGFibGUuY3BwCkBAIC03NjQsNiArNzY1
LDcgQEAgcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGVEdW1wLmNwcAogcnVudGltZS9GdW5jdGlv
bkhhc0V4ZWN1dGVkQ2FjaGUuY3BwCiBydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAogcnVu
dGltZS9GdW5jdGlvblJhcmVEYXRhLmNwcAorcnVudGltZS9GdXp6ZXJBZ2VudC5jcHAKIHJ1bnRp
bWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKIHJ1bnRpbWUvR2VuZXJhdG9yRnVu
Y3Rpb25Qcm90b3R5cGUuY3BwCiBydW50aW1lL0dlbmVyYXRvclByb3RvdHlwZS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggMGE5ZWNmMWJh
Y2E0YjkzMWRkOWFkM2EwM2MwZTk0MzFiZjQ3N2ZiNS4uYzZlMDczMTU2MTBhZDNlNTY2NmFmZDZm
YTI2OTg3NjM3YzRkNjFiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5jcHAKQEAgLTI5MzEsOCArMjkzMSwxMiBAQCBWYWx1ZVByb2ZpbGUqIENvZGVCbG9j
azo6dHJ5R2V0VmFsdWVQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0
KQogCiBTcGVjdWxhdGVkVHlwZSBDb2RlQmxvY2s6OnZhbHVlUHJvZmlsZVByZWRpY3Rpb25Gb3JC
eXRlY29kZU9mZnNldChjb25zdCBDb25jdXJyZW50SlNMb2NrZXImIGxvY2tlciwgaW50IGJ5dGVj
b2RlT2Zmc2V0KQogewotICAgIGlmIChWYWx1ZVByb2ZpbGUqIHZhbHVlUHJvZmlsZSA9IHRyeUdl
dFZhbHVlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KSkKLSAgICAgICAg
cmV0dXJuIHZhbHVlUHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlcik7Cisg
ICAgaWYgKFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxlID0gdHJ5R2V0VmFsdWVQcm9maWxlRm9y
Qnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpKSB7CisgICAgICAgIFNwZWN1bGF0ZWRUeXBl
IHJlc3VsdCA9IHZhbHVlUHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlcik7
CisgICAgICAgIGF1dG8qIGZ1enplckFnZW50ID0gbV92bS0+ZnV6emVyQWdlbnQoKTsKKyAgICAg
ICAgaWYgKFVOTElLRUxZKGZ1enplckFnZW50KSkKKyAgICAgICAgICAgIHJldHVybiBmdXp6ZXJB
Z2VudC0+Z2V0UHJlZGljdGlvbihsb2NrZXIsIHRoaXMsIGJ5dGVjb2RlT2Zmc2V0LCByZXN1bHQp
OworICAgIH0KICAgICByZXR1cm4gU3BlY05vbmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RlZmF1bHRGdXp6ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EZWZhdWx0RnV6emVyQWdlbnQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIz
MDg2ZTFiNWJlNzNjMTI4ZWRhOWY2M2I2NTE5ZWFhMjVhNTlhZGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZhdWx0RnV6emVyQWdlbnQuY3BwCkBA
IC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGVmYXVsdEZ1enplckFnZW50Lmgi
CisKK25hbWVzcGFjZSBKU0MgeworCitEZWZhdWx0RnV6emVyQWdlbnQ6OkRlZmF1bHRGdXp6ZXJB
Z2VudChWTSYpCit7Cit9CisKK1NwZWN1bGF0ZWRUeXBlIERlZmF1bHRGdXp6ZXJBZ2VudDo6Z2V0
UHJlZGljdGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYsIENvZGVCbG9jayosIGludCwgU3BlY3Vs
YXRlZFR5cGUgcmVzdWx0KQoreworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmYXVs
dEZ1enplckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZhdWx0RnV6
emVyQWdlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTdlODg0MjA5MmY1MDk0MTE4ZjBlZjcwYzIzY2M0MTVl
MjRlMmVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGVmYXVsdEZ1enplckFnZW50LmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRnV6
emVyQWdlbnQuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFZNOworCitjbGFzcyBEZWZh
dWx0RnV6emVyQWdlbnQgZmluYWwgOiBwdWJsaWMgRnV6emVyQWdlbnQgeworcHVibGljOgorICAg
IERlZmF1bHRGdXp6ZXJBZ2VudChWTSYpOworCisgICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGlj
dGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYsIENvZGVCbG9jayosIGludCBieXRlY29kZU9mZnNl
dCwgU3BlY3VsYXRlZFR5cGUpIG92ZXJyaWRlOworCitwcml2YXRlOgorfTsKKworfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdXp6
ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdXp6ZXJBZ2VudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2NjZjFmYzJjYjkyYTcyNzJiNWQzZDJhZGNkOTQyMjRmMTZiYjUzMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1enplckFn
ZW50LmNwcApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZ1enplckFnZW50
LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitTcGVjdWxhdGVkVHlwZSBGdXp6ZXJBZ2VudDo6Z2V0
UHJlZGljdGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYsIENvZGVCbG9jayosIGludCwgU3BlY3Vs
YXRlZFR5cGUgcmVzdWx0KQoreworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnV6emVy
QWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1enplckFnZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDQxNDdlOTE0ZTU4NDI0NzgyNTlhMDZlN2NkMWMzZGE4ODgwYjlmYwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1enplckFnZW50LmgK
QEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlY3VsYXRlZFR5cGUuaCIKKyNpbmNs
dWRlIDx3dGYvTG9ja2VyLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBDb2RlQmxvY2s7
CisKK2NsYXNzIEZ1enplckFnZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5GdXp6ZXJBZ2Vu
dCgpIHsgfTsKKworICAgIHZpcnR1YWwgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbihjb25z
dCBBYnN0cmFjdExvY2tlciYsIENvZGVCbG9jayosIGludCBieXRlY29kZU9mZnNldCwgU3BlY3Vs
YXRlZFR5cGUpOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKaW5k
ZXggMTA5MDk4MGZmZDRmOGM2ZGUxZjQwMGI0MTllMDAzY2I1NzIwM2UyNC4uOGVkZjQ5ZjFjODQz
YTE3OTIyMWY2OGNmNDIwMWRjYjAwYjhhZjg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcApAQCAtNDQs
NiArNDQsNyBAQAogI2luY2x1ZGUgIkxleGVyLmgiCiAjaW5jbHVkZSAiTGl0ZXJhbFBhcnNlci5o
IgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNp
bmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUGFyc2VJbnQuaCIKICNpbmNsdWRlICJQ
YXJzZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAppbmRleCAxYTFj
ZjA1OWI1YjFmNjYzNzA2YTliMGE2Njk0NTg2ZDAzNzliMThmLi42NDIwODM5NmEyZGYzOTQzZjY3
OGY4YzIyYWMxMmIyMDE2MDdjMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5oCkBAIC00MzQsNiArNDM0LDggQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1i
bHlTdHJlYW1pbmdBcGkgPSBmYWxzZTsKICAgICB2KHVuc2lnbmVkLCBmaXJlT1NSRXhpdEZ1enpB
dCwgMCwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdih1bnNpZ25lZCwgZmlyZU9TUkV4aXRGdXp6
QXRPckFmdGVyLCAwLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICBcCisgICAgdihib29sLCB1c2VE
ZWZhdWx0RnV6emVyQWdlbnQsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICBcCiAgICAg
dihib29sLCBsb2dQaGFzZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihk
b3VibGUsIHJhcmVCbG9ja1BlbmFsdHksIDAuMDAxLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2
KGJvb2wsIGFpckxpbmVhclNjYW5WZXJib3NlLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNoZWRSZXN1
bHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5o
CmluZGV4IGE1YjAzOTE4NWZmYTA1OTIxMmVhNDUxYjYyZGE5MzI1YTZiYzFhZDMuLmUyYzkyYTI5
MTA4YTAzYWU3NTc1YmQxYjhmYTE1YTVhMWU3NzY2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5oCkBAIC0yNSw2ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSGVhcC5oIgogI2luY2x1ZGUgIlJlZ0V4cC5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cEdsb2JhbERhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwR2xvYmFsRGF0YS5jcHAKaW5kZXggZDRjMmRjNTA5MTJkNDdjOWJjMWYxNzEzMWEz
YmU5ZjlmMzU3NjY2YS4uMmRkZTYxODc2MmMxZGYyMzZhZGI0ZDc5MWJjNWY0NDM1ZmQwYTcxMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwR2xvYmFsRGF0
YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwR2xvYmFsRGF0
YS5jcHAKQEAgLTI2LDYgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJS
ZWdFeHBHbG9iYWxEYXRhLmgiCiAKKyNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2lu
Y2x1ZGUgIkpTU3RyaW5nLmgiCisKIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIFJlZ0V4cEdsb2Jh
bERhdGE6OnZpc2l0QWdncmVnYXRlKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IDNlZDZkZTljZTBhODRkYTY3MTljYTk2ZjRhZWYxMzI4
N2Y0YzM4NTMuLjQ4YTI2OTRiZDE3NDUwNGZlNDZhNWZkOWFlNDQyMGUyODU2OWVlODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRl
ICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJDdXN0b21HZXR0ZXJTZXR0ZXIuaCIKICNp
bmNsdWRlICJERkdXb3JrbGlzdC5oIgorI2luY2x1ZGUgIkRlZmF1bHRGdXp6ZXJBZ2VudC5oIgog
I2luY2x1ZGUgIkRpcmVjdEV2YWxFeGVjdXRhYmxlLmgiCiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVy
LmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKQEAgLTQ1Niw2ICs0NTcsOCBAQCBWTTo6Vk0oVk1UeXBl
IHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgICAgIG1fc2FtcGxpbmdQcm9maWxlci0+
c3RhcnQoKTsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKFNBTVBMSU5HX1BST0ZJTEVSKQorICAg
IGlmIChPcHRpb25zOjp1c2VEZWZhdWx0RnV6emVyQWdlbnQoKSkKKyAgICAgICAgc2V0RnV6emVy
QWdlbnQoc3RkOjptYWtlX3VuaXF1ZTxEZWZhdWx0RnV6emVyQWdlbnQ+KCp0aGlzKSk7CiAKICAg
ICBpZiAoT3B0aW9uczo6YWx3YXlzR2VuZXJhdGVQQ1RvQ29kZU9yaWdpbk1hcCgpKQogICAgICAg
ICBzZXRTaG91bGRCdWlsZFBDVG9Db2RlT3JpZ2luTWFwcGluZygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmgKaW5kZXggMDZkZWMwN2RhYzRjNGM1MjUzNTc0MmM3NWJjMmRjYzlhZDZiMjk5
NC4uYzVmYmU1ZWUzOWY0ZDIxZGNlODdhNzg1MjU1OWYyODgzMzdmZjk4MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9u
RXZlbnRMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkV4ZWN1dGFibGVBbGxvY2F0b3IuaCIKICNpbmNs
dWRlICJGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuaCIKKyNpbmNsdWRlICJGdXp6ZXJBZ2VudC5o
IgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJJbnRyaW5zaWMuaCIKICNpbmNsdWRlICJJ
c29DZWxsU2V0LmgiCkBAIC0yOTQsNiArMjk1LDEyIEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgU2FtcGxpbmdQcm9maWxlciYgZW5zdXJlU2FtcGxpbmdQcm9m
aWxlcihSZWZQdHI8U3RvcHdhdGNoPiYmKTsKICNlbmRpZgogCisgICAgRnV6emVyQWdlbnQqIGZ1
enplckFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9mdXp6ZXJBZ2VudC5nZXQoKTsgfQorICAgIHZv
aWQgc2V0RnV6emVyQWdlbnQoc3RkOjp1bmlxdWVfcHRyPEZ1enplckFnZW50PiYmIGZ1enplckFn
ZW50KQorICAgIHsKKyAgICAgICAgbV9mdXp6ZXJBZ2VudCA9IFdURk1vdmUoZnV6emVyQWdlbnQp
OworICAgIH0KKwogICAgIHN0YXRpYyB1bnNpZ25lZCBudW1iZXJPZklEcygpIHsgcmV0dXJuIHNf
bnVtYmVyT2ZJRHMubG9hZCgpOyB9CiAgICAgdW5zaWduZWQgaWQoKSBjb25zdCB7IHJldHVybiBt
X2lkOyB9CiAgICAgYm9vbCBpc0VudGVyZWQoKSBjb25zdCB7IHJldHVybiAhIWVudHJ5U2NvcGU7
IH0KQEAgLTEwMjQsNiArMTAzMSw3IEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAjaWYgRU5BQkxF
KFNBTVBMSU5HX1BST0ZJTEVSKQogICAgIFJlZlB0cjxTYW1wbGluZ1Byb2ZpbGVyPiBtX3NhbXBs
aW5nUHJvZmlsZXI7CiAjZW5kaWYKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RnV6emVyQWdlbnQ+IG1f
ZnV6emVyQWdlbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNoYWRvd0NoaWNrZW4+IG1fc2hhZG93
Q2hpY2tlbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Qnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeT4g
bV9ieXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366589</attachid>
            <date>2019-04-03 02:06:40 -0700</date>
            <delta_ts>2019-04-03 02:22:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196530-20190403020639.patch</filename>
            <type>text/plain</type>
            <size>16299</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NmUyMmRhMmY5YTYyNzQ1NWQ2MTM1ODA3ZTQ0ZmQxM2YwYmJjNjEyLi4wYTFiZTZhMmJiNjc0MWRj
ZjU5ZDljMjU0ODI0YmI1Y2EyMjAxMmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxOS0wNC0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBGdXp6ZXJBZ2VudCwgd2hpY2ggaGFzIGEgaG9va3MgdG8g
Z2V0IGZlZWRiYWNrICYgaW5qZWN0IGZ1enogZGF0YSBpbnRvIEpTQworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NTMwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OnZhbHVlUHJvZmlsZVByZWRpY3Rpb25Gb3JCeXRlY29kZU9m
ZnNldCk6CisgICAgICAgICogcnVudGltZS9EZWZhdWx0RnV6emVyQWdlbnQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6RGVmYXVsdEZ1enplckFnZW50OjpEZWZhdWx0RnV6emVyQWdlbnQpOgor
ICAgICAgICAoSlNDOjpEZWZhdWx0RnV6emVyQWdlbnQ6OmdldFByZWRpY3Rpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvRGVmYXVsdEZ1enplckFnZW50Lmg6IEFkZGVkLgorICAgICAgICAqIHJ1bnRp
bWUvRnV6emVyQWdlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RnV6emVyQWdlbnQ6Omdl
dFByZWRpY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvRnV6emVyQWdlbnQuaDogQWRkZWQuCisg
ICAgICAgIChKU0M6OkZ1enplckFnZW50Ojp+RnV6emVyQWdlbnQpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9u
cy5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0Lmg6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoK
KyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAg
IChKU0M6OlZNOjpmdXp6ZXJBZ2VudCBjb25zdCk6CisgICAgICAgIChKU0M6OlZNOjpzZXRGdXp6
ZXJBZ2VudCk6CisKIDIwMTktMDQtMDIgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5j
b20+CiAKICAgICAgICAgQ3Jhc2ggaW4gT3B0aW9uczo6c2V0T3B0aW9ucygpIHVzaW5nIC0tY29u
ZmlnRmlsZSBvcHRpb24gYW5kIGxpYmdtYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCA2YWYxMWIzNWUwNDIwNTZiMjUxMWE1ODg4ZTcxZGJiMzk2NGVkM2E5Li4yNDRl
NDZiZDM0MDVhYmM1ZjU5OGRhODllNTMyNmVhMzY0NDQyOWY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC04MDYsNiArODA2LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRD
YWNoZS5oCiAgICAgcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCiAgICAgcnVudGltZS9GdW5j
dGlvblJhcmVEYXRhLmgKKyAgICBydW50aW1lL0Z1enplckFnZW50LmgKICAgICBydW50aW1lL0dl
bmVyaWNPZmZzZXQuaAogICAgIHJ1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKICAgICBy
dW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDQ4ZTdlZDk5NGNkYjUxYWZlNGEyOTEzMGNiZGI0N2U5YjNhMDNlZjAuLjk0
ZTc1ZTc4ZWU1MWRhNWMxNmI2YWEwZmQ5NDJhM2FmODRiN2Y0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U291cmNlcy50eHQKQEAgLTczOSw2ICs3MzksNyBAQCBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5j
cHAKIHJ1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCiBydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAK
IHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKK3J1bnRpbWUvRGVmYXVsdEZ1enplckFnZW50LmNw
cAogcnVudGltZS9EaXJlY3RBcmd1bWVudHMuY3BwCiBydW50aW1lL0RpcmVjdEFyZ3VtZW50c09m
ZnNldC5jcHAKIHJ1bnRpbWUvRGlyZWN0RXZhbEV4ZWN1dGFibGUuY3BwCkBAIC03NjQsNiArNzY1
LDcgQEAgcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGVEdW1wLmNwcAogcnVudGltZS9GdW5jdGlv
bkhhc0V4ZWN1dGVkQ2FjaGUuY3BwCiBydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAogcnVu
dGltZS9GdW5jdGlvblJhcmVEYXRhLmNwcAorcnVudGltZS9GdXp6ZXJBZ2VudC5jcHAKIHJ1bnRp
bWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKIHJ1bnRpbWUvR2VuZXJhdG9yRnVu
Y3Rpb25Qcm90b3R5cGUuY3BwCiBydW50aW1lL0dlbmVyYXRvclByb3RvdHlwZS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggMGE5ZWNmMWJh
Y2E0YjkzMWRkOWFkM2EwM2MwZTk0MzFiZjQ3N2ZiNS4uYzZlMDczMTU2MTBhZDNlNTY2NmFmZDZm
YTI2OTg3NjM3YzRkNjFiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5jcHAKQEAgLTI5MzEsOCArMjkzMSwxMiBAQCBWYWx1ZVByb2ZpbGUqIENvZGVCbG9j
azo6dHJ5R2V0VmFsdWVQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0
KQogCiBTcGVjdWxhdGVkVHlwZSBDb2RlQmxvY2s6OnZhbHVlUHJvZmlsZVByZWRpY3Rpb25Gb3JC
eXRlY29kZU9mZnNldChjb25zdCBDb25jdXJyZW50SlNMb2NrZXImIGxvY2tlciwgaW50IGJ5dGVj
b2RlT2Zmc2V0KQogewotICAgIGlmIChWYWx1ZVByb2ZpbGUqIHZhbHVlUHJvZmlsZSA9IHRyeUdl
dFZhbHVlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KSkKLSAgICAgICAg
cmV0dXJuIHZhbHVlUHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlcik7Cisg
ICAgaWYgKFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxlID0gdHJ5R2V0VmFsdWVQcm9maWxlRm9y
Qnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpKSB7CisgICAgICAgIFNwZWN1bGF0ZWRUeXBl
IHJlc3VsdCA9IHZhbHVlUHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlcik7
CisgICAgICAgIGF1dG8qIGZ1enplckFnZW50ID0gbV92bS0+ZnV6emVyQWdlbnQoKTsKKyAgICAg
ICAgaWYgKFVOTElLRUxZKGZ1enplckFnZW50KSkKKyAgICAgICAgICAgIHJldHVybiBmdXp6ZXJB
Z2VudC0+Z2V0UHJlZGljdGlvbihsb2NrZXIsIHRoaXMsIGJ5dGVjb2RlT2Zmc2V0LCByZXN1bHQp
OworICAgIH0KICAgICByZXR1cm4gU3BlY05vbmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RlZmF1bHRGdXp6ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EZWZhdWx0RnV6emVyQWdlbnQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIz
MDg2ZTFiNWJlNzNjMTI4ZWRhOWY2M2I2NTE5ZWFhMjVhNTlhZGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZhdWx0RnV6emVyQWdlbnQuY3BwCkBA
IC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGVmYXVsdEZ1enplckFnZW50Lmgi
CisKK25hbWVzcGFjZSBKU0MgeworCitEZWZhdWx0RnV6emVyQWdlbnQ6OkRlZmF1bHRGdXp6ZXJB
Z2VudChWTSYpCit7Cit9CisKK1NwZWN1bGF0ZWRUeXBlIERlZmF1bHRGdXp6ZXJBZ2VudDo6Z2V0
UHJlZGljdGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYsIENvZGVCbG9jayosIGludCwgU3BlY3Vs
YXRlZFR5cGUgcmVzdWx0KQoreworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmYXVs
dEZ1enplckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZhdWx0RnV6
emVyQWdlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTdlODg0MjA5MmY1MDk0MTE4ZjBlZjcwYzIzY2M0MTVl
MjRlMmVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGVmYXVsdEZ1enplckFnZW50LmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRnV6
emVyQWdlbnQuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFZNOworCitjbGFzcyBEZWZh
dWx0RnV6emVyQWdlbnQgZmluYWwgOiBwdWJsaWMgRnV6emVyQWdlbnQgeworcHVibGljOgorICAg
IERlZmF1bHRGdXp6ZXJBZ2VudChWTSYpOworCisgICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGlj
dGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYsIENvZGVCbG9jayosIGludCBieXRlY29kZU9mZnNl
dCwgU3BlY3VsYXRlZFR5cGUpIG92ZXJyaWRlOworCitwcml2YXRlOgorfTsKKworfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdXp6
ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdXp6ZXJBZ2VudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2NjZjFmYzJjYjkyYTcyNzJiNWQzZDJhZGNkOTQyMjRmMTZiYjUzMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1enplckFn
ZW50LmNwcApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZ1enplckFnZW50
LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitTcGVjdWxhdGVkVHlwZSBGdXp6ZXJBZ2VudDo6Z2V0
UHJlZGljdGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYsIENvZGVCbG9jayosIGludCwgU3BlY3Vs
YXRlZFR5cGUgcmVzdWx0KQoreworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnV6emVy
QWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1enplckFnZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDQxNDdlOTE0ZTU4NDI0NzgyNTlhMDZlN2NkMWMzZGE4ODgwYjlmYwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1enplckFnZW50LmgK
QEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlY3VsYXRlZFR5cGUuaCIKKyNpbmNs
dWRlIDx3dGYvTG9ja2VyLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBDb2RlQmxvY2s7
CisKK2NsYXNzIEZ1enplckFnZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5GdXp6ZXJBZ2Vu
dCgpIHsgfTsKKworICAgIHZpcnR1YWwgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbihjb25z
dCBBYnN0cmFjdExvY2tlciYsIENvZGVCbG9jayosIGludCBieXRlY29kZU9mZnNldCwgU3BlY3Vs
YXRlZFR5cGUpOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKaW5k
ZXggMTA5MDk4MGZmZDRmOGM2ZGUxZjQwMGI0MTllMDAzY2I1NzIwM2UyNC4uOGVkZjQ5ZjFjODQz
YTE3OTIyMWY2OGNmNDIwMWRjYjAwYjhhZjg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcApAQCAtNDQs
NiArNDQsNyBAQAogI2luY2x1ZGUgIkxleGVyLmgiCiAjaW5jbHVkZSAiTGl0ZXJhbFBhcnNlci5o
IgogI2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNp
bmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUGFyc2VJbnQuaCIKICNpbmNsdWRlICJQ
YXJzZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAppbmRleCAxYTFj
ZjA1OWI1YjFmNjYzNzA2YTliMGE2Njk0NTg2ZDAzNzliMThmLi42NDIwODM5NmEyZGYzOTQzZjY3
OGY4YzIyYWMxMmIyMDE2MDdjMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5oCkBAIC00MzQsNiArNDM0LDggQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1i
bHlTdHJlYW1pbmdBcGkgPSBmYWxzZTsKICAgICB2KHVuc2lnbmVkLCBmaXJlT1NSRXhpdEZ1enpB
dCwgMCwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdih1bnNpZ25lZCwgZmlyZU9TUkV4aXRGdXp6
QXRPckFmdGVyLCAwLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICBcCisgICAgdihib29sLCB1c2VE
ZWZhdWx0RnV6emVyQWdlbnQsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICBcCiAgICAg
dihib29sLCBsb2dQaGFzZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihk
b3VibGUsIHJhcmVCbG9ja1BlbmFsdHksIDAuMDAxLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2
KGJvb2wsIGFpckxpbmVhclNjYW5WZXJib3NlLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNoZWRSZXN1
bHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5o
CmluZGV4IGE1YjAzOTE4NWZmYTA1OTIxMmVhNDUxYjYyZGE5MzI1YTZiYzFhZDMuLjVhYThhMzlm
MTIwM2M0NjVkNDMxOTE1ZWIxNzdiMTQzMWFiZGZjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5oCkBAIC0yNSw2ICsyNSw4IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUgIkpTT2JqZWN0
LmgiCiAjaW5jbHVkZSAiUmVnRXhwLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwR2xvYmFsRGF0YS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBHbG9iYWxEYXRhLmNwcAppbmRleCBkNGMy
ZGM1MDkxMmQ0N2M5YmMxZjE3MTMxYTNiZTlmOWYzNTc2NjZhLi4yZGRlNjE4NzYyYzFkZjIzNmFk
YjRkNzkxYmM1ZjQ0MzVmZDBhNzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBHbG9iYWxEYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBHbG9iYWxEYXRhLmNwcApAQCAtMjYsNiArMjYsOSBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlZ0V4cEdsb2JhbERhdGEuaCIKIAorI2luY2x1ZGUgIkpT
Q0pTVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKwogbmFtZXNwYWNlIEpT
QyB7CiAKIHZvaWQgUmVnRXhwR2xvYmFsRGF0YTo6dmlzaXRBZ2dyZWdhdGUoU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggM2VkNmRlOWNl
MGE4NGRhNjcxOWNhOTZmNGFlZjEzMjg3ZjRjMzg1My4uNDhhMjY5NGJkMTc0NTA0ZmU0NmE1ZmQ5
YWU0NDIwZTI4NTY5ZWU4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAt
MzksNiArMzksNyBAQAogI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkN1
c3RvbUdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCisjaW5jbHVkZSAi
RGVmYXVsdEZ1enplckFnZW50LmgiCiAjaW5jbHVkZSAiRGlyZWN0RXZhbEV4ZWN1dGFibGUuaCIK
ICNpbmNsdWRlICJEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJFcnJvci5oIgpAQCAtNDU2LDYg
KzQ1Nyw4IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAg
ICAgbV9zYW1wbGluZ1Byb2ZpbGVyLT5zdGFydCgpOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUo
U0FNUExJTkdfUFJPRklMRVIpCisgICAgaWYgKE9wdGlvbnM6OnVzZURlZmF1bHRGdXp6ZXJBZ2Vu
dCgpKQorICAgICAgICBzZXRGdXp6ZXJBZ2VudChzdGQ6Om1ha2VfdW5pcXVlPERlZmF1bHRGdXp6
ZXJBZ2VudD4oKnRoaXMpKTsKIAogICAgIGlmIChPcHRpb25zOjphbHdheXNHZW5lcmF0ZVBDVG9D
b2RlT3JpZ2luTWFwKCkpCiAgICAgICAgIHNldFNob3VsZEJ1aWxkUENUb0NvZGVPcmlnaW5NYXBw
aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCAwNmRlYzA3ZGFjNGM0YzUy
NTM1NzQyYzc1YmMyZGNjOWFkNmIyOTk0Li5jNWZiZTVlZTM5ZjRkMjFkY2U4N2E3ODUyNTU5ZjI4
ODMzN2ZmOTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTM4LDYgKzM4LDcg
QEAKICNpbmNsdWRlICJFeGNlcHRpb25FdmVudExvY2F0aW9uLmgiCiAjaW5jbHVkZSAiRXhlY3V0
YWJsZUFsbG9jYXRvci5oIgogI2luY2x1ZGUgIkZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5oIgor
I2luY2x1ZGUgIkZ1enplckFnZW50LmgiCiAjaW5jbHVkZSAiSGVhcC5oIgogI2luY2x1ZGUgIklu
dHJpbnNpYy5oIgogI2luY2x1ZGUgIklzb0NlbGxTZXQuaCIKQEAgLTI5NCw2ICsyOTUsMTIgQEAg
Y2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5
TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICBKU19FWFBPUlRfUFJJVkFURSBTYW1wbGluZ1Byb2Zp
bGVyJiBlbnN1cmVTYW1wbGluZ1Byb2ZpbGVyKFJlZlB0cjxTdG9wd2F0Y2g+JiYpOwogI2VuZGlm
CiAKKyAgICBGdXp6ZXJBZ2VudCogZnV6emVyQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2Z1enpl
ckFnZW50LmdldCgpOyB9CisgICAgdm9pZCBzZXRGdXp6ZXJBZ2VudChzdGQ6OnVuaXF1ZV9wdHI8
RnV6emVyQWdlbnQ+JiYgZnV6emVyQWdlbnQpCisgICAgeworICAgICAgICBtX2Z1enplckFnZW50
ID0gV1RGTW92ZShmdXp6ZXJBZ2VudCk7CisgICAgfQorCiAgICAgc3RhdGljIHVuc2lnbmVkIG51
bWJlck9mSURzKCkgeyByZXR1cm4gc19udW1iZXJPZklEcy5sb2FkKCk7IH0KICAgICB1bnNpZ25l
ZCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KICAgICBib29sIGlzRW50ZXJlZCgpIGNvbnN0
IHsgcmV0dXJuICEhZW50cnlTY29wZTsgfQpAQCAtMTAyNCw2ICsxMDMxLDcgQEAgY2xhc3MgVk0g
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlz
dE5vZGU8Vk0+IHsKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCiAgICAgUmVmUHRyPFNh
bXBsaW5nUHJvZmlsZXI+IG1fc2FtcGxpbmdQcm9maWxlcjsKICNlbmRpZgorICAgIHN0ZDo6dW5p
cXVlX3B0cjxGdXp6ZXJBZ2VudD4gbV9mdXp6ZXJBZ2VudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
U2hhZG93Q2hpY2tlbj4gbV9zaGFkb3dDaGlja2VuOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxCeXRl
Y29kZUludHJpbnNpY1JlZ2lzdHJ5PiBtX2J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366590</attachid>
            <date>2019-04-03 02:22:31 -0700</date>
            <delta_ts>2019-04-03 14:43:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196530-20190403022230.patch</filename>
            <type>text/plain</type>
            <size>16638</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NmUyMmRhMmY5YTYyNzQ1NWQ2MTM1ODA3ZTQ0ZmQxM2YwYmJjNjEyLi4wYTFiZTZhMmJiNjc0MWRj
ZjU5ZDljMjU0ODI0YmI1Y2EyMjAxMmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxOS0wNC0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBGdXp6ZXJBZ2VudCwgd2hpY2ggaGFzIGEgaG9va3MgdG8g
Z2V0IGZlZWRiYWNrICYgaW5qZWN0IGZ1enogZGF0YSBpbnRvIEpTQworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NTMwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OnZhbHVlUHJvZmlsZVByZWRpY3Rpb25Gb3JCeXRlY29kZU9m
ZnNldCk6CisgICAgICAgICogcnVudGltZS9EZWZhdWx0RnV6emVyQWdlbnQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6RGVmYXVsdEZ1enplckFnZW50OjpEZWZhdWx0RnV6emVyQWdlbnQpOgor
ICAgICAgICAoSlNDOjpEZWZhdWx0RnV6emVyQWdlbnQ6OmdldFByZWRpY3Rpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvRGVmYXVsdEZ1enplckFnZW50Lmg6IEFkZGVkLgorICAgICAgICAqIHJ1bnRp
bWUvRnV6emVyQWdlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RnV6emVyQWdlbnQ6Omdl
dFByZWRpY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvRnV6emVyQWdlbnQuaDogQWRkZWQuCisg
ICAgICAgIChKU0M6OkZ1enplckFnZW50Ojp+RnV6emVyQWdlbnQpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9u
cy5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0Lmg6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoK
KyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAg
IChKU0M6OlZNOjpmdXp6ZXJBZ2VudCBjb25zdCk6CisgICAgICAgIChKU0M6OlZNOjpzZXRGdXp6
ZXJBZ2VudCk6CisKIDIwMTktMDQtMDIgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5j
b20+CiAKICAgICAgICAgQ3Jhc2ggaW4gT3B0aW9uczo6c2V0T3B0aW9ucygpIHVzaW5nIC0tY29u
ZmlnRmlsZSBvcHRpb24gYW5kIGxpYmdtYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCA2YWYxMWIzNWUwNDIwNTZiMjUxMWE1ODg4ZTcxZGJiMzk2NGVkM2E5Li4yNDRl
NDZiZDM0MDVhYmM1ZjU5OGRhODllNTMyNmVhMzY0NDQyOWY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC04MDYsNiArODA2LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRD
YWNoZS5oCiAgICAgcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCiAgICAgcnVudGltZS9GdW5j
dGlvblJhcmVEYXRhLmgKKyAgICBydW50aW1lL0Z1enplckFnZW50LmgKICAgICBydW50aW1lL0dl
bmVyaWNPZmZzZXQuaAogICAgIHJ1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKICAgICBy
dW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDQ4ZTdlZDk5NGNkYjUxYWZlNGEyOTEzMGNiZGI0N2U5YjNhMDNlZjAuLjk0
ZTc1ZTc4ZWU1MWRhNWMxNmI2YWEwZmQ5NDJhM2FmODRiN2Y0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U291cmNlcy50eHQKQEAgLTczOSw2ICs3MzksNyBAQCBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5j
cHAKIHJ1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCiBydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAK
IHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKK3J1bnRpbWUvRGVmYXVsdEZ1enplckFnZW50LmNw
cAogcnVudGltZS9EaXJlY3RBcmd1bWVudHMuY3BwCiBydW50aW1lL0RpcmVjdEFyZ3VtZW50c09m
ZnNldC5jcHAKIHJ1bnRpbWUvRGlyZWN0RXZhbEV4ZWN1dGFibGUuY3BwCkBAIC03NjQsNiArNzY1
LDcgQEAgcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGVEdW1wLmNwcAogcnVudGltZS9GdW5jdGlv
bkhhc0V4ZWN1dGVkQ2FjaGUuY3BwCiBydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAogcnVu
dGltZS9GdW5jdGlvblJhcmVEYXRhLmNwcAorcnVudGltZS9GdXp6ZXJBZ2VudC5jcHAKIHJ1bnRp
bWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKIHJ1bnRpbWUvR2VuZXJhdG9yRnVu
Y3Rpb25Qcm90b3R5cGUuY3BwCiBydW50aW1lL0dlbmVyYXRvclByb3RvdHlwZS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggMGE5ZWNmMWJh
Y2E0YjkzMWRkOWFkM2EwM2MwZTk0MzFiZjQ3N2ZiNS4uYzZlMDczMTU2MTBhZDNlNTY2NmFmZDZm
YTI2OTg3NjM3YzRkNjFiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5jcHAKQEAgLTI5MzEsOCArMjkzMSwxMiBAQCBWYWx1ZVByb2ZpbGUqIENvZGVCbG9j
azo6dHJ5R2V0VmFsdWVQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0
KQogCiBTcGVjdWxhdGVkVHlwZSBDb2RlQmxvY2s6OnZhbHVlUHJvZmlsZVByZWRpY3Rpb25Gb3JC
eXRlY29kZU9mZnNldChjb25zdCBDb25jdXJyZW50SlNMb2NrZXImIGxvY2tlciwgaW50IGJ5dGVj
b2RlT2Zmc2V0KQogewotICAgIGlmIChWYWx1ZVByb2ZpbGUqIHZhbHVlUHJvZmlsZSA9IHRyeUdl
dFZhbHVlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KSkKLSAgICAgICAg
cmV0dXJuIHZhbHVlUHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlcik7Cisg
ICAgaWYgKFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxlID0gdHJ5R2V0VmFsdWVQcm9maWxlRm9y
Qnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpKSB7CisgICAgICAgIFNwZWN1bGF0ZWRUeXBl
IHJlc3VsdCA9IHZhbHVlUHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlcik7
CisgICAgICAgIGF1dG8qIGZ1enplckFnZW50ID0gbV92bS0+ZnV6emVyQWdlbnQoKTsKKyAgICAg
ICAgaWYgKFVOTElLRUxZKGZ1enplckFnZW50KSkKKyAgICAgICAgICAgIHJldHVybiBmdXp6ZXJB
Z2VudC0+Z2V0UHJlZGljdGlvbihsb2NrZXIsIHRoaXMsIGJ5dGVjb2RlT2Zmc2V0LCByZXN1bHQp
OworICAgIH0KICAgICByZXR1cm4gU3BlY05vbmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RlZmF1bHRGdXp6ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EZWZhdWx0RnV6emVyQWdlbnQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0
YTdkMmUxMzA1NTJhYjViMzdkMTI5ZGJiMjFmYmY0MGI4ZDc5ZjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZhdWx0RnV6emVyQWdlbnQuY3BwCkBA
IC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGVmYXVsdEZ1enplckFnZW50Lmgi
CisKK25hbWVzcGFjZSBKU0MgeworCitEZWZhdWx0RnV6emVyQWdlbnQ6OkRlZmF1bHRGdXp6ZXJB
Z2VudChWTSYpCisgICAgOiBtX3JhbmRvbSgxKQoreworfQorCitTcGVjdWxhdGVkVHlwZSBEZWZh
dWx0RnV6emVyQWdlbnQ6OmdldFByZWRpY3Rpb24oY29uc3QgQWJzdHJhY3RMb2NrZXImLCBDb2Rl
QmxvY2sqLCBpbnQsIFNwZWN1bGF0ZWRUeXBlKQoreworICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9sb2NrKTsKKyAgICB1aW50MzJfdCBoaWdoID0gbV9yYW5kb20uZ2V0VWludDMyKCk7Cisg
ICAgdWludDMyX3QgbG93ID0gbV9yYW5kb20uZ2V0VWludDMyKCk7CisgICAgdWludDY0X3QgcmVz
dWx0ID0gKHN0YXRpY19jYXN0PHVpbnQ2NF90PihoaWdoKSA8PCAzMikgfCBsb3c7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFNwZWN1bGF0ZWRUeXBlPihyZXN1bHQpICYgU3BlY0Z1bGxUb3A7Cit9
CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGVmYXVsdEZ1enplckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EZWZhdWx0RnV6emVyQWdlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Nzg0Zjg1NGQyZGYzYzA3ZmYx
YTAwODgyNDZjZWZjMWVmZTI1NzExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGVmYXVsdEZ1enplckFnZW50LmgKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiRnV6emVyQWdlbnQuaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUmFuZG9tLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBWTTsKKwor
Y2xhc3MgRGVmYXVsdEZ1enplckFnZW50IGZpbmFsIDogcHVibGljIEZ1enplckFnZW50IHsKK3B1
YmxpYzoKKyAgICBEZWZhdWx0RnV6emVyQWdlbnQoVk0mKTsKKworICAgIFNwZWN1bGF0ZWRUeXBl
IGdldFByZWRpY3Rpb24oY29uc3QgQWJzdHJhY3RMb2NrZXImLCBDb2RlQmxvY2sqLCBpbnQgYnl0
ZWNvZGVPZmZzZXQsIFNwZWN1bGF0ZWRUeXBlKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBX
ZWFrUmFuZG9tIG1fcmFuZG9tOworICAgIExvY2sgbV9sb2NrOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdXp6ZXJB
Z2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdXp6ZXJBZ2VudC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2NjZjFmYzJjYjkyYTcyNzJiNWQzZDJhZGNkOTQyMjRmMTZiYjUzMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1enplckFnZW50
LmNwcApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZ1enplckFnZW50Lmgi
CisKK25hbWVzcGFjZSBKU0MgeworCitTcGVjdWxhdGVkVHlwZSBGdXp6ZXJBZ2VudDo6Z2V0UHJl
ZGljdGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYsIENvZGVCbG9jayosIGludCwgU3BlY3VsYXRl
ZFR5cGUgcmVzdWx0KQoreworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnV6emVyQWdl
bnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1enplckFnZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDQxNDdlOTE0ZTU4NDI0NzgyNTlhMDZlN2NkMWMzZGE4ODgwYjlmYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1enplckFnZW50LmgKQEAg
LTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlY3VsYXRlZFR5cGUuaCIKKyNpbmNsdWRl
IDx3dGYvTG9ja2VyLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBDb2RlQmxvY2s7CisK
K2NsYXNzIEZ1enplckFnZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5GdXp6ZXJBZ2VudCgp
IHsgfTsKKworICAgIHZpcnR1YWwgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbihjb25zdCBB
YnN0cmFjdExvY2tlciYsIENvZGVCbG9jayosIGludCBieXRlY29kZU9mZnNldCwgU3BlY3VsYXRl
ZFR5cGUpOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKaW5kZXgg
MTA5MDk4MGZmZDRmOGM2ZGUxZjQwMGI0MTllMDAzY2I1NzIwM2UyNC4uOGVkZjQ5ZjFjODQzYTE3
OTIyMWY2OGNmNDIwMWRjYjAwYjhhZjg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcApAQCAtNDQsNiAr
NDQsNyBAQAogI2luY2x1ZGUgIkxleGVyLmgiCiAjaW5jbHVkZSAiTGl0ZXJhbFBhcnNlci5oIgog
I2luY2x1ZGUgIk5vZGVzLmgiCisjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNs
dWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUGFyc2VJbnQuaCIKICNpbmNsdWRlICJQYXJz
ZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAppbmRleCAxYTFjZjA1
OWI1YjFmNjYzNzA2YTliMGE2Njk0NTg2ZDAzNzliMThmLi42NDIwODM5NmEyZGYzOTQzZjY3OGY4
YzIyYWMxMmIyMDE2MDdjMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9u
cy5oCkBAIC00MzQsNiArNDM0LDggQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1ibHlT
dHJlYW1pbmdBcGkgPSBmYWxzZTsKICAgICB2KHVuc2lnbmVkLCBmaXJlT1NSRXhpdEZ1enpBdCwg
MCwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdih1bnNpZ25lZCwgZmlyZU9TUkV4aXRGdXp6QXRP
ckFmdGVyLCAwLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICBcCisgICAgdihib29sLCB1c2VEZWZh
dWx0RnV6emVyQWdlbnQsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICBcCiAgICAgdihi
b29sLCBsb2dQaGFzZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihkb3Vi
bGUsIHJhcmVCbG9ja1BlbmFsdHksIDAuMDAxLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJv
b2wsIGFpckxpbmVhclNjYW5WZXJib3NlLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNoZWRSZXN1bHQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5oCmlu
ZGV4IGE1YjAzOTE4NWZmYTA1OTIxMmVhNDUxYjYyZGE5MzI1YTZiYzFhZDMuLjVhYThhMzlmMTIw
M2M0NjVkNDMxOTE1ZWIxNzdiMTQzMWFiZGZjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5oCkBAIC0yNSw2ICsyNSw4IEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUgIkpTT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiUmVnRXhwLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwR2xvYmFsRGF0YS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBHbG9iYWxEYXRhLmNwcAppbmRleCBkNGMyZGM1
MDkxMmQ0N2M5YmMxZjE3MTMxYTNiZTlmOWYzNTc2NjZhLi4yZGRlNjE4NzYyYzFkZjIzNmFkYjRk
NzkxYmM1ZjQ0MzVmZDBhNzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBHbG9iYWxEYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBHbG9iYWxEYXRhLmNwcApAQCAtMjYsNiArMjYsOSBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIlJlZ0V4cEdsb2JhbERhdGEuaCIKIAorI2luY2x1ZGUgIkpTQ0pT
VmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKwogbmFtZXNwYWNlIEpTQyB7
CiAKIHZvaWQgUmVnRXhwR2xvYmFsRGF0YTo6dmlzaXRBZ2dyZWdhdGUoU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggM2VkNmRlOWNlMGE4
NGRhNjcxOWNhOTZmNGFlZjEzMjg3ZjRjMzg1My4uNDhhMjY5NGJkMTc0NTA0ZmU0NmE1ZmQ5YWU0
NDIwZTI4NTY5ZWU4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMzks
NiArMzksNyBAQAogI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkN1c3Rv
bUdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCisjaW5jbHVkZSAiRGVm
YXVsdEZ1enplckFnZW50LmgiCiAjaW5jbHVkZSAiRGlyZWN0RXZhbEV4ZWN1dGFibGUuaCIKICNp
bmNsdWRlICJEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJFcnJvci5oIgpAQCAtNDU2LDYgKzQ1
Nyw4IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAgICAg
bV9zYW1wbGluZ1Byb2ZpbGVyLT5zdGFydCgpOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoU0FN
UExJTkdfUFJPRklMRVIpCisgICAgaWYgKE9wdGlvbnM6OnVzZURlZmF1bHRGdXp6ZXJBZ2VudCgp
KQorICAgICAgICBzZXRGdXp6ZXJBZ2VudChzdGQ6Om1ha2VfdW5pcXVlPERlZmF1bHRGdXp6ZXJB
Z2VudD4oKnRoaXMpKTsKIAogICAgIGlmIChPcHRpb25zOjphbHdheXNHZW5lcmF0ZVBDVG9Db2Rl
T3JpZ2luTWFwKCkpCiAgICAgICAgIHNldFNob3VsZEJ1aWxkUENUb0NvZGVPcmlnaW5NYXBwaW5n
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCAwNmRlYzA3ZGFjNGM0YzUyNTM1
NzQyYzc1YmMyZGNjOWFkNmIyOTk0Li5jNWZiZTVlZTM5ZjRkMjFkY2U4N2E3ODUyNTU5ZjI4ODMz
N2ZmOTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTM4LDYgKzM4LDcgQEAK
ICNpbmNsdWRlICJFeGNlcHRpb25FdmVudExvY2F0aW9uLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJs
ZUFsbG9jYXRvci5oIgogI2luY2x1ZGUgIkZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5oIgorI2lu
Y2x1ZGUgIkZ1enplckFnZW50LmgiCiAjaW5jbHVkZSAiSGVhcC5oIgogI2luY2x1ZGUgIkludHJp
bnNpYy5oIgogI2luY2x1ZGUgIklzb0NlbGxTZXQuaCIKQEAgLTI5NCw2ICsyOTUsMTIgQEAgY2xh
c3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlu
a2VkTGlzdE5vZGU8Vk0+IHsKICAgICBKU19FWFBPUlRfUFJJVkFURSBTYW1wbGluZ1Byb2ZpbGVy
JiBlbnN1cmVTYW1wbGluZ1Byb2ZpbGVyKFJlZlB0cjxTdG9wd2F0Y2g+JiYpOwogI2VuZGlmCiAK
KyAgICBGdXp6ZXJBZ2VudCogZnV6emVyQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2Z1enplckFn
ZW50LmdldCgpOyB9CisgICAgdm9pZCBzZXRGdXp6ZXJBZ2VudChzdGQ6OnVuaXF1ZV9wdHI8RnV6
emVyQWdlbnQ+JiYgZnV6emVyQWdlbnQpCisgICAgeworICAgICAgICBtX2Z1enplckFnZW50ID0g
V1RGTW92ZShmdXp6ZXJBZ2VudCk7CisgICAgfQorCiAgICAgc3RhdGljIHVuc2lnbmVkIG51bWJl
ck9mSURzKCkgeyByZXR1cm4gc19udW1iZXJPZklEcy5sb2FkKCk7IH0KICAgICB1bnNpZ25lZCBp
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KICAgICBib29sIGlzRW50ZXJlZCgpIGNvbnN0IHsg
cmV0dXJuICEhZW50cnlTY29wZTsgfQpAQCAtMTAyNCw2ICsxMDMxLDcgQEAgY2xhc3MgVk0gOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5v
ZGU8Vk0+IHsKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCiAgICAgUmVmUHRyPFNhbXBs
aW5nUHJvZmlsZXI+IG1fc2FtcGxpbmdQcm9maWxlcjsKICNlbmRpZgorICAgIHN0ZDo6dW5pcXVl
X3B0cjxGdXp6ZXJBZ2VudD4gbV9mdXp6ZXJBZ2VudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2hh
ZG93Q2hpY2tlbj4gbV9zaGFkb3dDaGlja2VuOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxCeXRlY29k
ZUludHJpbnNpY1JlZ2lzdHJ5PiBtX2J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366646</attachid>
            <date>2019-04-03 14:43:07 -0700</date>
            <delta_ts>2019-04-03 15:06:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196530-20190403144306.patch</filename>
            <type>text/plain</type>
            <size>25139</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NzYxYTU5ODQyOTdhNzM4OTRmNGQyNmY0ZTNiNzZiY2E2YzNiMTRkLi43YTAyYzZjOTYzOTQzMTYx
ZDJmYjA3MGY3MzhkNzM5NTc5ZmFhYTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxOS0wNC0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBGdXp6ZXJBZ2VudCwgd2hpY2ggaGFzIGEgaG9va3MgdG8g
Z2V0IGZlZWRiYWNrICYgaW5qZWN0IGZ1enogZGF0YSBpbnRvIEpTQworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NTMwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIEZ1enplckFn
ZW50IGludGVyZmFjZSBhbmQgc2ltcGxlIFJhbmRvbWl6aW5nRnV6emVyQWdlbnQgdG8gSlNDLgor
ICAgICAgICBUaGlzIFJhbmRvbWl6aW5nRnV6emVyQWdlbnQgcmV0dXJucyByYW5kb20gU3BlY3Vs
YXRlZFR5cGUgZm9yIHZhbHVlIHByb2ZpbGluZyB0byBmaW5kCisgICAgICAgIHRoZSBpc3N1ZXMg
aW4gSlNDLiBUaGUgc2VlZCBmb3IgcmFuZG9taXphdGlvbiBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNl
ZWRPZlJhbmRvbWl6aW5nRnV6emVyQWdlbnQuCisKKyAgICAgICAgSSByYW4gdGhpcyB3aXRoIHNl
ZWRPZlJhbmRvbWl6aW5nRnV6emVyQWdlbnQ9MSBsYXN0IG5pZ2h0IGFuZCBpdCBmaW5kcyAzIGZh
aWx1cmVzIGluIHRoZSBjdXJyZW50IEpTQyB0ZXN0cywKKyAgICAgICAgdGhleSBzaG91bGQgYmUg
Zml4ZWQgaW4gc3Vic2VxdWVudCBwYXRjaGVzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpnZXRQcmVkaWN0aW9uV2l0aG91
dE9TUkV4aXQpOgorICAgICAgICAqIHJ1bnRpbWUvRnV6emVyQWdlbnQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKEpTQzo6RnV6emVyQWdlbnQ6On5GdXp6ZXJBZ2VudCk6CisgICAgICAgIChKU0M6OkZ1
enplckFnZW50OjpnZXRQcmVkaWN0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0Z1enplckFnZW50
Lmg6IEFkZGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvUmFuZG9t
aXppbmdGdXp6ZXJBZ2VudC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpSYW5kb21pemluZ0Z1
enplckFnZW50OjpSYW5kb21pemluZ0Z1enplckFnZW50KToKKyAgICAgICAgKEpTQzo6UmFuZG9t
aXppbmdGdXp6ZXJBZ2VudDo6Z2V0UHJlZGljdGlvbik6CisgICAgICAgICogcnVudGltZS9SYW5k
b21pemluZ0Z1enplckFnZW50Lmg6IEFkZGVkLgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2Fj
aGVkUmVzdWx0Lmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBHbG9iYWxEYXRhLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAg
KiBydW50aW1lL1ZNLmg6CisgICAgICAgIChKU0M6OlZNOjpmdXp6ZXJBZ2VudCBjb25zdCk6Cisg
ICAgICAgIChKU0M6OlZNOjpzZXRGdXp6ZXJBZ2VudCk6CisKIDIwMTktMDQtMDMgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZW1vdGUgSW5zcGVjdG9yIGluZGljYXRlIGNhbGxiYWNrIHNob3VsZCBhbHdheXMgaGFwcGVuIG9u
IHRoZSBtYWluIHRocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDZh
ZjExYjM1ZTA0MjA1NmIyNTExYTU4ODhlNzFkYmIzOTY0ZWQzYTkuLjI0NGU0NmJkMzQwNWFiYzVm
NTk4ZGE4OWU1MzI2ZWEzNjQ0NDI5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTgwNiw2ICs4MDYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBREVSUwogICAgIHJ1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmgKICAgICBy
dW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKICAgICBydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEu
aAorICAgIHJ1bnRpbWUvRnV6emVyQWdlbnQuaAogICAgIHJ1bnRpbWUvR2VuZXJpY09mZnNldC5o
CiAgICAgcnVudGltZS9HZW5lcmljVHlwZWRBcnJheVZpZXcuaAogICAgIHJ1bnRpbWUvR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGVhNWFiNDA4MzU2ODc1OTAwYTcxNjFhZjZiMjJhZDhiNDVmYmMyOTkuLjRjMzAwMGQ4MjU5OGU0
YWMyZDBlN2MzMWM0ZGU4ZGFjYWYzMGFiZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNzU0LDYgKzE3NTQsOCBAQAogCQlFMzM0Q0JCNTIxRkQ5NkE5MDAwRUIxNzggLyogUmVn
RXhwR2xvYmFsRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTMzNENCQjMyMUZEOTZBOTAwMEVCMTc4IC8qIFJlZ0V4cEdsb2JhbERhdGEuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzM2MzdBNjFC
NjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzNjM3QTQxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxl
Y3RPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFMzM3Qjk2NzIyNDMyNEVBMDA5M0E4MjAgLyogV2FzbUNhcGFiaWxpdGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzN0I5NjYyMjQzMjRF
NTAwOTNBODIwIC8qIFdhc21DYXBhYmlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzNBOTQ5NjIyNTUzMjMwMDBENDJCMDYgLyogUmFu
ZG9taXppbmdGdXp6ZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTMzQTk0OTQyMjU1MzIyOTAwRDQyQjA2IC8qIFJhbmRvbWl6aW5nRnV6emVy
QWdlbnQuaCAqLzsgfTsKKwkJRTMzQTk0OTcyMjU1MzIzMzAwRDQyQjA2IC8qIEZ1enplckFnZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzNBOTQ5
MjIyNTUzMjI5MDBENDJCMDYgLyogRnV6emVyQWdlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzNCM0UyNjFCN0FCRDc1MDA0OERCMkUgLyog
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzQjNFMjUxQjdBQkQ3NTAwNDhEQjJFIC8qIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5sdXQuaCAqLzsgfTsKIAkJRTMzRThEMUQxQjkw
MTNDMzAwMzQ2QjUyIC8qIEpTTmF0aXZlU3RkRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzM0U4RDFCMUI5MDEzQzMwMDM0NkI1MiAvKiBK
U05hdGl2ZVN0ZEZ1bmN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRTMzRThEMjExQjkwMTNERTAwMzQ2QjUyIC8qIE5hdGl2ZVN0ZEZ1bmN0
aW9uQ2VsbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTMzRThEMUYxQjkwMTNERTAwMzQ2QjUyIC8qIE5hdGl2ZVN0ZEZ1bmN0aW9uQ2VsbC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00Njk5LDYgKzQ3
MDEsMTAgQEAKIAkJRTMzNjM3QTMxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVmbGVjdE9iamVjdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMzYzN0E0MUI2MzIyMDIwMEVFMDg0MCAv
KiBSZWZsZWN0T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZmxl
Y3RPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMzN0I5NjYyMjQzMjRF
NTAwOTNBODIwIC8qIFdhc21DYXBhYmlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbUNhcGFi
aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzNBOTQ5MjIyNTUzMjI5
MDBENDJCMDYgLyogRnV6emVyQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnV6emVyQWdlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMzQTk0OTMyMjU1MzIyOTAwRDQyQjA2IC8q
IFJhbmRvbWl6aW5nRnV6emVyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZG9taXpp
bmdGdXp6ZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzM0E5NDk0
MjI1NTMyMjkwMEQ0MkIwNiAvKiBSYW5kb21pemluZ0Z1enplckFnZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJhbmRvbWl6aW5nRnV6emVyQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTMzQTk0OTUyMjU1MzIyQTAwRDQyQjA2IC8qIEZ1enplckFnZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZ1enplckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTMzQjNFMjUxQjdBQkQ3NTAwNDhEQjJFIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dC5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uT2JqZWN0Lmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzNF
OEQxQTFCOTAxM0MzMDAzNDZCNTIgLyogSlNOYXRpdmVTdGRGdW5jdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05hdGl2ZVN0ZEZ1bmN0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMzRThEMUIxQjkwMTNDMzAwMzQ2QjUyIC8qIEpT
TmF0aXZlU3RkRnVuY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNO
YXRpdmVTdGRGdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjc5Nyw2
ICs2ODAzLDggQEAKIAkJCQlGNjkyQTg1RDAyNTU1OTdEMDFGRjYwRjcgLyogRnVuY3Rpb25Qcm90
b3R5cGUuaCAqLywKIAkJCQk2MkQyRDM4RDFBREYxMDNGMDAwMjA2QzEgLyogRnVuY3Rpb25SYXJl
RGF0YS5jcHAgKi8sCiAJCQkJNjJEMkQzOEUxQURGMTAzRjAwMDIwNkMxIC8qIEZ1bmN0aW9uUmFy
ZURhdGEuaCAqLywKKwkJCQlFMzNBOTQ5NTIyNTUzMjJBMDBENDJCMDYgLyogRnV6emVyQWdlbnQu
Y3BwICovLAorCQkJCUUzM0E5NDkyMjI1NTMyMjkwMEQ0MkIwNiAvKiBGdXp6ZXJBZ2VudC5oICov
LAogCQkJCTcwQjc5MTg1MUMwMjQ0MzIwMDI0ODFFMiAvKiBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0
cnVjdG9yLmNwcCAqLywKIAkJCQk3MEI3OTE4NjFDMDI0NDMyMDAyNDgxRTIgLyogR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3Rvci5oICovLAogCQkJCTcwQjc5MTg3MUMwMjQ0MzIwMDI0ODFFMiAv
KiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jcHAgKi8sCkBAIC03MTM0LDYgKzcxNDIsOCBA
QAogCQkJCTBGNTc4MEExMThGRTFFOTgwMDFFNzJEOSAvKiBQdXJlTmFOLmggKi8sCiAJCQkJMEYw
Q0Q0QzAxNUYxQTYwNDAwMzJGMUMwIC8qIFB1dERpcmVjdEluZGV4TW9kZS5oICovLAogCQkJCTE0
N0I4NDYyMEU2REU2QjEwMDQ3NzVBNCAvKiBQdXRQcm9wZXJ0eVNsb3QuaCAqLywKKwkJCQlFMzNB
OTQ5MzIyNTUzMjI5MDBENDJCMDYgLyogUmFuZG9taXppbmdGdXp6ZXJBZ2VudC5jcHAgKi8sCisJ
CQkJRTMzQTk0OTQyMjU1MzIyOTAwRDQyQjA2IC8qIFJhbmRvbWl6aW5nRnV6emVyQWdlbnQuaCAq
LywKIAkJCQlFMzM2MzdBMzFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5jcHAgKi8s
CiAJCQkJRTMzNjM3QTQxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuaCAqLywKIAkJ
CQlGNjkyQTg3RDAyNTU1OTdEMDFGRjYwRjcgLyogUmVnRXhwLmNwcCAqLywKQEAgLTg5NTgsNiAr
ODk2OCw3IEBACiAJCQkJMEZCRTBGNzcxNkMxREIxMjAwODJDNUU4IC8qIERGR1VuaWZpY2F0aW9u
UGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMzRCMTRBMTZENDIwMTMwMDFDREE1QSAvKiBE
RkdVc2VLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjNCM0EyQzE1NDc1MDAyMDAzRUQwRkYg
LyogREZHVmFsaWRhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTUyQzU1NTY2MjI0QzJBRUEwMDk5
RjVDQyAvKiBERkdWYWx1ZVJlcFJlZHVjdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJCREM0ODE1MjI4MDI5MDBDRDg5MTAgLyogREZHVmFsdWVTb3VyY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMDEyMzMzMTk0NEVBMUIwMDg0M0EwQyAvKiBERkdWYWx1ZVN0cmVuZ3RoLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkUyNTRGNzFBQkRERDIyMDBBN0M2RDIgLyogREZHVmFyYXJnc0Zv
cndhcmRpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC05MDgyLDYgKzkwOTMsNyBAQAogCQkJ
CUJDMThDNDA1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBGdW5jdGlvblByb3RvdHlwZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNjJEMkQzOTAxQURGMTAzRjAwMDIwNkMxIC8qIEZ1bmN0aW9uUmFyZURhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZFQTBDNDAzMUNERDdEMUQwMDQ4MTk5MSAvKiBGdW5jdGlv
bldoaXRlbGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTMzQTk0OTcyMjU1MzIzMzAwRDQyQjA2
IC8qIEZ1enplckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyQUFDRTYzRDE4Q0E1QTAzMDBF
RDAxOTEgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0JFMkNB
RTE0RTk4NUFBMDAwNTkzQUQgLyogR0NBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
Rjc2NkQzMDE1QThEQ0UyMDA4RjM2M0UgLyogR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmggaW4gSGVh
ZGVycyAqLywKQEAgLTkzODQsNyArOTM5Niw2IEBACiAJCQkJRDk3MjI3NTJEQzU0NDU5QjkxMjVC
NTM5IC8qIEpTTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTZCNzMyMDFCREEw
OEVGMDAzMzFCODQgLyogSlNNb2R1bGVMb2FkZXIubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlF
MzE4Q0JDMTFCOEFFRjUxMDBBMjkyOUQgLyogSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTUyQzU1NTY2MjI0QzJBRUEwMDk5RjVDQyAvKiBERkdWYWx1ZVJlcFJl
ZHVjdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzlEQTRBNzFCN0U4QjdDMDA4NEYz
M0EgLyogSlNNb2R1bGVSZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzM0U4RDFEMUI5MDEz
QzMwMDM0NkI1MiAvKiBKU05hdGl2ZVN0ZEZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
MzhEOTk5QzIyMUI3OEJCMDBENTA0NzQgLyogSlNOb25EZXN0cnVjdGlibGVQcm94eS5oIGluIEhl
YWRlcnMgKi8sCkBAIC05NjM4LDYgKzk2NDksNyBAQAogCQkJCTBGMENENEMyMTVGMUE2MDcwMDMy
RjFDMCAvKiBQdXREaXJlY3RJbmRleE1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUZDOEM1
MTRFMUI2MDQwMEQ1MkFFMCAvKiBQdXRLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDdCODQ2
MzBFNkRFNkIxMDA0Nzc1QTQgLyogUHV0UHJvcGVydHlTbG90LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFMzNBOTQ5NjIyNTUzMjMwMDBENDJCMDYgLyogUmFuZG9taXppbmdGdXp6ZXJBZ2VudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY0NEE3QjMyMEJGNjhEMTAwMjJCMTcxIC8qIFJlY29yZGVkU3Rh
dHVzZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjYwQUMyMTY3NDBGODMwMDAyOTc3OSAvKiBS
ZWR1Y2VXaGl0ZXNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzM2MzdBNjFCNjMyMjAyMDBF
RTA4NDAgLyogUmVmbGVjdE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291
cmNlcy50eHQKaW5kZXggNDhlN2VkOTk0Y2RiNTFhZmU0YTI5MTMwY2JkYjQ3ZTliM2EwM2VmMC4u
ZGFhZGMwNmZiZTMwYzUxYTdjNmVmZGQzNzM2NjgzNDhjNTUxODAyNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Tb3VyY2VzLnR4dApAQCAtNzY0LDYgKzc2NCw3IEBAIHJ1bnRpbWUvRnVuY3Rpb25FeGVjdXRh
YmxlRHVtcC5jcHAKIHJ1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmNwcAogcnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKIHJ1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5jcHAKK3J1
bnRpbWUvRnV6emVyQWdlbnQuY3BwCiBydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0
b3IuY3BwCiBydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmNwcAogcnVudGltZS9H
ZW5lcmF0b3JQcm90b3R5cGUuY3BwCkBAIC05MDAsNiArOTAxLDcgQEAgcnVudGltZS9Qcm9wZXJ0
eVRhYmxlLmNwcAogcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcAogcnVudGltZS9Qcm94eU9i
amVjdC5jcHAKIHJ1bnRpbWUvUHJveHlSZXZva2UuY3BwCitydW50aW1lL1JhbmRvbWl6aW5nRnV6
emVyQWdlbnQuY3BwCiBydW50aW1lL1JlZmxlY3RPYmplY3QuY3BwCiBydW50aW1lL1JlZ0V4cC5j
cHAKIHJ1bnRpbWUvUmVnRXhwQ2FjaGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDRjYmUzOTQxODU1ODMzMGMwODhlMmY5OWY5
YTY0ZGM4ZmUwZmFjMDQuLjNlNWM0YjZmOWQ4YzJjMjk2OWY5ZTlhMzI5NzFjMTFiOGIwNmUzNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
CkBAIC04MzIsMTIgKzgzMiwyMCBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgCiAgICAg
U3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbldpdGhvdXRPU1JFeGl0KHVuc2lnbmVkIGJ5dGVj
b2RlSW5kZXgpCiAgICAgewotICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uOworICAg
ICAgICBhdXRvIGdldFZhbHVlUHJvZmlsZVByZWRpY3Rpb25Gcm9tRm9yQ29kZUJsb2NrQW5kQnl0
ZWNvZGVPZmZzZXQgPSBbJl0gKENvZGVCbG9jayogY29kZUJsb2NrLCBpbnQgYnl0ZWNvZGVJbmRl
eCkKICAgICAgICAgewotICAgICAgICAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihtX2lu
bGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPm1fbG9jayk7Ci0gICAgICAgICAgICBwcmVk
aWN0aW9uID0gbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVQ
cmVkaWN0aW9uRm9yQnl0ZWNvZGVPZmZzZXQobG9ja2VyLCBieXRlY29kZUluZGV4KTsKLSAgICAg
ICAgfQorICAgICAgICAgICAgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbjsKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+
bV9sb2NrKTsKKyAgICAgICAgICAgICAgICBwcmVkaWN0aW9uID0gY29kZUJsb2NrLT52YWx1ZVBy
b2ZpbGVQcmVkaWN0aW9uRm9yQnl0ZWNvZGVPZmZzZXQobG9ja2VyLCBieXRlY29kZUluZGV4KTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGF1dG8qIGZ1enplckFnZW50ID0gbV92bS0+ZnV6
emVyQWdlbnQoKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShmdXp6ZXJBZ2VudCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZ1enplckFnZW50LT5nZXRQcmVkaWN0aW9uKGNvZGVCbG9jaywg
Ynl0ZWNvZGVJbmRleCwgcHJlZGljdGlvbik7CisgICAgICAgICAgICByZXR1cm4gcHJlZGljdGlv
bjsKKyAgICAgICAgfTsKIAorICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0
VmFsdWVQcm9maWxlUHJlZGljdGlvbkZyb21Gb3JDb2RlQmxvY2tBbmRCeXRlY29kZU9mZnNldCht
X2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpOwogICAgICAg
ICBpZiAocHJlZGljdGlvbiAhPSBTcGVjTm9uZSkKICAgICAgICAgICAgIHJldHVybiBwcmVkaWN0
aW9uOwogCkBAIC04NzEsMTAgKzg3OSw3IEBAIGNsYXNzIEJ5dGVDb2RlUGFyc2VyIHsKICAgICAg
ICAgICAgIHdoaWxlIChzdGFjay0+bV9pbmxpbmVDYWxsRnJhbWUgIT0gY29kZU9yaWdpbi0+aW5s
aW5lQ2FsbEZyYW1lKCkpCiAgICAgICAgICAgICAgICAgc3RhY2sgPSBzdGFjay0+bV9jYWxsZXI7
CiAKLSAgICAgICAgICAgIGJ5dGVjb2RlSW5kZXggPSBjb2RlT3JpZ2luLT5ieXRlY29kZUluZGV4
KCk7Ci0gICAgICAgICAgICBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2sgPSBzdGFjay0+bV9wcm9m
aWxlZEJsb2NrOwotICAgICAgICAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihwcm9maWxl
ZEJsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVl
UHJvZmlsZVByZWRpY3Rpb25Gb3JCeXRlY29kZU9mZnNldChsb2NrZXIsIGJ5dGVjb2RlSW5kZXgp
OworICAgICAgICAgICAgcmV0dXJuIGdldFZhbHVlUHJvZmlsZVByZWRpY3Rpb25Gcm9tRm9yQ29k
ZUJsb2NrQW5kQnl0ZWNvZGVPZmZzZXQoc3RhY2stPm1fcHJvZmlsZWRCbG9jaywgY29kZU9yaWdp
bi0+Ynl0ZWNvZGVJbmRleCgpKTsKICAgICAgICAgfQogCiAgICAgICAgIGRlZmF1bHQ6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdXp6ZXJBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdXp6ZXJBZ2VudC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGFhNzMyMmRkMDFiNjU3YzcyMTEyY2U0OTFmMjU4YjhiOTFlYzUyZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1enplckFnZW50LmNwcApAQCAtMCww
ICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZ1enplckFnZW50LmgiCisKK25hbWVzcGFj
ZSBKU0MgeworCitGdXp6ZXJBZ2VudDo6fkZ1enplckFnZW50KCkKK3sKK30KKworU3BlY3VsYXRl
ZFR5cGUgRnV6emVyQWdlbnQ6OmdldFByZWRpY3Rpb24oQ29kZUJsb2NrKiwgaW50LCBTcGVjdWxh
dGVkVHlwZSByZXN1bHQpCit7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdXp6ZXJB
Z2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnV6emVyQWdlbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45OTllN2UzZjMyMTI2NDA5ZTY4ZTliMzNlYWQxODUyNjg0OWYxMWZmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnV6emVyQWdlbnQuaApA
QCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgorI2luY2x1
ZGUgPHd0Zi9Mb2NrZXIuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIENvZGVCbG9jazsK
KworY2xhc3MgRnV6emVyQWdlbnQgeworcHVibGljOgorICAgIEpTX0VYUE9SVF9QUklWQVRFIHZp
cnR1YWwgfkZ1enplckFnZW50KCk7CisKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIFNw
ZWN1bGF0ZWRUeXBlIGdldFByZWRpY3Rpb24oQ29kZUJsb2NrKiwgaW50IGJ5dGVjb2RlT2Zmc2V0
LCBTcGVjdWxhdGVkVHlwZSk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25z
LmNwcAppbmRleCAxMDkwOTgwZmZkNGY4YzZkZTFmNDAwYjQxOWUwMDNjYjU3MjAzZTI0Li44ZWRm
NDlmMWM4NDNhMTc5MjIxZjY4Y2Y0MjAxZGNiMDBiOGFmODhlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3Bw
CkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNpbmNsdWRlICJMaXRlcmFs
UGFyc2VyLmgiCiAjaW5jbHVkZSAiTm9kZXMuaCIKKyNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rv
ci5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJQYXJzZUludC5oIgogI2lu
Y2x1ZGUgIlBhcnNlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmlu
ZGV4IDFhMWNmMDU5YjViMWY2NjM3MDZhOWIwYTY2OTQ1ODZkMDM3OWIxOGYuLjk4Mzc5ODkyYmY3
MzliODgyZjJjMjBhNjk4MmRhNDFhNTI1ZDllYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmgKQEAgLTQzNCw2ICs0MzQsOSBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVX
ZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9IGZhbHNlOwogICAgIHYodW5zaWduZWQsIGZpcmVPU1JF
eGl0RnV6ekF0LCAwLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KHVuc2lnbmVkLCBmaXJlT1NS
RXhpdEZ1enpBdE9yQWZ0ZXIsIDAsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIFwKKyAgICB2KGJv
b2wsIHVzZVJhbmRvbWl6aW5nRnV6emVyQWdlbnQsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwK
KyAgICB2KHVuc2lnbmVkLCBzZWVkT2ZSYW5kb21pemluZ0Z1enplckFnZW50LCAxLCBOb3JtYWws
IG51bGxwdHIpIFwKKyAgICBcCiAgICAgdihib29sLCBsb2dQaGFzZVRpbWVzLCBmYWxzZSwgTm9y
bWFsLCBudWxscHRyKSBcCiAgICAgdihkb3VibGUsIHJhcmVCbG9ja1BlbmFsdHksIDAuMDAxLCBO
b3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIGFpckxpbmVhclNjYW5WZXJib3NlLCBmYWxz
ZSwgTm9ybWFsLCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SYW5kb21pemluZ0Z1enplckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JhbmRvbWl6aW5nRnV6emVyQWdlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0N2FkNmEy
Mzg5ZGQwODAwODZiN2ZjZjMxYThjMDAwMTIwMzE5MTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SYW5kb21pemluZ0Z1enplckFnZW50LmNwcApAQCAt
MCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJhbmRvbWl6aW5nRnV6emVyQWdlbnQu
aCIKKworbmFtZXNwYWNlIEpTQyB7CisKK1JhbmRvbWl6aW5nRnV6emVyQWdlbnQ6OlJhbmRvbWl6
aW5nRnV6emVyQWdlbnQoVk0mKQorICAgIDogbV9yYW5kb20oT3B0aW9uczo6c2VlZE9mUmFuZG9t
aXppbmdGdXp6ZXJBZ2VudCgpKQoreworfQorCitTcGVjdWxhdGVkVHlwZSBSYW5kb21pemluZ0Z1
enplckFnZW50OjpnZXRQcmVkaWN0aW9uKENvZGVCbG9jayosIGludCwgU3BlY3VsYXRlZFR5cGUp
Cit7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgIHVpbnQzMl90IGhp
Z2ggPSBtX3JhbmRvbS5nZXRVaW50MzIoKTsKKyAgICB1aW50MzJfdCBsb3cgPSBtX3JhbmRvbS5n
ZXRVaW50MzIoKTsKKyAgICB1aW50NjRfdCByZXN1bHQgPSAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KGhpZ2gpIDw8IDMyKSB8IGxvdzsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U3BlY3VsYXRlZFR5
cGU+KHJlc3VsdCkgJiBTcGVjRnVsbFRvcDsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SYW5kb21pemluZ0Z1enplckFn
ZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SYW5kb21pemluZ0Z1enplckFn
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzU1MjNkNTI2NWQzNGRkMGFlNTRkOGYyZGNlZGI4OGJjZTIwZjk2
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JhbmRv
bWl6aW5nRnV6emVyQWdlbnQuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJGdXp6
ZXJBZ2VudC5oIgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtSYW5k
b20uaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFZNOworCitjbGFzcyBSYW5kb21pemlu
Z0Z1enplckFnZW50IGZpbmFsIDogcHVibGljIEZ1enplckFnZW50IHsKK3B1YmxpYzoKKyAgICBS
YW5kb21pemluZ0Z1enplckFnZW50KFZNJik7CisKKyAgICBTcGVjdWxhdGVkVHlwZSBnZXRQcmVk
aWN0aW9uKENvZGVCbG9jayosIGludCBieXRlY29kZU9mZnNldCwgU3BlY3VsYXRlZFR5cGUpIG92
ZXJyaWRlOworCitwcml2YXRlOgorICAgIFdlYWtSYW5kb20gbV9yYW5kb207CisgICAgTG9jayBt
X2xvY2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlZFJlc3VsdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGVkUmVzdWx0LmgKaW5kZXggYTViMDM5MTg1ZmZhMDU5
MjEyZWE0NTFiNjJkYTkzMjVhNmJjMWFkMy4uNWFhOGEzOWYxMjAzYzQ2NWQ0MzE5MTVlYjE3N2Ix
NDMxYWJkZmMxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ2FjaGVkUmVzdWx0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ2FjaGVkUmVzdWx0LmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJIZWFwLmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJSZWdFeHAu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBHbG9iYWxEYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cEdsb2JhbERhdGEuY3BwCmluZGV4IGQ0YzJkYzUwOTEyZDQ3YzliYzFmMTcxMzFh
M2JlOWY5ZjM1NzY2NmEuLjJkZGU2MTg3NjJjMWRmMjM2YWRiNGQ3OTFiYzVmNDQzNWZkMGE3MTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cEdsb2JhbERh
dGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cEdsb2JhbERh
dGEuY3BwCkBAIC0yNiw2ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
UmVnRXhwR2xvYmFsRGF0YS5oIgogCisjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKKyNp
bmNsdWRlICJKU1N0cmluZy5oIgorCiBuYW1lc3BhY2UgSlNDIHsKIAogdm9pZCBSZWdFeHBHbG9i
YWxEYXRhOjp2aXNpdEFnZ3JlZ2F0ZShTbG90VmlzaXRvciYgdmlzaXRvcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCAzZWQ2ZGU5Y2UwYTg0ZGE2NzE5Y2E5NmY0YWVmMTMy
ODdmNGMzODUzLi42NWFmM2EwOWNkMDQzYmVlYTNlMmNiNjkxZWZjM2EwOGQwN2ZlODJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0xMjIsNiArMTIyLDcgQEAKICNpbmNs
dWRlICJQcm9taXNlRGVmZXJyZWRUaW1lci5oIgogI2luY2x1ZGUgIlByb3BlcnR5TWFwSGFzaFRh
YmxlLmgiCiAjaW5jbHVkZSAiUHJveHlSZXZva2UuaCIKKyNpbmNsdWRlICJSYW5kb21pemluZ0Z1
enplckFnZW50LmgiCiAjaW5jbHVkZSAiUmVnRXhwQ2FjaGUuaCIKICNpbmNsdWRlICJSZWdFeHBP
YmplY3QuaCIKICNpbmNsdWRlICJSZWdpc3RlckF0T2Zmc2V0TGlzdC5oIgpAQCAtNDU2LDYgKzQ1
Nyw4IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAgICAg
bV9zYW1wbGluZ1Byb2ZpbGVyLT5zdGFydCgpOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoU0FN
UExJTkdfUFJPRklMRVIpCisgICAgaWYgKE9wdGlvbnM6OnVzZVJhbmRvbWl6aW5nRnV6emVyQWdl
bnQoKSkKKyAgICAgICAgc2V0RnV6emVyQWdlbnQoc3RkOjptYWtlX3VuaXF1ZTxSYW5kb21pemlu
Z0Z1enplckFnZW50PigqdGhpcykpOwogCiAgICAgaWYgKE9wdGlvbnM6OmFsd2F5c0dlbmVyYXRl
UENUb0NvZGVPcmlnaW5NYXAoKSkKICAgICAgICAgc2V0U2hvdWxkQnVpbGRQQ1RvQ29kZU9yaWdp
bk1hcHBpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmluZGV4IDA2ZGVjMDdkYWM0
YzRjNTI1MzU3NDJjNzViYzJkY2M5YWQ2YjI5OTQuLmM1ZmJlNWVlMzlmNGQyMWRjZTg3YTc4NTI1
NTlmMjg4MzM3ZmY5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtMzgsNiAr
MzgsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkV2ZW50TG9jYXRpb24uaCIKICNpbmNsdWRlICJF
eGVjdXRhYmxlQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hl
LmgiCisjaW5jbHVkZSAiRnV6emVyQWdlbnQuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVk
ZSAiSW50cmluc2ljLmgiCiAjaW5jbHVkZSAiSXNvQ2VsbFNldC5oIgpAQCAtMjk0LDYgKzI5NSwx
MiBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBE
b3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAgIEpTX0VYUE9SVF9QUklWQVRFIFNhbXBsaW5n
UHJvZmlsZXImIGVuc3VyZVNhbXBsaW5nUHJvZmlsZXIoUmVmUHRyPFN0b3B3YXRjaD4mJik7CiAj
ZW5kaWYKIAorICAgIEZ1enplckFnZW50KiBmdXp6ZXJBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZnV6emVyQWdlbnQuZ2V0KCk7IH0KKyAgICB2b2lkIHNldEZ1enplckFnZW50KHN0ZDo6dW5pcXVl
X3B0cjxGdXp6ZXJBZ2VudD4mJiBmdXp6ZXJBZ2VudCkKKyAgICB7CisgICAgICAgIG1fZnV6emVy
QWdlbnQgPSBXVEZNb3ZlKGZ1enplckFnZW50KTsKKyAgICB9CisKICAgICBzdGF0aWMgdW5zaWdu
ZWQgbnVtYmVyT2ZJRHMoKSB7IHJldHVybiBzX251bWJlck9mSURzLmxvYWQoKTsgfQogICAgIHVu
c2lnbmVkIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogICAgIGJvb2wgaXNFbnRlcmVkKCkg
Y29uc3QgeyByZXR1cm4gISFlbnRyeVNjb3BlOyB9CkBAIC0xMDI0LDYgKzEwMzEsNyBAQCBjbGFz
cyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5r
ZWRMaXN0Tm9kZTxWTT4gewogI2lmIEVOQUJMRShTQU1QTElOR19QUk9GSUxFUikKICAgICBSZWZQ
dHI8U2FtcGxpbmdQcm9maWxlcj4gbV9zYW1wbGluZ1Byb2ZpbGVyOwogI2VuZGlmCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEZ1enplckFnZW50PiBtX2Z1enplckFnZW50OwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxTaGFkb3dDaGlja2VuPiBtX3NoYWRvd0NoaWNrZW47CiAgICAgc3RkOjp1bmlxdWVfcHRy
PEJ5dGVjb2RlSW50cmluc2ljUmVnaXN0cnk+IG1fYnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTsK
IAo=
</data>
<flag name="review"
          id="383026"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>