<?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>195638</bug_id>
          
          <creation_ts>2019-03-12 13:08:50 -0700</creation_ts>
          <short_desc>[JSC] CodeBlock::visitChildren is reporting extra memory even when its JITCode is singleton</short_desc>
          <delta_ts>2019-03-13 18:10:18 -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="Caio Lima">ticaiolima</reporter>
          <assigned_to name="Caio Lima">ticaiolima</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dominik.infuehr</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1515632</commentid>
    <comment_count>0</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-03-12 13:08:50 -0700</bug_when>
    <thetext>After https://bugs.webkit.org/show_bug.cgi?id=194659, we have singleton DirectJITCode per entrypoint type on no JIT configuration. However, we still use setJITCode and keep reporting extra memory for those JITCodes, even if they being shared.
Extra memory is used by `Heap::updateAllocationLimits` and having higher value can potentially put more pressure on GC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515636</commentid>
    <comment_count>1</comment_count>
      <attachid>364435</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-03-12 13:21:16 -0700</bug_when>
    <thetext>Created attachment 364435
RFC Patch

This change was used to create an alternative method to notify CodeBlock that it is referring to a shared m_jitCode. The flag `m_isSharedJITCode` is used to store such modification.

We ran Speedometer on minibrowser with JIT disabled to compare this approach. The results there are neutral.

Run 1:
ToT: 55.8 +- 1.0
Changes: 55.7 +- 1.0

Run 2:
ToT: 53.1 +- 0.69
Changes: 53.6 +- 0.49

Run 3:
ToT: 50.04 +- 0.65
Changes: 49.8 +- 0.58

I tried run some numbers on JetStream2, but with no JIT config, takes very long to run tests. It is probably very hard to see performance difference there, but I&apos;ll run other JS benchmarks to see difference on numbers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515969</commentid>
    <comment_count>2</comment_count>
      <attachid>364534</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-03-13 07:55:19 -0700</bug_when>
    <thetext>Created attachment 364534
WIP - Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515980</commentid>
    <comment_count>3</comment_count>
    <who name="Dominik Inführ">dominik.infuehr</who>
    <bug_when>2019-03-13 08:33:39 -0700</bug_when>
    <thetext>Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516090</commentid>
    <comment_count>4</comment_count>
      <attachid>364534</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-03-13 12:07:40 -0700</bug_when>
    <thetext>Comment on attachment 364534
WIP - Patch

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

&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:951
&gt; +    if (thisObject-&gt;m_jitCode &amp;&amp; !thisObject-&gt;m_jitCode-&gt;isShared())
&gt;          extraMemoryAllocated += thisObject-&gt;m_jitCode-&gt;size();

nit: we&apos;re computing thisObject-&gt;m_jitCode 3 times here.  I suggest prefetching it once.

&gt; Source/JavaScriptCore/bytecode/CodeBlock.h:395
&gt; +            ASSERT(heap()-&gt;isDeferred());

Do we really want to make this assert conditional?  Even though we only reportExtraMemoryAllocated() when !isShared, do we ever want to allow the caller to call setJITCode() without deferring GCs?  Unless there&apos;s a strong reason why we need this,I think it&apos;s better to have that assertion unconditionally so that the contract for calling setJITCode() is unconditional.

&gt; Source/JavaScriptCore/jit/JITCode.h:208
&gt; +    virtual bool isShared() const { return false; }

I&apos;m tend to be wary of adding virtual functions unless there&apos;s a good reason for it.  In this case, it probably doesn&apos;t matter much either way.  However, I think we can solve this a different way by adding a m_isShared bool to class JITCode itself.  There&apos;s definitely space for it in the object already.  That way, we can avoid creating 2 new classes, and some virtual function calls.  Actually, instead of a bool, the preferred idiom would be to use a:

    class JITCode {
        ....
        enum class ShareAttribute : uint8_t {
            NotShared,
            Shared
        };

... and have the JITCode constructor take a default arg of ShareAttribute::NotShared.  The shared cases can pass ShareAttribute:Shared explicitly.

&gt; Source/JavaScriptCore/jit/JITCode.h:252
&gt; +    SharedDirectJITCode(CodeRef&lt;JSEntryPtrTag&gt;, CodePtr&lt;JSEntryPtrTag&gt; withArityCheck, JITType);

I recommend just implementing the constructor as an inline function here instead of in the .cpp.  All it does is forward construction to the base class.  Hence, there&apos;s no value in not inlining it.

&gt; Source/JavaScriptCore/jit/JITCode.h:253
&gt; +    virtual ~SharedDirectJITCode();

This is not needed since it adds no behavior change.

&gt; Source/JavaScriptCore/jit/JITCode.h:269
&gt; +    SharedNativeJITCode(CodeRef&lt;JSEntryPtrTag&gt;, JITType);

Ditto: inline the constructor.

&gt; Source/JavaScriptCore/jit/JITCode.h:270
&gt; +    virtual ~SharedNativeJITCode();

Ditto: not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516162</commentid>
    <comment_count>5</comment_count>
      <attachid>364574</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-03-13 14:37:35 -0700</bug_when>
    <thetext>Created attachment 364574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516167</commentid>
    <comment_count>6</comment_count>
      <attachid>364534</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-03-13 14:41:58 -0700</bug_when>
    <thetext>Comment on attachment 364534
WIP - Patch

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

Thx a lot for the review. I uploaded new Patch with your comments.

&gt;&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:951
&gt;&gt;          extraMemoryAllocated += thisObject-&gt;m_jitCode-&gt;size();
&gt; 
&gt; nit: we&apos;re computing thisObject-&gt;m_jitCode 3 times here.  I suggest prefetching it once.

Done

&gt;&gt; Source/JavaScriptCore/bytecode/CodeBlock.h:395
&gt;&gt; +            ASSERT(heap()-&gt;isDeferred());
&gt; 
&gt; Do we really want to make this assert conditional?  Even though we only reportExtraMemoryAllocated() when !isShared, do we ever want to allow the caller to call setJITCode() without deferring GCs?  Unless there&apos;s a strong reason why we need this,I think it&apos;s better to have that assertion unconditionally so that the contract for calling setJITCode() is unconditional.

No reason. I moved ASSERT outside the loop then.

&gt;&gt; Source/JavaScriptCore/jit/JITCode.h:208
&gt;&gt; +    virtual bool isShared() const { return false; }
&gt; 
&gt; I&apos;m tend to be wary of adding virtual functions unless there&apos;s a good reason for it.  In this case, it probably doesn&apos;t matter much either way.  However, I think we can solve this a different way by adding a m_isShared bool to class JITCode itself.  There&apos;s definitely space for it in the object already.  That way, we can avoid creating 2 new classes, and some virtual function calls.  Actually, instead of a bool, the preferred idiom would be to use a:
&gt; 
&gt;     class JITCode {
&gt;         ....
&gt;         enum class ShareAttribute : uint8_t {
&gt;             NotShared,
&gt;             Shared
&gt;         };
&gt; 
&gt; ... and have the JITCode constructor take a default arg of ShareAttribute::NotShared.  The shared cases can pass ShareAttribute:Shared explicitly.

Ok. The reason to use virtual methods was to avoid adding a new field to JITCode, but since it is not a problem here, I moved to the approach you suggested.

&gt;&gt; Source/JavaScriptCore/jit/JITCode.h:252
&gt;&gt; +    SharedDirectJITCode(CodeRef&lt;JSEntryPtrTag&gt;, CodePtr&lt;JSEntryPtrTag&gt; withArityCheck, JITType);
&gt; 
&gt; I recommend just implementing the constructor as an inline function here instead of in the .cpp.  All it does is forward construction to the base class.  Hence, there&apos;s no value in not inlining it.

Not necessary, since I removed this class.

&gt;&gt; Source/JavaScriptCore/jit/JITCode.h:253
&gt;&gt; +    virtual ~SharedDirectJITCode();
&gt; 
&gt; This is not needed since it adds no behavior change.

Ditto.

&gt;&gt; Source/JavaScriptCore/jit/JITCode.h:269
&gt;&gt; +    SharedNativeJITCode(CodeRef&lt;JSEntryPtrTag&gt;, JITType);
&gt; 
&gt; Ditto: inline the constructor.

Ditto.

&gt;&gt; Source/JavaScriptCore/jit/JITCode.h:270
&gt;&gt; +    virtual ~SharedNativeJITCode();
&gt; 
&gt; Ditto: not needed.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516171</commentid>
    <comment_count>7</comment_count>
      <attachid>364576</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-03-13 14:43:56 -0700</bug_when>
    <thetext>Created attachment 364576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516184</commentid>
    <comment_count>8</comment_count>
      <attachid>364574</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-03-13 15:00:08 -0700</bug_when>
    <thetext>Comment on attachment 364574
Patch

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

LGTM.  Please remove the test code before landing.

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        This patch is introducing new field on JITCode to represent
&gt; +        its shared versions. With this new field, we introduced a new
&gt; +        method `isShared()` to indicate that a JITCode is shared among
&gt; +        CodeBlocks. This is being used by `CodeBlock::setJITCode` and

I suggest rephrasing the above as:
This patch introduces a m_isShared flag to track whether the JITCode is shared between  many CodeBlocks.  This flag is used in `CodeBlock::setJITCode ...

&gt; Source/JavaScriptCore/ChangeLog:12
&gt; +        `CodeBlock::visitChildren` to avoid report duplicated extra memory for

/report duplicated/reporting duplicate/

&gt; Source/JavaScriptCore/ChangeLog:14
&gt; +        With those changes, we now stop accounting singleton LLIntEntrypoints

... we now stop counting singleton ...

&gt; Source/JavaScriptCore/ChangeLog:16
&gt; +        change can pottentially avoid unecessary GC pressure, because

/pottentially/potentially/

&gt; Source/JavaScriptCore/ChangeLog:20
&gt; +        (see results below), it is important keep extra memory usage consistent,

important to ...

I would also say &quot;correct&quot; instead of &quot;consistent&quot;.  I also suggest putting a period after consistent/correct, and starting &quot;Otherwise ...&quot; as a new sentence.

&gt; Source/JavaScriptCore/jit/JITCode.h:216
&gt; +    bool isShared() const
&gt; +    { 
&gt; +        return m_shareAttribute == ShareAttribute::Shared;
&gt; +    }

nit: I prefer to put this all on a single line since there&apos;s only one statement in it.  For example, see intrinsic() above.

&gt; Source/JavaScriptCore/runtime/Options.cpp:226
&gt;  static bool jitEnabledByDefault()
&gt;  {
&gt; -    return is32Bit() || isAddress64Bit();
&gt; +    return false;
&gt;  }

I think this is test code you forgot to remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516185</commentid>
    <comment_count>9</comment_count>
      <attachid>364576</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-03-13 15:01:11 -0700</bug_when>
    <thetext>Comment on attachment 364576
Patch

LGTM but please see my suggestions from https://bugs.webkit.org/show_bug.cgi?id=195638#c8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516272</commentid>
    <comment_count>10</comment_count>
      <attachid>364574</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-03-13 17:17:58 -0700</bug_when>
    <thetext>Comment on attachment 364574
Patch

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

Thx a lot for the review and suggestions.

&gt;&gt; Source/JavaScriptCore/ChangeLog:11
&gt;&gt; +        CodeBlocks. This is being used by `CodeBlock::setJITCode` and
&gt; 
&gt; I suggest rephrasing the above as:
&gt; This patch introduces a m_isShared flag to track whether the JITCode is shared between  many CodeBlocks.  This flag is used in `CodeBlock::setJITCode ...

Done.

&gt;&gt; Source/JavaScriptCore/ChangeLog:16
&gt;&gt; +        change can pottentially avoid unecessary GC pressure, because
&gt; 
&gt; /pottentially/potentially/

Oops.

&gt;&gt; Source/JavaScriptCore/ChangeLog:20
&gt;&gt; +        (see results below), it is important keep extra memory usage consistent,
&gt; 
&gt; important to ...
&gt; 
&gt; I would also say &quot;correct&quot; instead of &quot;consistent&quot;.  I also suggest putting a period after consistent/correct, and starting &quot;Otherwise ...&quot; as a new sentence.

Changed.

&gt;&gt; Source/JavaScriptCore/jit/JITCode.h:216
&gt;&gt; +    }
&gt; 
&gt; nit: I prefer to put this all on a single line since there&apos;s only one statement in it.  For example, see intrinsic() above.

Done.

&gt;&gt; Source/JavaScriptCore/runtime/Options.cpp:226
&gt;&gt;  }
&gt; 
&gt; I think this is test code you forgot to remove.

Oops. I uploaded a version without this. I&apos;m sorry for the noise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516279</commentid>
    <comment_count>11</comment_count>
      <attachid>364594</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-03-13 17:28:54 -0700</bug_when>
    <thetext>Created attachment 364594
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516304</commentid>
    <comment_count>12</comment_count>
      <attachid>364594</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-13 18:09:47 -0700</bug_when>
    <thetext>Comment on attachment 364594
Patch

Clearing flags on attachment: 364594

Committed r242928: &lt;https://trac.webkit.org/changeset/242928&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516305</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-13 18:09:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516306</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-13 18:10:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/48872196&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364435</attachid>
            <date>2019-03-12 13:21:16 -0700</date>
            <delta_ts>2019-03-13 07:55:15 -0700</delta_ts>
            <desc>RFC Patch</desc>
            <filename>fix-extra-memory-report-cb.diff</filename>
            <type>text/plain</type>
            <size>4847</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggYWU3
ZTgxMzQxZDEuLjFmYWI2ZDdmNzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcApAQCAtOTQ3LDcgKzk0Nyw3IEBAIHNpemVfdCBDb2RlQmxvY2s6OmVz
dGltYXRlZFNpemUoSlNDZWxsKiBjZWxsLCBWTSYgdm0pCiAgICAgc2l6ZV90IGV4dHJhTWVtb3J5
QWxsb2NhdGVkID0gMDsKICAgICBpZiAodGhpc09iamVjdC0+bV9tZXRhZGF0YSkKICAgICAgICAg
ZXh0cmFNZW1vcnlBbGxvY2F0ZWQgKz0gdGhpc09iamVjdC0+bV9tZXRhZGF0YS0+c2l6ZUluQnl0
ZXMoKTsKLSAgICBpZiAodGhpc09iamVjdC0+bV9qaXRDb2RlKQorICAgIGlmICh0aGlzT2JqZWN0
LT5tX2ppdENvZGUgJiYgIXRoaXNPYmplY3QtPm1faXNTaGFyZWRKSVRDb2RlKQogICAgICAgICBl
eHRyYU1lbW9yeUFsbG9jYXRlZCArPSB0aGlzT2JqZWN0LT5tX2ppdENvZGUtPnNpemUoKTsKICAg
ICByZXR1cm4gQmFzZTo6ZXN0aW1hdGVkU2l6ZShjZWxsLCB2bSkgKyBleHRyYU1lbW9yeUFsbG9j
YXRlZDsKIH0KQEAgLTk3MCw3ICs5NzAsNyBAQCB2b2lkIENvZGVCbG9jazo6dmlzaXRDaGlsZHJl
bihTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBzaXplX3QgZXh0cmFNZW1vcnkgPSAwOwogICAg
IGlmIChtX21ldGFkYXRhKQogICAgICAgICBleHRyYU1lbW9yeSArPSBtX21ldGFkYXRhLT5zaXpl
SW5CeXRlcygpOwotICAgIGlmIChtX2ppdENvZGUpCisgICAgaWYgKG1faml0Q29kZSAmJiAhbV9p
c1NoYXJlZEpJVENvZGUpCiAgICAgICAgIGV4dHJhTWVtb3J5ICs9IG1faml0Q29kZS0+c2l6ZSgp
OwogICAgIHZpc2l0b3IucmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVkKGV4dHJhTWVtb3J5KTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmluZGV4IGNiYzdhYzI5
ZGFjLi4wZWU1NmU4YTU4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaApAQCAtMzk1LDggKzM5NSwxOCBAQCBwdWJsaWM6CiAgICAgICAgIGhlYXAoKS0+cmVw
b3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQoY29kZS0+c2l6ZSgpKTsKICAgICAgICAgQ29uY3VycmVu
dEpTTG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBXVEY6OnN0b3JlU3RvcmVGZW5jZSgp
OyAvLyBUaGlzIGlzIHByb2JhYmx5IG5vdCBuZWVkZWQgYmVjYXVzZSB0aGUgbG9jayB3aWxsIGFs
c28gZG8gc29tZXRoaW5nIHNpbWlsYXIsIGJ1dCBpdCdzIGdvb2QgdG8gYmUgcGFyYW5vaWQuCisg
ICAgICAgIG1faXNTaGFyZWRKSVRDb2RlID0gZmFsc2U7CiAgICAgICAgIG1faml0Q29kZSA9IFdU
Rk1vdmUoY29kZSk7CiAgICAgfQorCisgICAgdm9pZCBzZXRTaGFyZWRKSVRDb2RlKFJlZjxKSVRD
b2RlPiYmIGNvZGUpCisgICAgeworICAgICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKG1f
bG9jayk7CisgICAgICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7IC8vIFRoaXMgaXMgcHJvYmFi
bHkgbm90IG5lZWRlZCBiZWNhdXNlIHRoZSBsb2NrIHdpbGwgYWxzbyBkbyBzb21ldGhpbmcgc2lt
aWxhciwgYnV0IGl0J3MgZ29vZCB0byBiZSBwYXJhbm9pZC4KKyAgICAgICAgbV9pc1NoYXJlZEpJ
VENvZGUgPSB0cnVlOworICAgICAgICBtX2ppdENvZGUgPSBXVEZNb3ZlKGNvZGUpOworICAgIH0K
KwogICAgIFJlZlB0cjxKSVRDb2RlPiBqaXRDb2RlKCkgeyByZXR1cm4gbV9qaXRDb2RlOyB9CiAg
ICAgc3RhdGljIHB0cmRpZmZfdCBqaXRDb2RlT2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKENvZGVCbG9jaywgbV9qaXRDb2RlKTsgfQogICAgIEpJVENvZGU6OkpJVFR5cGUgaml0VHlw
ZSgpIGNvbnN0CkBAIC05NjMsNiArOTczLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2lu
c3RydWN0aW9uQ291bnQgeyAwIH07CiAgICAgVmlydHVhbFJlZ2lzdGVyIG1fc2NvcGVSZWdpc3Rl
cjsKICAgICBtdXRhYmxlIENvZGVCbG9ja0hhc2ggbV9oYXNoOworICAgIGJvb2wgbV9pc1NoYXJl
ZEpJVENvZGUgeyBmYWxzZSB9OwogCiAgICAgV3JpdGVCYXJyaWVyPFVubGlua2VkQ29kZUJsb2Nr
PiBtX3VubGlua2VkQ29kZTsKICAgICBXcml0ZUJhcnJpZXI8U2NyaXB0RXhlY3V0YWJsZT4gbV9v
d25lckV4ZWN1dGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRFbnRyeXBvaW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVu
dHJ5cG9pbnQuY3BwCmluZGV4IGE3Yjc2Mzc4Zjc1Li40YzNlM2QwOWM3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAKQEAgLTYzLDE0ICs2
MywxNCBAQCBzdGF0aWMgdm9pZCBzZXRGdW5jdGlvbkVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaykKICAgICAgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgWyZdIHsKICAg
ICAgICAgICAgIGppdENvZGUgPSBuZXcgRGlyZWN0SklUQ29kZShnZXRDb2RlUmVmPEpTRW50cnlQ
dHJUYWc+KGxsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3VlKSwgZ2V0Q29kZVB0cjxKU0Vu
dHJ5UHRyVGFnPihsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eV9jaGVjayksIEpJVENvZGU6
OkludGVycHJldGVyVGh1bmspOwogICAgICAgICB9KTsKLSAgICAgICAgY29kZUJsb2NrLT5zZXRK
SVRDb2RlKG1ha2VSZWYoKmppdENvZGUpKTsKKyAgICAgICAgY29kZUJsb2NrLT5zZXRTaGFyZWRK
SVRDb2RlKG1ha2VSZWYoKmppdENvZGUpKTsKICAgICB9IGVsc2UgewogICAgICAgICBzdGF0aWMg
RGlyZWN0SklUQ29kZSogaml0Q29kZTsKICAgICAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9u
Y2VLZXk7CiAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFsmXSB7CiAgICAgICAgICAg
ICBqaXRDb2RlID0gbmV3IERpcmVjdEpJVENvZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihs
bGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3VlKSwgZ2V0Q29kZVB0cjxKU0VudHJ5
UHRyVGFnPihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5X2NoZWNrKSwgSklUQ29k
ZTo6SW50ZXJwcmV0ZXJUaHVuayk7CiAgICAgICAgIH0pOwotICAgICAgICBjb2RlQmxvY2stPnNl
dEpJVENvZGUobWFrZVJlZigqaml0Q29kZSkpOworICAgICAgICBjb2RlQmxvY2stPnNldFNoYXJl
ZEpJVENvZGUobWFrZVJlZigqaml0Q29kZSkpOwogICAgIH0KIH0KIApAQCAtOTEsNyArOTEsNyBA
QCBzdGF0aWMgdm9pZCBzZXRFdmFsRW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJs
b2NrKQogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFsmXSB7CiAgICAgICAgIGppdENvZGUg
PSBuZXcgTmF0aXZlSklUQ29kZShnZXRDb2RlUmVmPEpTRW50cnlQdHJUYWc+KGxsaW50X2V2YWxf
cHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rLCBOb0ludHJpbnNpYyk7CiAgICAg
fSk7Ci0gICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1ha2VSZWYoKmppdENvZGUpKTsKKyAgICBj
b2RlQmxvY2stPnNldFNoYXJlZEpJVENvZGUobWFrZVJlZigqaml0Q29kZSkpOwogfQogCiBzdGF0
aWMgdm9pZCBzZXRQcm9ncmFtRW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2Nr
KQpAQCAtMTExLDcgKzExMSw3IEBAIHN0YXRpYyB2b2lkIHNldFByb2dyYW1FbnRyeXBvaW50KFZN
JiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwg
WyZdIHsKICAgICAgICAgaml0Q29kZSA9IG5ldyBOYXRpdmVKSVRDb2RlKGdldENvZGVSZWY8SlNF
bnRyeVB0clRhZz4obGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVy
VGh1bmssIE5vSW50cmluc2ljKTsKICAgICB9KTsKLSAgICBjb2RlQmxvY2stPnNldEpJVENvZGUo
bWFrZVJlZigqaml0Q29kZSkpOworICAgIGNvZGVCbG9jay0+c2V0U2hhcmVkSklUQ29kZShtYWtl
UmVmKCpqaXRDb2RlKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldE1vZHVsZVByb2dyYW1FbnRyeXBv
aW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCkBAIC0xMzEsNyArMTMxLDcgQEAgc3Rh
dGljIHZvaWQgc2V0TW9kdWxlUHJvZ3JhbUVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNv
ZGVCbG9jaykKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbJl0gewogICAgICAgICBqaXRD
b2RlID0gbmV3IE5hdGl2ZUpJVENvZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9t
b2R1bGVfcHJvZ3JhbV9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmssIE5vSW50
cmluc2ljKTsKICAgICB9KTsKLSAgICBjb2RlQmxvY2stPnNldEpJVENvZGUobWFrZVJlZigqaml0
Q29kZSkpOworICAgIGNvZGVCbG9jay0+c2V0U2hhcmVkSklUQ29kZShtYWtlUmVmKCpqaXRDb2Rl
KSk7CiB9CiAKIHZvaWQgc2V0RW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2Nr
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364534</attachid>
            <date>2019-03-13 07:55:19 -0700</date>
            <delta_ts>2019-03-13 14:37:30 -0700</delta_ts>
            <desc>WIP - Patch</desc>
            <filename>bug-195638-20190313115517.patch</filename>
            <type>text/plain</type>
            <size>11341</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MmRmYzZlMDVjNDFiNGNkYTA3NDM2ZTA0ZDBiMzYxZjRkMTVkMjhhLi5lNzZhZDkwNjllNDk1YTU2
MWJhYjA4YjNmNmY2NjMxNzRmNjAzZjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MSBAQAorMjAxOS0wMy0xMyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0pTQ10gQ29kZUJsb2NrOjp2aXNpdENoaWxkcmVuIGlzIHJlcG9ydGluZyBl
eHRyYSBtZW1vcnkgZXZlbiB3aGVuIGl0cyBKSVRDb2RlIGlzIHNpbmdsZXRvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NjM4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBpbnRy
b2R1Y2luZyAyIG5ldyBzdWJjbGFzc2VzIHRvIEpJVENvZGUgdG8gcmVwcmVzZW50CisgICAgICAg
IHRoZWlyIHNoYXJlZCB2ZXJzaW9ucywgbmFtZWQgU2hhcmVkRGlyZWN0SklUQ29kZSBhbmQKKyAg
ICAgICAgU2hhcmVkTmF0aXZlSklUQ29kZS4gV2l0aCB0aGVzZSBuZXcgY2xhc3Nlcywgd2UgaW50
cm9kdWNlZCBhIG5ldworICAgICAgICBtZXRob2QgYGlzU2hhcmVkKClgIHRvIGluZGljYXRlIHRo
YXQgYSBKSVRDb2RlIGlzIHNoYXJlZCBhbW9uZworICAgICAgICBDb2RlQmxvY2tzLiBUaGlzIGlz
IGJlaW5nIHVzZWQgYnkgYENvZGVCbG9jazo6c2V0SklUQ29kZWAgYW5kCisgICAgICAgIGBDb2Rl
QmxvY2s6OnZpc2l0Q2hpbGRyZW5gIHRvIGF2b2lkIHJlcG9ydCBkdXBsaWNhdGVkIGV4dHJhIG1l
bW9yeSBmb3IKKyAgICAgICAgc2luZ2xldG9uIEpJVENvZGVzLgorICAgICAgICBXaXRoIHRob3Nl
IGNoYW5nZXMsIHdlIG5vdyBzdG9wIGFjY291bnRpbmcgc2luZ2xldG9uIExMSW50RW50cnlwb2lu
dHMKKyAgICAgICAgYXMgZXh0cmEgbWVtb3J5LCBzaW5jZSB0aGV5IGFyZSBkZWNsYXJlZCBhcyBz
dGF0aWMgdmFyaWFibGVzLiBUaGlzCisgICAgICAgIGNoYW5nZSBjYW4gcG90dGVudGlhbGx5IGF2
b2lkIHVuZWNlc3NhcnkgR0MgcHJlc3N1cmUsIGJlY2F1c2UKKyAgICAgICAgZXh0cmEgbWVtb3J5
IGlzIHVzZWQgYnkgSGVhcDo6dXBkYXRlQWxsb2NhdGlvbkxpbWl0cygpIHRvIHVwZGF0ZSBIZWFw
CisgICAgICAgIGxpbWl0cy4KKyAgICAgICAgRXZlbiB0aG91Z2ggaXQgaXMgaGFyZCB0byBzaG93
IHBlcmZvcm1hbmNlIGRpZmZlcmVuY2UgZm9yIHRoaXMgY2hhbmdlCisgICAgICAgIChzZWUgcmVz
dWx0cyBiZWxvdyksIGl0IGlzIGltcG9ydGFudCBrZWVwIGV4dHJhIG1lbW9yeSB1c2FnZSBjb25z
aXN0ZW50LAorICAgICAgICBvdGhlcndpc2UgaXQgY2FuIGJlIGEgc291cmNlIG9mIGEgY29tcGxp
Y2F0ZWQgYnVnIG9uIEdDIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgUmVzdWx0cyBmcm9tIGxh
c3QgcnVuIG9mIFNwZWVkb21ldGVyIDIgY29tcGFyaW5nIFRvVCBhbmQgY2hhbmdlcy4gV2UKKyAg
ICAgICAgY29sbGVjdGVkIHRob3NlIG51bWJlcnMgcnVubmluZyBNaW5pYnJvd3NlciBvbiBhIE1h
Y0Jvb2sgUHJvIDE1LWluY2gKKyAgICAgICAgd2l0aCAyLDYgR0h6IEludGVsIENvcmUgaTcuIEJv
dGggdmVyc2lvbnMgYXJlIHdpdGggSklUIGRpc2FibGVkLAorICAgICAgICBzaW5jZSB0aGVzZSBz
aW5nbGV0b24gSklUQ29kZSBhcmUgb25seSB1c2VkIGJ5IHRoaXMgY29uZmlndXJhdGlvbjoKKwor
ICAgICAgICBTcGVlZG9tZXRlcjIgUnVuICMxCisgICAgICAgICAgICBUb1Q6IDU4LjAgKy0gMS4x
CisgICAgICAgICAgICBjaGFuZ2VzOiA1OC42ICstIDEuMQorCisgICAgICAgIFNwZWVkb21ldGVy
MiBSdW4gIzIKKyAgICAgICAgICAgIFRvVDogNTguMSArLSAxLjAKKyAgICAgICAgICAgIGNoYW5n
ZXM6IDU4LjAgKy0gMC43MgorCisgICAgICAgIFNwZWVkb21ldGVyMiBSdW4gIzIKKyAgICAgICAg
ICAgIFRvVDogNTguMyArLSAxLjMKKyAgICAgICAgICAgIGNoYW5nZXM6IDU4LjAgKy0gMS4wCisK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxv
Y2s6OmVzdGltYXRlZFNpemUpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnZpc2l0Q2hpbGRy
ZW4pOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2Rl
QmxvY2s6OnNldEpJVENvZGUpOgorICAgICAgICAqIGppdC9KSVRDb2RlLmNwcDoKKyAgICAgICAg
KEpTQzo6U2hhcmVkRGlyZWN0SklUQ29kZTo6U2hhcmVkRGlyZWN0SklUQ29kZSk6CisgICAgICAg
IChKU0M6OlNoYXJlZERpcmVjdEpJVENvZGU6On5TaGFyZWREaXJlY3RKSVRDb2RlKToKKyAgICAg
ICAgKEpTQzo6U2hhcmVkTmF0aXZlSklUQ29kZTo6U2hhcmVkTmF0aXZlSklUQ29kZSk6CisgICAg
ICAgIChKU0M6OlNoYXJlZE5hdGl2ZUpJVENvZGU6On5TaGFyZWROYXRpdmVKSVRDb2RlKToKKyAg
ICAgICAgKiBqaXQvSklUQ29kZS5oOgorICAgICAgICAoSlNDOjpKSVRDb2RlOjppc1NoYXJlZCBj
b25zdCk6CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcDoKKyAgICAgICAgKEpT
Qzo6TExJbnQ6OnNldEZ1bmN0aW9uRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50Ojpz
ZXRFdmFsRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRQcm9ncmFtRW50cnlw
b2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRNb2R1bGVQcm9ncmFtRW50cnlwb2ludCk6
CisKIDIwMTktMDMtMTEgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgog
CiAgICAgICAgIEFkZCBPcHRpb25hbCB0byBGb3J3YXJkLmguCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGFlN2U4MTM0MWQxNDJiNzRiYTI3YThm
NjVhZDhkYTg4YzI1MzE2MmUuLmFiZjVhYTE2ZGQzMTNmMTg4ZjlhNjEzODY0MzFjN2ZjNzIzMzQ5
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBA
IC05NDcsNyArOTQ3LDcgQEAgc2l6ZV90IENvZGVCbG9jazo6ZXN0aW1hdGVkU2l6ZShKU0NlbGwq
IGNlbGwsIFZNJiB2bSkKICAgICBzaXplX3QgZXh0cmFNZW1vcnlBbGxvY2F0ZWQgPSAwOwogICAg
IGlmICh0aGlzT2JqZWN0LT5tX21ldGFkYXRhKQogICAgICAgICBleHRyYU1lbW9yeUFsbG9jYXRl
ZCArPSB0aGlzT2JqZWN0LT5tX21ldGFkYXRhLT5zaXplSW5CeXRlcygpOwotICAgIGlmICh0aGlz
T2JqZWN0LT5tX2ppdENvZGUpCisgICAgaWYgKHRoaXNPYmplY3QtPm1faml0Q29kZSAmJiAhdGhp
c09iamVjdC0+bV9qaXRDb2RlLT5pc1NoYXJlZCgpKQogICAgICAgICBleHRyYU1lbW9yeUFsbG9j
YXRlZCArPSB0aGlzT2JqZWN0LT5tX2ppdENvZGUtPnNpemUoKTsKICAgICByZXR1cm4gQmFzZTo6
ZXN0aW1hdGVkU2l6ZShjZWxsLCB2bSkgKyBleHRyYU1lbW9yeUFsbG9jYXRlZDsKIH0KQEAgLTk3
MCw3ICs5NzAsNyBAQCB2b2lkIENvZGVCbG9jazo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYg
dmlzaXRvcikKICAgICBzaXplX3QgZXh0cmFNZW1vcnkgPSAwOwogICAgIGlmIChtX21ldGFkYXRh
KQogICAgICAgICBleHRyYU1lbW9yeSArPSBtX21ldGFkYXRhLT5zaXplSW5CeXRlcygpOwotICAg
IGlmIChtX2ppdENvZGUpCisgICAgaWYgKG1faml0Q29kZSAmJiAhbV9qaXRDb2RlLT5pc1NoYXJl
ZCgpKQogICAgICAgICBleHRyYU1lbW9yeSArPSBtX2ppdENvZGUtPnNpemUoKTsKICAgICB2aXNp
dG9yLnJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZChleHRyYU1lbW9yeSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCBjYmM3YWMyOWRhYzZlNjdmZmRk
ZmFkOWZhZDE0YzQ3ODk3MzFjYjExLi4xZjRkNTUyYjAxNjFlZWQ1Yzg1MjU4ZjFjNzU2MDYyZDk1
MWUxOThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBA
IC0zOTEsMTIgKzM5MSwxNiBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzZXRKSVRDb2RlKFJl
ZjxKSVRDb2RlPiYmIGNvZGUpCiAgICAgewotICAgICAgICBBU1NFUlQoaGVhcCgpLT5pc0RlZmVy
cmVkKCkpOwotICAgICAgICBoZWFwKCktPnJlcG9ydEV4dHJhTWVtb3J5QWxsb2NhdGVkKGNvZGUt
PnNpemUoKSk7CisgICAgICAgIGlmICghY29kZS0+aXNTaGFyZWQoKSkgeworICAgICAgICAgICAg
QVNTRVJUKGhlYXAoKS0+aXNEZWZlcnJlZCgpKTsKKyAgICAgICAgICAgIGhlYXAoKS0+cmVwb3J0
RXh0cmFNZW1vcnlBbGxvY2F0ZWQoY29kZS0+c2l6ZSgpKTsKKyAgICAgICAgfQorCiAgICAgICAg
IENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgV1RGOjpzdG9yZVN0
b3JlRmVuY2UoKTsgLy8gVGhpcyBpcyBwcm9iYWJseSBub3QgbmVlZGVkIGJlY2F1c2UgdGhlIGxv
Y2sgd2lsbCBhbHNvIGRvIHNvbWV0aGluZyBzaW1pbGFyLCBidXQgaXQncyBnb29kIHRvIGJlIHBh
cmFub2lkLgogICAgICAgICBtX2ppdENvZGUgPSBXVEZNb3ZlKGNvZGUpOwogICAgIH0KKwogICAg
IFJlZlB0cjxKSVRDb2RlPiBqaXRDb2RlKCkgeyByZXR1cm4gbV9qaXRDb2RlOyB9CiAgICAgc3Rh
dGljIHB0cmRpZmZfdCBqaXRDb2RlT2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENv
ZGVCbG9jaywgbV9qaXRDb2RlKTsgfQogICAgIEpJVENvZGU6OkpJVFR5cGUgaml0VHlwZSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAppbmRleCBlMjk1YThhYmE3NGYw
ZTY0NGM5NTg2NWM4ZmU0MGNhZTdkMjdlNjQ1Li43ZDNlY2YzYzI4MjRjNTBmYTJmMmI2NjFiMGZi
N2I5MjFlZmVlOThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENv
ZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5jcHAKQEAgLTE5
NSw2ICsxOTUsMTUgQEAgSklUQ29kZTo6Q29kZVB0cjxKU0VudHJ5UHRyVGFnPiBEaXJlY3RKSVRD
b2RlOjphZGRyZXNzRm9yQ2FsbChBcml0eUNoZWNrTW9kZSBhcmkKICAgICByZXR1cm4gQ29kZVB0
cjxKU0VudHJ5UHRyVGFnPigpOwogfQogCitTaGFyZWREaXJlY3RKSVRDb2RlOjpTaGFyZWREaXJl
Y3RKSVRDb2RlKEpJVENvZGU6OkNvZGVSZWY8SlNFbnRyeVB0clRhZz4gcmVmLCBKSVRDb2RlOjpD
b2RlUHRyPEpTRW50cnlQdHJUYWc+IHdpdGhBcml0eUNoZWNrLCBKSVRUeXBlIGppdFR5cGUpCisg
ICAgOiBEaXJlY3RKSVRDb2RlKHJlZiwgd2l0aEFyaXR5Q2hlY2ssIGppdFR5cGUpCit7Cit9CisK
K1NoYXJlZERpcmVjdEpJVENvZGU6On5TaGFyZWREaXJlY3RKSVRDb2RlKCkKK3sKK30KKwogTmF0
aXZlSklUQ29kZTo6TmF0aXZlSklUQ29kZShKSVRUeXBlIGppdFR5cGUpCiAgICAgOiBKSVRDb2Rl
V2l0aENvZGVSZWYoaml0VHlwZSkKIHsKQEAgLTIyMyw2ICsyMzIsMTUgQEAgSklUQ29kZTo6Q29k
ZVB0cjxKU0VudHJ5UHRyVGFnPiBOYXRpdmVKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbChBcml0eUNo
ZWNrTW9kZSBhcmkKICAgICByZXR1cm4gQ29kZVB0cjxKU0VudHJ5UHRyVGFnPigpOwogfQogCitT
aGFyZWROYXRpdmVKSVRDb2RlOjpTaGFyZWROYXRpdmVKSVRDb2RlKENvZGVSZWY8SlNFbnRyeVB0
clRhZz4gcmVmLCBKSVRUeXBlIGppdFR5cGUpCisgICAgOiBOYXRpdmVKSVRDb2RlKHJlZiwgaml0
VHlwZSwgSW50cmluc2ljOjpOb0ludHJpbnNpYykKK3sKK30KKworU2hhcmVkTmF0aXZlSklUQ29k
ZTo6flNoYXJlZE5hdGl2ZUpJVENvZGUoKQoreworfQorCiBOYXRpdmVET01KSVRDb2RlOjpOYXRp
dmVET01KSVRDb2RlKENvZGVSZWY8SlNFbnRyeVB0clRhZz4gcmVmLCBKSVRUeXBlIHR5cGUsIElu
dHJpbnNpYyBpbnRyaW5zaWMsIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlKiBzaWduYXR1cmUpCiAg
ICAgOiBOYXRpdmVKSVRDb2RlKHJlZiwgdHlwZSwgaW50cmluc2ljKQogICAgICwgbV9zaWduYXR1
cmUoc2lnbmF0dXJlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
b2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAppbmRleCA4NzVmNTky
MTBhYzZhMTA2ZTNmZDAyZWNkZmM4YjNjM2RiOWQxODE5Li41ZWI1M2IwYzA3ZTExMzFmYzlkZDQx
M2NjYTBhM2YxOGEzYzUzNGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVENvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaApAQCAt
MjA1LDYgKzIwNSw4IEBAIHB1YmxpYzoKIAogICAgIEludHJpbnNpYyBpbnRyaW5zaWMoKSB7IHJl
dHVybiBtX2ludHJpbnNpYzsgfQogCisgICAgdmlydHVhbCBib29sIGlzU2hhcmVkKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKwogcHJpdmF0ZToKICAgICBKSVRUeXBlIG1faml0VHlwZTsKIHBy
b3RlY3RlZDoKQEAgLTI0NSw2ICsyNDcsMTQgQEAgcHJpdmF0ZToKICAgICBDb2RlUHRyPEpTRW50
cnlQdHJUYWc+IG1fd2l0aEFyaXR5Q2hlY2s7CiB9OwogCitjbGFzcyBTaGFyZWREaXJlY3RKSVRD
b2RlIDogcHVibGljIERpcmVjdEpJVENvZGUgeworcHVibGljOgorICAgIFNoYXJlZERpcmVjdEpJ
VENvZGUoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiB3aXRo
QXJpdHlDaGVjaywgSklUVHlwZSk7CisgICAgdmlydHVhbCB+U2hhcmVkRGlyZWN0SklUQ29kZSgp
OworCisgICAgYm9vbCBpc1NoYXJlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
K307CisKIGNsYXNzIE5hdGl2ZUpJVENvZGUgOiBwdWJsaWMgSklUQ29kZVdpdGhDb2RlUmVmIHsK
IHB1YmxpYzoKICAgICBOYXRpdmVKSVRDb2RlKEpJVFR5cGUpOwpAQCAtMjU0LDYgKzI2NCwxNCBA
QCBwdWJsaWM6CiAgICAgQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBhZGRyZXNzRm9yQ2FsbChBcml0
eUNoZWNrTW9kZSkgb3ZlcnJpZGU7CiB9OwogCitjbGFzcyBTaGFyZWROYXRpdmVKSVRDb2RlIDog
cHVibGljIE5hdGl2ZUpJVENvZGUgeworcHVibGljOgorICAgIFNoYXJlZE5hdGl2ZUpJVENvZGUo
Q29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgSklUVHlwZSk7CisgICAgdmlydHVhbCB+U2hhcmVkTmF0
aXZlSklUQ29kZSgpOworCisgICAgYm9vbCBpc1NoYXJlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KK307CisKIGNsYXNzIE5hdGl2ZURPTUpJVENvZGUgZmluYWwgOiBwdWJsaWMg
TmF0aXZlSklUQ29kZSB7CiBwdWJsaWM6CiAgICAgTmF0aXZlRE9NSklUQ29kZShDb2RlUmVmPEpT
RW50cnlQdHJUYWc+LCBKSVRUeXBlLCBJbnRyaW5zaWMsIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJl
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBv
aW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3Bw
CmluZGV4IGE3Yjc2Mzc4Zjc1ZGM3NzRkYWI0NDg5NGJmNWNmNjI4NmRmOGZkMzkuLjM5MjY3YzQz
Y2Q3NjE5NGE3NDBjMGFkN2MwNzg5MTJmZGIyZGQ5YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCkBAIC01OCwxNyArNTgsMTcgQEAgc3Rh
dGljIHZvaWQgc2V0RnVuY3Rpb25FbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxv
Y2spCiAKICAgICBVTlVTRURfUEFSQU0odm0pOwogICAgIGlmIChraW5kID09IENvZGVGb3JDYWxs
KSB7Ci0gICAgICAgIHN0YXRpYyBEaXJlY3RKSVRDb2RlKiBqaXRDb2RlOworICAgICAgICBzdGF0
aWMgU2hhcmVkRGlyZWN0SklUQ29kZSogaml0Q29kZTsKICAgICAgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIG9uY2VLZXk7CiAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFsmXSB7Ci0g
ICAgICAgICAgICBqaXRDb2RlID0gbmV3IERpcmVjdEpJVENvZGUoZ2V0Q29kZVJlZjxKU0VudHJ5
UHRyVGFnPihsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSksIGdldENvZGVQdHI8SlNF
bnRyeVB0clRhZz4obGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2spLCBKSVRDb2Rl
OjpJbnRlcnByZXRlclRodW5rKTsKKyAgICAgICAgICAgIGppdENvZGUgPSBuZXcgU2hhcmVkRGly
ZWN0SklUQ29kZShnZXRDb2RlUmVmPEpTRW50cnlQdHJUYWc+KGxsaW50X2Z1bmN0aW9uX2Zvcl9j
YWxsX3Byb2xvZ3VlKSwgZ2V0Q29kZVB0cjxKU0VudHJ5UHRyVGFnPihsbGludF9mdW5jdGlvbl9m
b3JfY2FsbF9hcml0eV9jaGVjayksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspOwogICAgICAg
ICB9KTsKICAgICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1ha2VSZWYoKmppdENvZGUpKTsK
ICAgICB9IGVsc2UgewotICAgICAgICBzdGF0aWMgRGlyZWN0SklUQ29kZSogaml0Q29kZTsKKyAg
ICAgICAgc3RhdGljIFNoYXJlZERpcmVjdEpJVENvZGUqIGppdENvZGU7CiAgICAgICAgIHN0YXRp
YyBzdGQ6Om9uY2VfZmxhZyBvbmNlS2V5OwogICAgICAgICBzdGQ6OmNhbGxfb25jZShvbmNlS2V5
LCBbJl0gewotICAgICAgICAgICAgaml0Q29kZSA9IG5ldyBEaXJlY3RKSVRDb2RlKGdldENvZGVS
ZWY8SlNFbnRyeVB0clRhZz4obGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZSks
IGdldENvZGVQdHI8SlNFbnRyeVB0clRhZz4obGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9h
cml0eV9jaGVjayksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspOworICAgICAgICAgICAgaml0
Q29kZSA9IG5ldyBTaGFyZWREaXJlY3RKSVRDb2RlKGdldENvZGVSZWY8SlNFbnRyeVB0clRhZz4o
bGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZSksIGdldENvZGVQdHI8SlNFbnRy
eVB0clRhZz4obGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjayksIEpJVENv
ZGU6OkludGVycHJldGVyVGh1bmspOwogICAgICAgICB9KTsKICAgICAgICAgY29kZUJsb2NrLT5z
ZXRKSVRDb2RlKG1ha2VSZWYoKmppdENvZGUpKTsKICAgICB9CkBAIC04NiwxMCArODYsMTAgQEAg
c3RhdGljIHZvaWQgc2V0RXZhbEVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9j
aykKICNlbmRpZiAvLyBFTkFCTEUoSklUKQogCiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKLSAgICBz
dGF0aWMgTmF0aXZlSklUQ29kZSogaml0Q29kZTsKKyAgICBzdGF0aWMgU2hhcmVkTmF0aXZlSklU
Q29kZSogaml0Q29kZTsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKICAgICBz
dGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbJl0gewotICAgICAgICBqaXRDb2RlID0gbmV3IE5hdGl2
ZUpJVENvZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9ldmFsX3Byb2xvZ3VlKSwg
SklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaywgTm9JbnRyaW5zaWMpOworICAgICAgICBqaXRDb2Rl
ID0gbmV3IFNoYXJlZE5hdGl2ZUpJVENvZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGlu
dF9ldmFsX3Byb2xvZ3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuayk7CiAgICAgfSk7CiAg
ICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1ha2VSZWYoKmppdENvZGUpKTsKIH0KQEAgLTEwNiwx
MCArMTA2LDEwIEBAIHN0YXRpYyB2b2lkIHNldFByb2dyYW1FbnRyeXBvaW50KFZNJiB2bSwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2spCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAogICAgIFVOVVNFRF9Q
QVJBTSh2bSk7Ci0gICAgc3RhdGljIE5hdGl2ZUpJVENvZGUqIGppdENvZGU7CisgICAgc3RhdGlj
IFNoYXJlZE5hdGl2ZUpJVENvZGUqIGppdENvZGU7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgWyZdIHsKLSAgICAgICAgaml0
Q29kZSA9IG5ldyBOYXRpdmVKSVRDb2RlKGdldENvZGVSZWY8SlNFbnRyeVB0clRhZz4obGxpbnRf
cHJvZ3JhbV9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmssIE5vSW50cmluc2lj
KTsKKyAgICAgICAgaml0Q29kZSA9IG5ldyBTaGFyZWROYXRpdmVKSVRDb2RlKGdldENvZGVSZWY8
SlNFbnRyeVB0clRhZz4obGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJl
dGVyVGh1bmspOwogICAgIH0pOwogICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZShtYWtlUmVmKCpq
aXRDb2RlKSk7CiB9CkBAIC0xMjYsMTAgKzEyNiwxMCBAQCBzdGF0aWMgdm9pZCBzZXRNb2R1bGVQ
cm9ncmFtRW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQogI2VuZGlmIC8v
IEVOQUJMRShKSVQpCiAKICAgICBVTlVTRURfUEFSQU0odm0pOwotICAgIHN0YXRpYyBOYXRpdmVK
SVRDb2RlKiBqaXRDb2RlOworICAgIHN0YXRpYyBTaGFyZWROYXRpdmVKSVRDb2RlKiBqaXRDb2Rl
OwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlS2V5OwogICAgIHN0ZDo6Y2FsbF9vbmNl
KG9uY2VLZXksIFsmXSB7Ci0gICAgICAgIGppdENvZGUgPSBuZXcgTmF0aXZlSklUQ29kZShnZXRD
b2RlUmVmPEpTRW50cnlQdHJUYWc+KGxsaW50X21vZHVsZV9wcm9ncmFtX3Byb2xvZ3VlKSwgSklU
Q29kZTo6SW50ZXJwcmV0ZXJUaHVuaywgTm9JbnRyaW5zaWMpOworICAgICAgICBqaXRDb2RlID0g
bmV3IFNoYXJlZE5hdGl2ZUpJVENvZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9t
b2R1bGVfcHJvZ3JhbV9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspOwogICAg
IH0pOwogICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZShtYWtlUmVmKCpqaXRDb2RlKSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364574</attachid>
            <date>2019-03-13 14:37:35 -0700</date>
            <delta_ts>2019-03-13 14:43:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195638-20190313183732.patch</filename>
            <type>text/plain</type>
            <size>13871</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MmRmYzZlMDVjNDFiNGNkYTA3NDM2ZTA0ZDBiMzYxZjRkMTVkMjhhLi4zZGY1YTFjN2YxZmQ2MDk1
OTlhYTEwODJlYjVhZmU5ZjNmNWQwMWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAxOS0wMy0xMyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0pTQ10gQ29kZUJsb2NrOjp2aXNpdENoaWxkcmVuIGlzIHJlcG9ydGluZyBl
eHRyYSBtZW1vcnkgZXZlbiB3aGVuIGl0cyBKSVRDb2RlIGlzIHNpbmdsZXRvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NjM4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBpbnRy
b2R1Y2luZyBuZXcgZmllbGQgb24gSklUQ29kZSB0byByZXByZXNlbnQKKyAgICAgICAgaXRzIHNo
YXJlZCB2ZXJzaW9ucy4gV2l0aCB0aGlzIG5ldyBmaWVsZCwgd2UgaW50cm9kdWNlZCBhIG5ldwor
ICAgICAgICBtZXRob2QgYGlzU2hhcmVkKClgIHRvIGluZGljYXRlIHRoYXQgYSBKSVRDb2RlIGlz
IHNoYXJlZCBhbW9uZworICAgICAgICBDb2RlQmxvY2tzLiBUaGlzIGlzIGJlaW5nIHVzZWQgYnkg
YENvZGVCbG9jazo6c2V0SklUQ29kZWAgYW5kCisgICAgICAgIGBDb2RlQmxvY2s6OnZpc2l0Q2hp
bGRyZW5gIHRvIGF2b2lkIHJlcG9ydCBkdXBsaWNhdGVkIGV4dHJhIG1lbW9yeSBmb3IKKyAgICAg
ICAgc2luZ2xldG9uIEpJVENvZGVzLgorICAgICAgICBXaXRoIHRob3NlIGNoYW5nZXMsIHdlIG5v
dyBzdG9wIGFjY291bnRpbmcgc2luZ2xldG9uIExMSW50RW50cnlwb2ludHMKKyAgICAgICAgYXMg
ZXh0cmEgbWVtb3J5LCBzaW5jZSB0aGV5IGFyZSBkZWNsYXJlZCBhcyBzdGF0aWMgdmFyaWFibGVz
LiBUaGlzCisgICAgICAgIGNoYW5nZSBjYW4gcG90dGVudGlhbGx5IGF2b2lkIHVuZWNlc3Nhcnkg
R0MgcHJlc3N1cmUsIGJlY2F1c2UKKyAgICAgICAgZXh0cmEgbWVtb3J5IGlzIHVzZWQgYnkgSGVh
cDo6dXBkYXRlQWxsb2NhdGlvbkxpbWl0cygpIHRvIHVwZGF0ZSBIZWFwCisgICAgICAgIGxpbWl0
cy4KKyAgICAgICAgRXZlbiB0aG91Z2ggaXQgaXMgaGFyZCB0byBzaG93IHBlcmZvcm1hbmNlIGRp
ZmZlcmVuY2UgZm9yIHRoaXMgY2hhbmdlCisgICAgICAgIChzZWUgcmVzdWx0cyBiZWxvdyksIGl0
IGlzIGltcG9ydGFudCBrZWVwIGV4dHJhIG1lbW9yeSB1c2FnZSBjb25zaXN0ZW50LAorICAgICAg
ICBvdGhlcndpc2UgaXQgY2FuIGJlIGEgc291cmNlIG9mIGEgY29tcGxpY2F0ZWQgYnVnIG9uIEdD
IGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgUmVzdWx0cyBmcm9tIGxhc3QgcnVuIG9mIFNwZWVk
b21ldGVyIDIgY29tcGFyaW5nIFRvVCBhbmQgY2hhbmdlcy4gV2UKKyAgICAgICAgY29sbGVjdGVk
IHRob3NlIG51bWJlcnMgcnVubmluZyBNaW5pYnJvd3NlciBvbiBhIE1hY0Jvb2sgUHJvIDE1LWlu
Y2gKKyAgICAgICAgd2l0aCAyLDYgR0h6IEludGVsIENvcmUgaTcuIEJvdGggdmVyc2lvbnMgYXJl
IHdpdGggSklUIGRpc2FibGVkLAorICAgICAgICBzaW5jZSB0aGVzZSBzaW5nbGV0b24gSklUQ29k
ZSBhcmUgb25seSB1c2VkIGJ5IHRoaXMgY29uZmlndXJhdGlvbjoKKworICAgICAgICBTcGVlZG9t
ZXRlcjIgUnVuICMxCisgICAgICAgICAgICBUb1Q6IDU4LjIgKy0gMS4xCisgICAgICAgICAgICBj
aGFuZ2VzOiA1Ny45ICstIDAuOTkKKworICAgICAgICBTcGVlZG9tZXRlcjIgUnVuICMyCisgICAg
ICAgICAgICBUb1Q6IDU4LjUgKy0gMS43CisgICAgICAgICAgICBjaGFuZ2VzOiA1OC4wICstIDEu
NQorCisgICAgICAgIFNwZWVkb21ldGVyMiBSdW4gIzIKKyAgICAgICAgICAgIFRvVDogNTguNSAr
LSAwLjk5CisgICAgICAgICAgICBjaGFuZ2VzOiA1Ny4xICstIDEuNQorCisgICAgICAgICogYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjplc3RpbWF0ZWRT
aXplKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAg
KiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzZXRKSVRD
b2RlKToKKyAgICAgICAgKiBqaXQvSklUQ29kZS5jcHA6CisgICAgICAgIChKU0M6OkpJVENvZGU6
OkpJVENvZGUpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0aENvZGVSZWY6OkpJVENvZGVXaXRo
Q29kZVJlZik6CisgICAgICAgIChKU0M6OkRpcmVjdEpJVENvZGU6OkRpcmVjdEpJVENvZGUpOgor
ICAgICAgICAoSlNDOjpOYXRpdmVKSVRDb2RlOjpOYXRpdmVKSVRDb2RlKToKKyAgICAgICAgKiBq
aXQvSklUQ29kZS5oOgorICAgICAgICAoSlNDOjpKSVRDb2RlOjppc1NoYXJlZCBjb25zdCk6Cisg
ICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6
OnNldEZ1bmN0aW9uRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRFdmFsRW50
cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRQcm9ncmFtRW50cnlwb2ludCk6Cisg
ICAgICAgIChKU0M6OkxMSW50OjpzZXRNb2R1bGVQcm9ncmFtRW50cnlwb2ludCk6CisgICAgICAg
ICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6aml0RW5hYmxlZEJ5RGVmYXVs
dCk6CisKIDIwMTktMDMtMTEgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29t
PgogCiAgICAgICAgIEFkZCBPcHRpb25hbCB0byBGb3J3YXJkLmguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGFlN2U4MTM0MWQxNDJiNzRiYTI3
YThmNjVhZDhkYTg4YzI1MzE2MmUuLmZiMTZiNDhiZTRiZjQwNzg4YTI3YjY0NjQxYzJlOGNkYzg3
YTg4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
CkBAIC05NDcsOCArOTQ3LDkgQEAgc2l6ZV90IENvZGVCbG9jazo6ZXN0aW1hdGVkU2l6ZShKU0Nl
bGwqIGNlbGwsIFZNJiB2bSkKICAgICBzaXplX3QgZXh0cmFNZW1vcnlBbGxvY2F0ZWQgPSAwOwog
ICAgIGlmICh0aGlzT2JqZWN0LT5tX21ldGFkYXRhKQogICAgICAgICBleHRyYU1lbW9yeUFsbG9j
YXRlZCArPSB0aGlzT2JqZWN0LT5tX21ldGFkYXRhLT5zaXplSW5CeXRlcygpOwotICAgIGlmICh0
aGlzT2JqZWN0LT5tX2ppdENvZGUpCi0gICAgICAgIGV4dHJhTWVtb3J5QWxsb2NhdGVkICs9IHRo
aXNPYmplY3QtPm1faml0Q29kZS0+c2l6ZSgpOworICAgIFJlZlB0cjxKSVRDb2RlPiBqaXRDb2Rl
ID0gdGhpc09iamVjdC0+bV9qaXRDb2RlOworICAgIGlmIChqaXRDb2RlICYmICFqaXRDb2RlLT5p
c1NoYXJlZCgpKQorICAgICAgICBleHRyYU1lbW9yeUFsbG9jYXRlZCArPSBqaXRDb2RlLT5zaXpl
KCk7CiAgICAgcmV0dXJuIEJhc2U6OmVzdGltYXRlZFNpemUoY2VsbCwgdm0pICsgZXh0cmFNZW1v
cnlBbGxvY2F0ZWQ7CiB9CiAKQEAgLTk3MCw3ICs5NzEsNyBAQCB2b2lkIENvZGVCbG9jazo6dmlz
aXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBzaXplX3QgZXh0cmFNZW1vcnkg
PSAwOwogICAgIGlmIChtX21ldGFkYXRhKQogICAgICAgICBleHRyYU1lbW9yeSArPSBtX21ldGFk
YXRhLT5zaXplSW5CeXRlcygpOwotICAgIGlmIChtX2ppdENvZGUpCisgICAgaWYgKG1faml0Q29k
ZSAmJiAhbV9qaXRDb2RlLT5pc1NoYXJlZCgpKQogICAgICAgICBleHRyYU1lbW9yeSArPSBtX2pp
dENvZGUtPnNpemUoKTsKICAgICB2aXNpdG9yLnJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZChleHRy
YU1lbW9yeSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApp
bmRleCBjYmM3YWMyOWRhYzZlNjdmZmRkZmFkOWZhZDE0YzQ3ODk3MzFjYjExLi41ZWVjYjc3Zjky
MzczMzU5ZTU0OWM2NDA5OGNhMmZiYWRkZWIzYTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC0zOTIsMTEgKzM5MiwxNCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRKSVRDb2RlKFJlZjxKSVRDb2RlPiYmIGNvZGUpCiAgICAgewogICAgICAgICBBU1NF
UlQoaGVhcCgpLT5pc0RlZmVycmVkKCkpOwotICAgICAgICBoZWFwKCktPnJlcG9ydEV4dHJhTWVt
b3J5QWxsb2NhdGVkKGNvZGUtPnNpemUoKSk7CisgICAgICAgIGlmICghY29kZS0+aXNTaGFyZWQo
KSkKKyAgICAgICAgICAgIGhlYXAoKS0+cmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQoY29kZS0+
c2l6ZSgpKTsKKwogICAgICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKG1fbG9jayk7CiAg
ICAgICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7IC8vIFRoaXMgaXMgcHJvYmFibHkgbm90IG5l
ZWRlZCBiZWNhdXNlIHRoZSBsb2NrIHdpbGwgYWxzbyBkbyBzb21ldGhpbmcgc2ltaWxhciwgYnV0
IGl0J3MgZ29vZCB0byBiZSBwYXJhbm9pZC4KICAgICAgICAgbV9qaXRDb2RlID0gV1RGTW92ZShj
b2RlKTsKICAgICB9CisKICAgICBSZWZQdHI8SklUQ29kZT4gaml0Q29kZSgpIHsgcmV0dXJuIG1f
aml0Q29kZTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3Qgaml0Q29kZU9mZnNldCgpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihDb2RlQmxvY2ssIG1faml0Q29kZSk7IH0KICAgICBKSVRDb2RlOjpK
SVRUeXBlIGppdFR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRDb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5jcHAK
aW5kZXggZTI5NWE4YWJhNzRmMGU2NDRjOTU4NjVjOGZlNDBjYWU3ZDI3ZTY0NS4uN2U0Yzk3YWJh
OWFlYTEyZDQxZjJmZWFlMzUxZGM1YjYwYTI5Mjk2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVENvZGUuY3BwCkBAIC0zMiw4ICszMiw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1KSVRD
b2RlOjpKSVRDb2RlKEpJVFR5cGUgaml0VHlwZSkKK0pJVENvZGU6OkpJVENvZGUoSklUVHlwZSBq
aXRUeXBlLCBTaGFyZUF0dHJpYnV0ZSBzaGFyZUF0dHJpYnV0ZSkKICAgICA6IG1faml0VHlwZShq
aXRUeXBlKQorICAgICwgbV9zaGFyZUF0dHJpYnV0ZShzaGFyZUF0dHJpYnV0ZSkKIHsKIH0KIApA
QCAtOTUsOCArOTYsOCBAQCBKSVRDb2RlV2l0aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZihK
SVRUeXBlIGppdFR5cGUpCiB7CiB9CiAKLUpJVENvZGVXaXRoQ29kZVJlZjo6SklUQ29kZVdpdGhD
b2RlUmVmKENvZGVSZWY8SlNFbnRyeVB0clRhZz4gcmVmLCBKSVRUeXBlIGppdFR5cGUpCi0gICAg
OiBKSVRDb2RlKGppdFR5cGUpCitKSVRDb2RlV2l0aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJl
ZihDb2RlUmVmPEpTRW50cnlQdHJUYWc+IHJlZiwgSklUVHlwZSBqaXRUeXBlLCBKSVRDb2RlOjpT
aGFyZUF0dHJpYnV0ZSBzaGFyZUF0dHJpYnV0ZSkKKyAgICA6IEpJVENvZGUoaml0VHlwZSwgc2hh
cmVBdHRyaWJ1dGUpCiAgICAgLCBtX3JlZihyZWYpCiB7CiB9CkBAIC0xNTEsMTYgKzE1MiwxNiBA
QCBEaXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRDb2RlKEpJVFR5cGUgaml0VHlwZSkKIHsKIH0KIAot
RGlyZWN0SklUQ29kZTo6RGlyZWN0SklUQ29kZShKSVRDb2RlOjpDb2RlUmVmPEpTRW50cnlQdHJU
YWc+IHJlZiwgSklUQ29kZTo6Q29kZVB0cjxKU0VudHJ5UHRyVGFnPiB3aXRoQXJpdHlDaGVjaywg
SklUVHlwZSBqaXRUeXBlKQotICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKHJlZiwgaml0VHlwZSkK
K0RpcmVjdEpJVENvZGU6OkRpcmVjdEpJVENvZGUoSklUQ29kZTo6Q29kZVJlZjxKU0VudHJ5UHRy
VGFnPiByZWYsIEpJVENvZGU6OkNvZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0aEFyaXR5Q2hlY2ss
IEpJVFR5cGUgaml0VHlwZSwgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGUgc2hhcmVBdHRyaWJ1dGUp
CisgICAgOiBKSVRDb2RlV2l0aENvZGVSZWYocmVmLCBqaXRUeXBlLCBzaGFyZUF0dHJpYnV0ZSkK
ICAgICAsIG1fd2l0aEFyaXR5Q2hlY2sod2l0aEFyaXR5Q2hlY2spCiB7CiAgICAgQVNTRVJUKG1f
cmVmKTsKICAgICBBU1NFUlQobV93aXRoQXJpdHlDaGVjayk7CiB9CiAKLURpcmVjdEpJVENvZGU6
OkRpcmVjdEpJVENvZGUoSklUQ29kZTo6Q29kZVJlZjxKU0VudHJ5UHRyVGFnPiByZWYsIEpJVENv
ZGU6OkNvZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0aEFyaXR5Q2hlY2ssIEpJVFR5cGUgaml0VHlw
ZSwgSW50cmluc2ljIGludHJpbnNpYykKLSAgICA6IEpJVENvZGVXaXRoQ29kZVJlZihyZWYsIGpp
dFR5cGUpCitEaXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRDb2RlKEpJVENvZGU6OkNvZGVSZWY8SlNF
bnRyeVB0clRhZz4gcmVmLCBKSVRDb2RlOjpDb2RlUHRyPEpTRW50cnlQdHJUYWc+IHdpdGhBcml0
eUNoZWNrLCBKSVRUeXBlIGppdFR5cGUsIEludHJpbnNpYyBpbnRyaW5zaWMsIEpJVENvZGU6OlNo
YXJlQXR0cmlidXRlIHNoYXJlQXR0cmlidXRlKQorICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKHJl
Ziwgaml0VHlwZSwgc2hhcmVBdHRyaWJ1dGUpCiAgICAgLCBtX3dpdGhBcml0eUNoZWNrKHdpdGhB
cml0eUNoZWNrKQogewogICAgIG1faW50cmluc2ljID0gaW50cmluc2ljOwpAQCAtMjAwLDggKzIw
MSw4IEBAIE5hdGl2ZUpJVENvZGU6Ok5hdGl2ZUpJVENvZGUoSklUVHlwZSBqaXRUeXBlKQogewog
fQogCi1OYXRpdmVKSVRDb2RlOjpOYXRpdmVKSVRDb2RlKENvZGVSZWY8SlNFbnRyeVB0clRhZz4g
cmVmLCBKSVRUeXBlIGppdFR5cGUsIEludHJpbnNpYyBpbnRyaW5zaWMpCi0gICAgOiBKSVRDb2Rl
V2l0aENvZGVSZWYocmVmLCBqaXRUeXBlKQorTmF0aXZlSklUQ29kZTo6TmF0aXZlSklUQ29kZShD
b2RlUmVmPEpTRW50cnlQdHJUYWc+IHJlZiwgSklUVHlwZSBqaXRUeXBlLCBJbnRyaW5zaWMgaW50
cmluc2ljLCBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZSBzaGFyZUF0dHJpYnV0ZSkKKyAgICA6IEpJ
VENvZGVXaXRoQ29kZVJlZihyZWYsIGppdFR5cGUsIHNoYXJlQXR0cmlidXRlKQogewogICAgIG1f
aW50cmluc2ljID0gaW50cmluc2ljOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaApp
bmRleCA4NzVmNTkyMTBhYzZhMTA2ZTNmZDAyZWNkZmM4YjNjM2RiOWQxODE5Li5iOTdkOGVhMTNj
MjVkMGU4YTc2NDg1ODRiMWQ1N2RiN2IxNmE0YWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENvZGUuaApAQCAtMTU4LDggKzE1OCwxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0
IERPTUpJVDo6U2lnbmF0dXJlKiBzaWduYXR1cmUoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgCisgICAgZW51bSBjbGFzcyBTaGFyZUF0dHJpYnV0ZSA6IHVpbnQ4X3QgeworICAgICAg
ICBOb3RTaGFyZWQsCisgICAgICAgIFNoYXJlZAorICAgIH07CisKIHByb3RlY3RlZDoKLSAgICBK
SVRDb2RlKEpJVFR5cGUpOworICAgIEpJVENvZGUoSklUVHlwZSwgSklUQ29kZTo6U2hhcmVBdHRy
aWJ1dGUgPSBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZTo6Tm90U2hhcmVkKTsKICAgICAKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5KSVRDb2RlKCk7CkBAIC0yMDUsOCArMjEwLDE0IEBAIHB1YmxpYzoK
IAogICAgIEludHJpbnNpYyBpbnRyaW5zaWMoKSB7IHJldHVybiBtX2ludHJpbnNpYzsgfQogCisg
ICAgYm9vbCBpc1NoYXJlZCgpIGNvbnN0CisgICAgeyAKKyAgICAgICAgcmV0dXJuIG1fc2hhcmVB
dHRyaWJ1dGUgPT0gU2hhcmVBdHRyaWJ1dGU6OlNoYXJlZDsKKyAgICB9CisKIHByaXZhdGU6CiAg
ICAgSklUVHlwZSBtX2ppdFR5cGU7CisgICAgU2hhcmVBdHRyaWJ1dGUgbV9zaGFyZUF0dHJpYnV0
ZTsKIHByb3RlY3RlZDoKICAgICBJbnRyaW5zaWMgbV9pbnRyaW5zaWMgeyBOb0ludHJpbnNpYyB9
OyAvLyBFZmZlY3RpdmUgb25seSBpbiBOYXRpdmVFeGVjdXRhYmxlLgogfTsKQEAgLTIxNCw3ICsy
MjUsNyBAQCBwcm90ZWN0ZWQ6CiBjbGFzcyBKSVRDb2RlV2l0aENvZGVSZWYgOiBwdWJsaWMgSklU
Q29kZSB7CiBwcm90ZWN0ZWQ6CiAgICAgSklUQ29kZVdpdGhDb2RlUmVmKEpJVFR5cGUpOwotICAg
IEpJVENvZGVXaXRoQ29kZVJlZihDb2RlUmVmPEpTRW50cnlQdHJUYWc+LCBKSVRUeXBlKTsKKyAg
ICBKSVRDb2RlV2l0aENvZGVSZWYoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgSklUVHlwZSwgSklU
Q29kZTo6U2hhcmVBdHRyaWJ1dGUpOwogCiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SklUQ29kZVdp
dGhDb2RlUmVmKCk7CkBAIC0yMzIsOCArMjQzLDggQEAgcHJvdGVjdGVkOgogY2xhc3MgRGlyZWN0
SklUQ29kZSA6IHB1YmxpYyBKSVRDb2RlV2l0aENvZGVSZWYgewogcHVibGljOgogICAgIERpcmVj
dEpJVENvZGUoSklUVHlwZSk7Ci0gICAgRGlyZWN0SklUQ29kZShDb2RlUmVmPEpTRW50cnlQdHJU
YWc+LCBDb2RlUHRyPEpTRW50cnlQdHJUYWc+IHdpdGhBcml0eUNoZWNrLCBKSVRUeXBlKTsKLSAg
ICBEaXJlY3RKSVRDb2RlKENvZGVSZWY8SlNFbnRyeVB0clRhZz4sIENvZGVQdHI8SlNFbnRyeVB0
clRhZz4gd2l0aEFyaXR5Q2hlY2ssIEpJVFR5cGUsIEludHJpbnNpYyk7IC8vIEZvciBnZW5lcmF0
ZWQgdGh1bmsuCisgICAgRGlyZWN0SklUQ29kZShDb2RlUmVmPEpTRW50cnlQdHJUYWc+LCBDb2Rl
UHRyPEpTRW50cnlQdHJUYWc+IHdpdGhBcml0eUNoZWNrLCBKSVRUeXBlLCBKSVRDb2RlOjpTaGFy
ZUF0dHJpYnV0ZSA9IEpJVENvZGU6OlNoYXJlQXR0cmlidXRlOjpOb3RTaGFyZWQpOworICAgIERp
cmVjdEpJVENvZGUoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgQ29kZVB0cjxKU0VudHJ5UHRyVGFn
PiB3aXRoQXJpdHlDaGVjaywgSklUVHlwZSwgSW50cmluc2ljLCBKSVRDb2RlOjpTaGFyZUF0dHJp
YnV0ZSA9IEpJVENvZGU6OlNoYXJlQXR0cmlidXRlOjpOb3RTaGFyZWQpOyAvLyBGb3IgZ2VuZXJh
dGVkIHRodW5rLgogICAgIHZpcnR1YWwgfkRpcmVjdEpJVENvZGUoKTsKICAgICAKICAgICBDb2Rl
UHRyPEpTRW50cnlQdHJUYWc+IGFkZHJlc3NGb3JDYWxsKEFyaXR5Q2hlY2tNb2RlKSBvdmVycmlk
ZTsKQEAgLTI0OCw3ICsyNTksNyBAQCBwcml2YXRlOgogY2xhc3MgTmF0aXZlSklUQ29kZSA6IHB1
YmxpYyBKSVRDb2RlV2l0aENvZGVSZWYgewogcHVibGljOgogICAgIE5hdGl2ZUpJVENvZGUoSklU
VHlwZSk7Ci0gICAgTmF0aXZlSklUQ29kZShDb2RlUmVmPEpTRW50cnlQdHJUYWc+LCBKSVRUeXBl
LCBJbnRyaW5zaWMpOworICAgIE5hdGl2ZUpJVENvZGUoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwg
SklUVHlwZSwgSW50cmluc2ljLCBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZSA9IEpJVENvZGU6OlNo
YXJlQXR0cmlidXRlOjpOb3RTaGFyZWQpOwogICAgIHZpcnR1YWwgfk5hdGl2ZUpJVENvZGUoKTsK
IAogICAgIENvZGVQdHI8SlNFbnRyeVB0clRhZz4gYWRkcmVzc0ZvckNhbGwoQXJpdHlDaGVja01v
ZGUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50RW50cnlwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRy
eXBvaW50LmNwcAppbmRleCBhN2I3NjM3OGY3NWRjNzc0ZGFiNDQ4OTRiZjVjZjYyODZkZjhmZDM5
Li4zZWJiOGE2NjY4NWZhOWIzNDc2MTAzYTNjNTcyM2ZmYmZkNTNmZmVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcApAQCAtNjEsMTQgKzYx
LDE0IEBAIHN0YXRpYyB2b2lkIHNldEZ1bmN0aW9uRW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9j
ayogY29kZUJsb2NrKQogICAgICAgICBzdGF0aWMgRGlyZWN0SklUQ29kZSogaml0Q29kZTsKICAg
ICAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2VLZXksIFsmXSB7Ci0gICAgICAgICAgICBqaXRDb2RlID0gbmV3IERpcmVjdEpJVENv
ZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9s
b2d1ZSksIGdldENvZGVQdHI8SlNFbnRyeVB0clRhZz4obGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxf
YXJpdHlfY2hlY2spLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKTsKKyAgICAgICAgICAgIGpp
dENvZGUgPSBuZXcgRGlyZWN0SklUQ29kZShnZXRDb2RlUmVmPEpTRW50cnlQdHJUYWc+KGxsaW50
X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3VlKSwgZ2V0Q29kZVB0cjxKU0VudHJ5UHRyVGFnPihs
bGludF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eV9jaGVjayksIEpJVENvZGU6OkludGVycHJldGVy
VGh1bmssIEpJVENvZGU6OlNoYXJlQXR0cmlidXRlOjpTaGFyZWQpOwogICAgICAgICB9KTsKICAg
ICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1ha2VSZWYoKmppdENvZGUpKTsKICAgICB9IGVs
c2UgewogICAgICAgICBzdGF0aWMgRGlyZWN0SklUQ29kZSogaml0Q29kZTsKICAgICAgICAgc3Rh
dGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VL
ZXksIFsmXSB7Ci0gICAgICAgICAgICBqaXRDb2RlID0gbmV3IERpcmVjdEpJVENvZGUoZ2V0Q29k
ZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3Vl
KSwgZ2V0Q29kZVB0cjxKU0VudHJ5UHRyVGFnPihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0
X2FyaXR5X2NoZWNrKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuayk7CisgICAgICAgICAgICBq
aXRDb2RlID0gbmV3IERpcmVjdEpJVENvZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGlu
dF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3VlKSwgZ2V0Q29kZVB0cjxKU0VudHJ5UHRy
VGFnPihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5X2NoZWNrKSwgSklUQ29kZTo6
SW50ZXJwcmV0ZXJUaHVuaywgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGU6OlNoYXJlZCk7CiAgICAg
ICAgIH0pOwogICAgICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUobWFrZVJlZigqaml0Q29kZSkp
OwogICAgIH0KQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIHZvaWQgc2V0RXZhbEVudHJ5cG9pbnQo
Vk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICBzdGF0aWMgTmF0aXZlSklUQ29kZSog
aml0Q29kZTsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKICAgICBzdGQ6OmNh
bGxfb25jZShvbmNlS2V5LCBbJl0gewotICAgICAgICBqaXRDb2RlID0gbmV3IE5hdGl2ZUpJVENv
ZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9ldmFsX3Byb2xvZ3VlKSwgSklUQ29k
ZTo6SW50ZXJwcmV0ZXJUaHVuaywgTm9JbnRyaW5zaWMpOworICAgICAgICBqaXRDb2RlID0gbmV3
IE5hdGl2ZUpJVENvZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9ldmFsX3Byb2xv
Z3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaywgSW50cmluc2ljOjpOb0ludHJpbnNpYywg
SklUQ29kZTo6U2hhcmVBdHRyaWJ1dGU6OlNoYXJlZCk7CiAgICAgfSk7CiAgICAgY29kZUJsb2Nr
LT5zZXRKSVRDb2RlKG1ha2VSZWYoKmppdENvZGUpKTsKIH0KQEAgLTEwOSw3ICsxMDksNyBAQCBz
dGF0aWMgdm9pZCBzZXRQcm9ncmFtRW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJs
b2NrKQogICAgIHN0YXRpYyBOYXRpdmVKSVRDb2RlKiBqaXRDb2RlOwogICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlS2V5OwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFsmXSB7Ci0g
ICAgICAgIGppdENvZGUgPSBuZXcgTmF0aXZlSklUQ29kZShnZXRDb2RlUmVmPEpTRW50cnlQdHJU
YWc+KGxsaW50X3Byb2dyYW1fcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rLCBO
b0ludHJpbnNpYyk7CisgICAgICAgIGppdENvZGUgPSBuZXcgTmF0aXZlSklUQ29kZShnZXRDb2Rl
UmVmPEpTRW50cnlQdHJUYWc+KGxsaW50X3Byb2dyYW1fcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRl
cnByZXRlclRodW5rLCBJbnRyaW5zaWM6Ok5vSW50cmluc2ljLCBKSVRDb2RlOjpTaGFyZUF0dHJp
YnV0ZTo6U2hhcmVkKTsKICAgICB9KTsKICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUobWFrZVJl
Zigqaml0Q29kZSkpOwogfQpAQCAtMTI5LDcgKzEyOSw3IEBAIHN0YXRpYyB2b2lkIHNldE1vZHVs
ZVByb2dyYW1FbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAgICAgc3Rh
dGljIE5hdGl2ZUpJVENvZGUqIGppdENvZGU7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9u
Y2VLZXk7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgWyZdIHsKLSAgICAgICAgaml0Q29k
ZSA9IG5ldyBOYXRpdmVKSVRDb2RlKGdldENvZGVSZWY8SlNFbnRyeVB0clRhZz4obGxpbnRfbW9k
dWxlX3Byb2dyYW1fcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rLCBOb0ludHJp
bnNpYyk7CisgICAgICAgIGppdENvZGUgPSBuZXcgTmF0aXZlSklUQ29kZShnZXRDb2RlUmVmPEpT
RW50cnlQdHJUYWc+KGxsaW50X21vZHVsZV9wcm9ncmFtX3Byb2xvZ3VlKSwgSklUQ29kZTo6SW50
ZXJwcmV0ZXJUaHVuaywgSW50cmluc2ljOjpOb0ludHJpbnNpYywgSklUQ29kZTo6U2hhcmVBdHRy
aWJ1dGU6OlNoYXJlZCk7CiAgICAgfSk7CiAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1ha2VS
ZWYoKmppdENvZGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5j
cHAKaW5kZXggM2MzMWRlYmNiNWNiMTlhMzU0MzkxN2MxMjUxY2Q0OTk0OTMzZDA3Ny4uZjE0ZjE1
OTY1ZTFmYjIzMjFhYTBkNGNlYWRjZmZlM2M0ZTBlOWZjMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgaW50MzJf
dCBjb21wdXRlUHJpb3JpdHlEZWx0YU9mV29ya2VyVGhyZWFkcyhpbnQzMl90IHR3b0NvcmVQcmlv
cml0eURlbHRhLAogCiBzdGF0aWMgYm9vbCBqaXRFbmFibGVkQnlEZWZhdWx0KCkKIHsKLSAgICBy
ZXR1cm4gaXMzMkJpdCgpIHx8IGlzQWRkcmVzczY0Qml0KCk7CisgICAgcmV0dXJuIGZhbHNlOwog
fQogCiBzdGF0aWMgdW5zaWduZWQgY29tcHV0ZU51bWJlck9mR0NNYXJrZXJzKHVuc2lnbmVkIG1h
eE51bWJlck9mR0NNYXJrZXJzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364576</attachid>
            <date>2019-03-13 14:43:56 -0700</date>
            <delta_ts>2019-03-13 17:28:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195638-20190313184353.patch</filename>
            <type>text/plain</type>
            <size>13230</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MmRmYzZlMDVjNDFiNGNkYTA3NDM2ZTA0ZDBiMzYxZjRkMTVkMjhhLi5kYzc5Y2ZmNzg0MzAzM2Ez
ZjgyNGE4NjYwZGEwMThiODMzZTdjZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAxOS0wMy0xMyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0pTQ10gQ29kZUJsb2NrOjp2aXNpdENoaWxkcmVuIGlzIHJlcG9ydGluZyBl
eHRyYSBtZW1vcnkgZXZlbiB3aGVuIGl0cyBKSVRDb2RlIGlzIHNpbmdsZXRvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NjM4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBpbnRy
b2R1Y2luZyBuZXcgZmllbGQgb24gSklUQ29kZSB0byByZXByZXNlbnQKKyAgICAgICAgaXRzIHNo
YXJlZCB2ZXJzaW9ucy4gV2l0aCB0aGlzIG5ldyBmaWVsZCwgd2UgaW50cm9kdWNlZCBhIG5ldwor
ICAgICAgICBtZXRob2QgYGlzU2hhcmVkKClgIHRvIGluZGljYXRlIHRoYXQgYSBKSVRDb2RlIGlz
IHNoYXJlZCBhbW9uZworICAgICAgICBDb2RlQmxvY2tzLiBUaGlzIGlzIGJlaW5nIHVzZWQgYnkg
YENvZGVCbG9jazo6c2V0SklUQ29kZWAgYW5kCisgICAgICAgIGBDb2RlQmxvY2s6OnZpc2l0Q2hp
bGRyZW5gIHRvIGF2b2lkIHJlcG9ydCBkdXBsaWNhdGVkIGV4dHJhIG1lbW9yeSBmb3IKKyAgICAg
ICAgc2luZ2xldG9uIEpJVENvZGVzLgorICAgICAgICBXaXRoIHRob3NlIGNoYW5nZXMsIHdlIG5v
dyBzdG9wIGFjY291bnRpbmcgc2luZ2xldG9uIExMSW50RW50cnlwb2ludHMKKyAgICAgICAgYXMg
ZXh0cmEgbWVtb3J5LCBzaW5jZSB0aGV5IGFyZSBkZWNsYXJlZCBhcyBzdGF0aWMgdmFyaWFibGVz
LiBUaGlzCisgICAgICAgIGNoYW5nZSBjYW4gcG90dGVudGlhbGx5IGF2b2lkIHVuZWNlc3Nhcnkg
R0MgcHJlc3N1cmUsIGJlY2F1c2UKKyAgICAgICAgZXh0cmEgbWVtb3J5IGlzIHVzZWQgYnkgSGVh
cDo6dXBkYXRlQWxsb2NhdGlvbkxpbWl0cygpIHRvIHVwZGF0ZSBIZWFwCisgICAgICAgIGxpbWl0
cy4KKyAgICAgICAgRXZlbiB0aG91Z2ggaXQgaXMgaGFyZCB0byBzaG93IHBlcmZvcm1hbmNlIGRp
ZmZlcmVuY2UgZm9yIHRoaXMgY2hhbmdlCisgICAgICAgIChzZWUgcmVzdWx0cyBiZWxvdyksIGl0
IGlzIGltcG9ydGFudCBrZWVwIGV4dHJhIG1lbW9yeSB1c2FnZSBjb25zaXN0ZW50LAorICAgICAg
ICBvdGhlcndpc2UgaXQgY2FuIGJlIGEgc291cmNlIG9mIGEgY29tcGxpY2F0ZWQgYnVnIG9uIEdD
IGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgUmVzdWx0cyBmcm9tIGxhc3QgcnVuIG9mIFNwZWVk
b21ldGVyIDIgY29tcGFyaW5nIFRvVCBhbmQgY2hhbmdlcy4gV2UKKyAgICAgICAgY29sbGVjdGVk
IHRob3NlIG51bWJlcnMgcnVubmluZyBNaW5pYnJvd3NlciBvbiBhIE1hY0Jvb2sgUHJvIDE1LWlu
Y2gKKyAgICAgICAgd2l0aCAyLDYgR0h6IEludGVsIENvcmUgaTcuIEJvdGggdmVyc2lvbnMgYXJl
IHdpdGggSklUIGRpc2FibGVkLAorICAgICAgICBzaW5jZSB0aGVzZSBzaW5nbGV0b24gSklUQ29k
ZSBhcmUgb25seSB1c2VkIGJ5IHRoaXMgY29uZmlndXJhdGlvbjoKKworICAgICAgICBTcGVlZG9t
ZXRlcjIgUnVuICMxCisgICAgICAgICAgICBUb1Q6IDU4LjIgKy0gMS4xCisgICAgICAgICAgICBj
aGFuZ2VzOiA1Ny45ICstIDAuOTkKKworICAgICAgICBTcGVlZG9tZXRlcjIgUnVuICMyCisgICAg
ICAgICAgICBUb1Q6IDU4LjUgKy0gMS43CisgICAgICAgICAgICBjaGFuZ2VzOiA1OC4wICstIDEu
NQorCisgICAgICAgIFNwZWVkb21ldGVyMiBSdW4gIzIKKyAgICAgICAgICAgIFRvVDogNTguNSAr
LSAwLjk5CisgICAgICAgICAgICBjaGFuZ2VzOiA1Ny4xICstIDEuNQorCisgICAgICAgICogYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjplc3RpbWF0ZWRT
aXplKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAg
KiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzZXRKSVRD
b2RlKToKKyAgICAgICAgKiBqaXQvSklUQ29kZS5jcHA6CisgICAgICAgIChKU0M6OkpJVENvZGU6
OkpJVENvZGUpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0aENvZGVSZWY6OkpJVENvZGVXaXRo
Q29kZVJlZik6CisgICAgICAgIChKU0M6OkRpcmVjdEpJVENvZGU6OkRpcmVjdEpJVENvZGUpOgor
ICAgICAgICAoSlNDOjpOYXRpdmVKSVRDb2RlOjpOYXRpdmVKSVRDb2RlKToKKyAgICAgICAgKiBq
aXQvSklUQ29kZS5oOgorICAgICAgICAoSlNDOjpKSVRDb2RlOjppc1NoYXJlZCBjb25zdCk6Cisg
ICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6
OnNldEZ1bmN0aW9uRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRFdmFsRW50
cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRQcm9ncmFtRW50cnlwb2ludCk6Cisg
ICAgICAgIChKU0M6OkxMSW50OjpzZXRNb2R1bGVQcm9ncmFtRW50cnlwb2ludCk6CisKIDIwMTkt
MDMtMTEgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAg
IEFkZCBPcHRpb25hbCB0byBGb3J3YXJkLmguCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGFlN2U4MTM0MWQxNDJiNzRiYTI3YThmNjVhZDhkYTg4
YzI1MzE2MmUuLmZiMTZiNDhiZTRiZjQwNzg4YTI3YjY0NjQxYzJlOGNkYzg3YTg4OTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC05NDcsOCAr
OTQ3LDkgQEAgc2l6ZV90IENvZGVCbG9jazo6ZXN0aW1hdGVkU2l6ZShKU0NlbGwqIGNlbGwsIFZN
JiB2bSkKICAgICBzaXplX3QgZXh0cmFNZW1vcnlBbGxvY2F0ZWQgPSAwOwogICAgIGlmICh0aGlz
T2JqZWN0LT5tX21ldGFkYXRhKQogICAgICAgICBleHRyYU1lbW9yeUFsbG9jYXRlZCArPSB0aGlz
T2JqZWN0LT5tX21ldGFkYXRhLT5zaXplSW5CeXRlcygpOwotICAgIGlmICh0aGlzT2JqZWN0LT5t
X2ppdENvZGUpCi0gICAgICAgIGV4dHJhTWVtb3J5QWxsb2NhdGVkICs9IHRoaXNPYmplY3QtPm1f
aml0Q29kZS0+c2l6ZSgpOworICAgIFJlZlB0cjxKSVRDb2RlPiBqaXRDb2RlID0gdGhpc09iamVj
dC0+bV9qaXRDb2RlOworICAgIGlmIChqaXRDb2RlICYmICFqaXRDb2RlLT5pc1NoYXJlZCgpKQor
ICAgICAgICBleHRyYU1lbW9yeUFsbG9jYXRlZCArPSBqaXRDb2RlLT5zaXplKCk7CiAgICAgcmV0
dXJuIEJhc2U6OmVzdGltYXRlZFNpemUoY2VsbCwgdm0pICsgZXh0cmFNZW1vcnlBbGxvY2F0ZWQ7
CiB9CiAKQEAgLTk3MCw3ICs5NzEsNyBAQCB2b2lkIENvZGVCbG9jazo6dmlzaXRDaGlsZHJlbihT
bG90VmlzaXRvciYgdmlzaXRvcikKICAgICBzaXplX3QgZXh0cmFNZW1vcnkgPSAwOwogICAgIGlm
IChtX21ldGFkYXRhKQogICAgICAgICBleHRyYU1lbW9yeSArPSBtX21ldGFkYXRhLT5zaXplSW5C
eXRlcygpOwotICAgIGlmIChtX2ppdENvZGUpCisgICAgaWYgKG1faml0Q29kZSAmJiAhbV9qaXRD
b2RlLT5pc1NoYXJlZCgpKQogICAgICAgICBleHRyYU1lbW9yeSArPSBtX2ppdENvZGUtPnNpemUo
KTsKICAgICB2aXNpdG9yLnJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZChleHRyYU1lbW9yeSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCBjYmM3YWMy
OWRhYzZlNjdmZmRkZmFkOWZhZDE0YzQ3ODk3MzFjYjExLi41ZWVjYjc3ZjkyMzczMzU5ZTU0OWM2
NDA5OGNhMmZiYWRkZWIzYTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oCkBAIC0zOTIsMTEgKzM5MiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRKSVRD
b2RlKFJlZjxKSVRDb2RlPiYmIGNvZGUpCiAgICAgewogICAgICAgICBBU1NFUlQoaGVhcCgpLT5p
c0RlZmVycmVkKCkpOwotICAgICAgICBoZWFwKCktPnJlcG9ydEV4dHJhTWVtb3J5QWxsb2NhdGVk
KGNvZGUtPnNpemUoKSk7CisgICAgICAgIGlmICghY29kZS0+aXNTaGFyZWQoKSkKKyAgICAgICAg
ICAgIGhlYXAoKS0+cmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQoY29kZS0+c2l6ZSgpKTsKKwog
ICAgICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAgIFdURjo6
c3RvcmVTdG9yZUZlbmNlKCk7IC8vIFRoaXMgaXMgcHJvYmFibHkgbm90IG5lZWRlZCBiZWNhdXNl
IHRoZSBsb2NrIHdpbGwgYWxzbyBkbyBzb21ldGhpbmcgc2ltaWxhciwgYnV0IGl0J3MgZ29vZCB0
byBiZSBwYXJhbm9pZC4KICAgICAgICAgbV9qaXRDb2RlID0gV1RGTW92ZShjb2RlKTsKICAgICB9
CisKICAgICBSZWZQdHI8SklUQ29kZT4gaml0Q29kZSgpIHsgcmV0dXJuIG1faml0Q29kZTsgfQog
ICAgIHN0YXRpYyBwdHJkaWZmX3Qgaml0Q29kZU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihDb2RlQmxvY2ssIG1faml0Q29kZSk7IH0KICAgICBKSVRDb2RlOjpKSVRUeXBlIGppdFR5
cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2Rl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5jcHAKaW5kZXggZTI5NWE4
YWJhNzRmMGU2NDRjOTU4NjVjOGZlNDBjYWU3ZDI3ZTY0NS4uN2U0Yzk3YWJhOWFlYTEyZDQxZjJm
ZWFlMzUxZGM1YjYwYTI5Mjk2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRDb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3Bw
CkBAIC0zMiw4ICszMiw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1KSVRDb2RlOjpKSVRDb2Rl
KEpJVFR5cGUgaml0VHlwZSkKK0pJVENvZGU6OkpJVENvZGUoSklUVHlwZSBqaXRUeXBlLCBTaGFy
ZUF0dHJpYnV0ZSBzaGFyZUF0dHJpYnV0ZSkKICAgICA6IG1faml0VHlwZShqaXRUeXBlKQorICAg
ICwgbV9zaGFyZUF0dHJpYnV0ZShzaGFyZUF0dHJpYnV0ZSkKIHsKIH0KIApAQCAtOTUsOCArOTYs
OCBAQCBKSVRDb2RlV2l0aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZihKSVRUeXBlIGppdFR5
cGUpCiB7CiB9CiAKLUpJVENvZGVXaXRoQ29kZVJlZjo6SklUQ29kZVdpdGhDb2RlUmVmKENvZGVS
ZWY8SlNFbnRyeVB0clRhZz4gcmVmLCBKSVRUeXBlIGppdFR5cGUpCi0gICAgOiBKSVRDb2RlKGpp
dFR5cGUpCitKSVRDb2RlV2l0aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZihDb2RlUmVmPEpT
RW50cnlQdHJUYWc+IHJlZiwgSklUVHlwZSBqaXRUeXBlLCBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0
ZSBzaGFyZUF0dHJpYnV0ZSkKKyAgICA6IEpJVENvZGUoaml0VHlwZSwgc2hhcmVBdHRyaWJ1dGUp
CiAgICAgLCBtX3JlZihyZWYpCiB7CiB9CkBAIC0xNTEsMTYgKzE1MiwxNiBAQCBEaXJlY3RKSVRD
b2RlOjpEaXJlY3RKSVRDb2RlKEpJVFR5cGUgaml0VHlwZSkKIHsKIH0KIAotRGlyZWN0SklUQ29k
ZTo6RGlyZWN0SklUQ29kZShKSVRDb2RlOjpDb2RlUmVmPEpTRW50cnlQdHJUYWc+IHJlZiwgSklU
Q29kZTo6Q29kZVB0cjxKU0VudHJ5UHRyVGFnPiB3aXRoQXJpdHlDaGVjaywgSklUVHlwZSBqaXRU
eXBlKQotICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKHJlZiwgaml0VHlwZSkKK0RpcmVjdEpJVENv
ZGU6OkRpcmVjdEpJVENvZGUoSklUQ29kZTo6Q29kZVJlZjxKU0VudHJ5UHRyVGFnPiByZWYsIEpJ
VENvZGU6OkNvZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0aEFyaXR5Q2hlY2ssIEpJVFR5cGUgaml0
VHlwZSwgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGUgc2hhcmVBdHRyaWJ1dGUpCisgICAgOiBKSVRD
b2RlV2l0aENvZGVSZWYocmVmLCBqaXRUeXBlLCBzaGFyZUF0dHJpYnV0ZSkKICAgICAsIG1fd2l0
aEFyaXR5Q2hlY2sod2l0aEFyaXR5Q2hlY2spCiB7CiAgICAgQVNTRVJUKG1fcmVmKTsKICAgICBB
U1NFUlQobV93aXRoQXJpdHlDaGVjayk7CiB9CiAKLURpcmVjdEpJVENvZGU6OkRpcmVjdEpJVENv
ZGUoSklUQ29kZTo6Q29kZVJlZjxKU0VudHJ5UHRyVGFnPiByZWYsIEpJVENvZGU6OkNvZGVQdHI8
SlNFbnRyeVB0clRhZz4gd2l0aEFyaXR5Q2hlY2ssIEpJVFR5cGUgaml0VHlwZSwgSW50cmluc2lj
IGludHJpbnNpYykKLSAgICA6IEpJVENvZGVXaXRoQ29kZVJlZihyZWYsIGppdFR5cGUpCitEaXJl
Y3RKSVRDb2RlOjpEaXJlY3RKSVRDb2RlKEpJVENvZGU6OkNvZGVSZWY8SlNFbnRyeVB0clRhZz4g
cmVmLCBKSVRDb2RlOjpDb2RlUHRyPEpTRW50cnlQdHJUYWc+IHdpdGhBcml0eUNoZWNrLCBKSVRU
eXBlIGppdFR5cGUsIEludHJpbnNpYyBpbnRyaW5zaWMsIEpJVENvZGU6OlNoYXJlQXR0cmlidXRl
IHNoYXJlQXR0cmlidXRlKQorICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKHJlZiwgaml0VHlwZSwg
c2hhcmVBdHRyaWJ1dGUpCiAgICAgLCBtX3dpdGhBcml0eUNoZWNrKHdpdGhBcml0eUNoZWNrKQog
ewogICAgIG1faW50cmluc2ljID0gaW50cmluc2ljOwpAQCAtMjAwLDggKzIwMSw4IEBAIE5hdGl2
ZUpJVENvZGU6Ok5hdGl2ZUpJVENvZGUoSklUVHlwZSBqaXRUeXBlKQogewogfQogCi1OYXRpdmVK
SVRDb2RlOjpOYXRpdmVKSVRDb2RlKENvZGVSZWY8SlNFbnRyeVB0clRhZz4gcmVmLCBKSVRUeXBl
IGppdFR5cGUsIEludHJpbnNpYyBpbnRyaW5zaWMpCi0gICAgOiBKSVRDb2RlV2l0aENvZGVSZWYo
cmVmLCBqaXRUeXBlKQorTmF0aXZlSklUQ29kZTo6TmF0aXZlSklUQ29kZShDb2RlUmVmPEpTRW50
cnlQdHJUYWc+IHJlZiwgSklUVHlwZSBqaXRUeXBlLCBJbnRyaW5zaWMgaW50cmluc2ljLCBKSVRD
b2RlOjpTaGFyZUF0dHJpYnV0ZSBzaGFyZUF0dHJpYnV0ZSkKKyAgICA6IEpJVENvZGVXaXRoQ29k
ZVJlZihyZWYsIGppdFR5cGUsIHNoYXJlQXR0cmlidXRlKQogewogICAgIG1faW50cmluc2ljID0g
aW50cmluc2ljOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
b2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAppbmRleCA4NzVmNTky
MTBhYzZhMTA2ZTNmZDAyZWNkZmM4YjNjM2RiOWQxODE5Li5iOTdkOGVhMTNjMjVkMGU4YTc2NDg1
ODRiMWQ1N2RiN2IxNmE0YWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVENvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaApAQCAt
MTU4LDggKzE1OCwxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IERPTUpJVDo6U2ln
bmF0dXJlKiBzaWduYXR1cmUoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgCisgICAg
ZW51bSBjbGFzcyBTaGFyZUF0dHJpYnV0ZSA6IHVpbnQ4X3QgeworICAgICAgICBOb3RTaGFyZWQs
CisgICAgICAgIFNoYXJlZAorICAgIH07CisKIHByb3RlY3RlZDoKLSAgICBKSVRDb2RlKEpJVFR5
cGUpOworICAgIEpJVENvZGUoSklUVHlwZSwgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGUgPSBKSVRD
b2RlOjpTaGFyZUF0dHJpYnV0ZTo6Tm90U2hhcmVkKTsKICAgICAKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5KSVRDb2RlKCk7CkBAIC0yMDUsOCArMjEwLDE0IEBAIHB1YmxpYzoKIAogICAgIEludHJp
bnNpYyBpbnRyaW5zaWMoKSB7IHJldHVybiBtX2ludHJpbnNpYzsgfQogCisgICAgYm9vbCBpc1No
YXJlZCgpIGNvbnN0CisgICAgeyAKKyAgICAgICAgcmV0dXJuIG1fc2hhcmVBdHRyaWJ1dGUgPT0g
U2hhcmVBdHRyaWJ1dGU6OlNoYXJlZDsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgSklUVHlwZSBt
X2ppdFR5cGU7CisgICAgU2hhcmVBdHRyaWJ1dGUgbV9zaGFyZUF0dHJpYnV0ZTsKIHByb3RlY3Rl
ZDoKICAgICBJbnRyaW5zaWMgbV9pbnRyaW5zaWMgeyBOb0ludHJpbnNpYyB9OyAvLyBFZmZlY3Rp
dmUgb25seSBpbiBOYXRpdmVFeGVjdXRhYmxlLgogfTsKQEAgLTIxNCw3ICsyMjUsNyBAQCBwcm90
ZWN0ZWQ6CiBjbGFzcyBKSVRDb2RlV2l0aENvZGVSZWYgOiBwdWJsaWMgSklUQ29kZSB7CiBwcm90
ZWN0ZWQ6CiAgICAgSklUQ29kZVdpdGhDb2RlUmVmKEpJVFR5cGUpOwotICAgIEpJVENvZGVXaXRo
Q29kZVJlZihDb2RlUmVmPEpTRW50cnlQdHJUYWc+LCBKSVRUeXBlKTsKKyAgICBKSVRDb2RlV2l0
aENvZGVSZWYoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgSklUVHlwZSwgSklUQ29kZTo6U2hhcmVB
dHRyaWJ1dGUpOwogCiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SklUQ29kZVdpdGhDb2RlUmVmKCk7
CkBAIC0yMzIsOCArMjQzLDggQEAgcHJvdGVjdGVkOgogY2xhc3MgRGlyZWN0SklUQ29kZSA6IHB1
YmxpYyBKSVRDb2RlV2l0aENvZGVSZWYgewogcHVibGljOgogICAgIERpcmVjdEpJVENvZGUoSklU
VHlwZSk7Ci0gICAgRGlyZWN0SklUQ29kZShDb2RlUmVmPEpTRW50cnlQdHJUYWc+LCBDb2RlUHRy
PEpTRW50cnlQdHJUYWc+IHdpdGhBcml0eUNoZWNrLCBKSVRUeXBlKTsKLSAgICBEaXJlY3RKSVRD
b2RlKENvZGVSZWY8SlNFbnRyeVB0clRhZz4sIENvZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0aEFy
aXR5Q2hlY2ssIEpJVFR5cGUsIEludHJpbnNpYyk7IC8vIEZvciBnZW5lcmF0ZWQgdGh1bmsuCisg
ICAgRGlyZWN0SklUQ29kZShDb2RlUmVmPEpTRW50cnlQdHJUYWc+LCBDb2RlUHRyPEpTRW50cnlQ
dHJUYWc+IHdpdGhBcml0eUNoZWNrLCBKSVRUeXBlLCBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZSA9
IEpJVENvZGU6OlNoYXJlQXR0cmlidXRlOjpOb3RTaGFyZWQpOworICAgIERpcmVjdEpJVENvZGUo
Q29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiB3aXRoQXJpdHlD
aGVjaywgSklUVHlwZSwgSW50cmluc2ljLCBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZSA9IEpJVENv
ZGU6OlNoYXJlQXR0cmlidXRlOjpOb3RTaGFyZWQpOyAvLyBGb3IgZ2VuZXJhdGVkIHRodW5rLgog
ICAgIHZpcnR1YWwgfkRpcmVjdEpJVENvZGUoKTsKICAgICAKICAgICBDb2RlUHRyPEpTRW50cnlQ
dHJUYWc+IGFkZHJlc3NGb3JDYWxsKEFyaXR5Q2hlY2tNb2RlKSBvdmVycmlkZTsKQEAgLTI0OCw3
ICsyNTksNyBAQCBwcml2YXRlOgogY2xhc3MgTmF0aXZlSklUQ29kZSA6IHB1YmxpYyBKSVRDb2Rl
V2l0aENvZGVSZWYgewogcHVibGljOgogICAgIE5hdGl2ZUpJVENvZGUoSklUVHlwZSk7Ci0gICAg
TmF0aXZlSklUQ29kZShDb2RlUmVmPEpTRW50cnlQdHJUYWc+LCBKSVRUeXBlLCBJbnRyaW5zaWMp
OworICAgIE5hdGl2ZUpJVENvZGUoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgSklUVHlwZSwgSW50
cmluc2ljLCBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZSA9IEpJVENvZGU6OlNoYXJlQXR0cmlidXRl
OjpOb3RTaGFyZWQpOwogICAgIHZpcnR1YWwgfk5hdGl2ZUpJVENvZGUoKTsKIAogICAgIENvZGVQ
dHI8SlNFbnRyeVB0clRhZz4gYWRkcmVzc0ZvckNhbGwoQXJpdHlDaGVja01vZGUpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2lu
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcApp
bmRleCBhN2I3NjM3OGY3NWRjNzc0ZGFiNDQ4OTRiZjVjZjYyODZkZjhmZDM5Li4zZWJiOGE2NjY4
NWZhOWIzNDc2MTAzYTNjNTcyM2ZmYmZkNTNmZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcApAQCAtNjEsMTQgKzYxLDE0IEBAIHN0YXRp
YyB2b2lkIHNldEZ1bmN0aW9uRW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2Nr
KQogICAgICAgICBzdGF0aWMgRGlyZWN0SklUQ29kZSogaml0Q29kZTsKICAgICAgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXks
IFsmXSB7Ci0gICAgICAgICAgICBqaXRDb2RlID0gbmV3IERpcmVjdEpJVENvZGUoZ2V0Q29kZVJl
ZjxKU0VudHJ5UHRyVGFnPihsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSksIGdldENv
ZGVQdHI8SlNFbnRyeVB0clRhZz4obGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2sp
LCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKTsKKyAgICAgICAgICAgIGppdENvZGUgPSBuZXcg
RGlyZWN0SklUQ29kZShnZXRDb2RlUmVmPEpTRW50cnlQdHJUYWc+KGxsaW50X2Z1bmN0aW9uX2Zv
cl9jYWxsX3Byb2xvZ3VlKSwgZ2V0Q29kZVB0cjxKU0VudHJ5UHRyVGFnPihsbGludF9mdW5jdGlv
bl9mb3JfY2FsbF9hcml0eV9jaGVjayksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmssIEpJVENv
ZGU6OlNoYXJlQXR0cmlidXRlOjpTaGFyZWQpOwogICAgICAgICB9KTsKICAgICAgICAgY29kZUJs
b2NrLT5zZXRKSVRDb2RlKG1ha2VSZWYoKmppdENvZGUpKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBzdGF0aWMgRGlyZWN0SklUQ29kZSogaml0Q29kZTsKICAgICAgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIG9uY2VLZXk7CiAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFsmXSB7Ci0g
ICAgICAgICAgICBqaXRDb2RlID0gbmV3IERpcmVjdEpJVENvZGUoZ2V0Q29kZVJlZjxKU0VudHJ5
UHRyVGFnPihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3VlKSwgZ2V0Q29kZVB0
cjxKU0VudHJ5UHRyVGFnPihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5X2NoZWNr
KSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuayk7CisgICAgICAgICAgICBqaXRDb2RlID0gbmV3
IERpcmVjdEpJVENvZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9mdW5jdGlvbl9m
b3JfY29uc3RydWN0X3Byb2xvZ3VlKSwgZ2V0Q29kZVB0cjxKU0VudHJ5UHRyVGFnPihsbGludF9m
dW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5X2NoZWNrKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJU
aHVuaywgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGU6OlNoYXJlZCk7CiAgICAgICAgIH0pOwogICAg
ICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUobWFrZVJlZigqaml0Q29kZSkpOwogICAgIH0KQEAg
LTg5LDcgKzg5LDcgQEAgc3RhdGljIHZvaWQgc2V0RXZhbEVudHJ5cG9pbnQoVk0mIHZtLCBDb2Rl
QmxvY2sqIGNvZGVCbG9jaykKICAgICBzdGF0aWMgTmF0aXZlSklUQ29kZSogaml0Q29kZTsKICAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNl
S2V5LCBbJl0gewotICAgICAgICBqaXRDb2RlID0gbmV3IE5hdGl2ZUpJVENvZGUoZ2V0Q29kZVJl
ZjxKU0VudHJ5UHRyVGFnPihsbGludF9ldmFsX3Byb2xvZ3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0
ZXJUaHVuaywgTm9JbnRyaW5zaWMpOworICAgICAgICBqaXRDb2RlID0gbmV3IE5hdGl2ZUpJVENv
ZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9ldmFsX3Byb2xvZ3VlKSwgSklUQ29k
ZTo6SW50ZXJwcmV0ZXJUaHVuaywgSW50cmluc2ljOjpOb0ludHJpbnNpYywgSklUQ29kZTo6U2hh
cmVBdHRyaWJ1dGU6OlNoYXJlZCk7CiAgICAgfSk7CiAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2Rl
KG1ha2VSZWYoKmppdENvZGUpKTsKIH0KQEAgLTEwOSw3ICsxMDksNyBAQCBzdGF0aWMgdm9pZCBz
ZXRQcm9ncmFtRW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQogICAgIHN0
YXRpYyBOYXRpdmVKSVRDb2RlKiBqaXRDb2RlOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBv
bmNlS2V5OwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFsmXSB7Ci0gICAgICAgIGppdENv
ZGUgPSBuZXcgTmF0aXZlSklUQ29kZShnZXRDb2RlUmVmPEpTRW50cnlQdHJUYWc+KGxsaW50X3By
b2dyYW1fcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rLCBOb0ludHJpbnNpYyk7
CisgICAgICAgIGppdENvZGUgPSBuZXcgTmF0aXZlSklUQ29kZShnZXRDb2RlUmVmPEpTRW50cnlQ
dHJUYWc+KGxsaW50X3Byb2dyYW1fcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5r
LCBJbnRyaW5zaWM6Ok5vSW50cmluc2ljLCBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZTo6U2hhcmVk
KTsKICAgICB9KTsKICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUobWFrZVJlZigqaml0Q29kZSkp
OwogfQpAQCAtMTI5LDcgKzEyOSw3IEBAIHN0YXRpYyB2b2lkIHNldE1vZHVsZVByb2dyYW1FbnRy
eXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAgICAgc3RhdGljIE5hdGl2ZUpJ
VENvZGUqIGppdENvZGU7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAg
c3RkOjpjYWxsX29uY2Uob25jZUtleSwgWyZdIHsKLSAgICAgICAgaml0Q29kZSA9IG5ldyBOYXRp
dmVKSVRDb2RlKGdldENvZGVSZWY8SlNFbnRyeVB0clRhZz4obGxpbnRfbW9kdWxlX3Byb2dyYW1f
cHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rLCBOb0ludHJpbnNpYyk7CisgICAg
ICAgIGppdENvZGUgPSBuZXcgTmF0aXZlSklUQ29kZShnZXRDb2RlUmVmPEpTRW50cnlQdHJUYWc+
KGxsaW50X21vZHVsZV9wcm9ncmFtX3Byb2xvZ3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVu
aywgSW50cmluc2ljOjpOb0ludHJpbnNpYywgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGU6OlNoYXJl
ZCk7CiAgICAgfSk7CiAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1ha2VSZWYoKmppdENvZGUp
KTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364594</attachid>
            <date>2019-03-13 17:28:54 -0700</date>
            <delta_ts>2019-03-13 18:09:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195638-20190313212852.patch</filename>
            <type>text/plain</type>
            <size>13102</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MmRmYzZlMDVjNDFiNGNkYTA3NDM2ZTA0ZDBiMzYxZjRkMTVkMjhhLi43ODU5ZmQxZmMyNWJkOWJh
ZGQ0MDRiNWZjOGRmMGU4ZDA1OTYxZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAxOS0wMy0xMyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0pTQ10gQ29kZUJsb2NrOjp2aXNpdENoaWxkcmVuIGlzIHJlcG9ydGluZyBl
eHRyYSBtZW1vcnkgZXZlbiB3aGVuIGl0cyBKSVRDb2RlIGlzIHNpbmdsZXRvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NjM4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEg
bV9pc1NoYXJlZCBmbGFnIHRvIHRyYWNrIHdoZXRoZXIgdGhlCisgICAgICAgIEpJVENvZGUgaXMg
c2hhcmVkIGJldHdlZW4gbWFueSBDb2RlQmxvY2tzLiBUaGlzIGZsYWcgaXMgdXNlZCBpbgorICAg
ICAgICBgQ29kZUJsb2NrOjpzZXRKSVRDb2RlYCBhbmQgYENvZGVCbG9jazo6dmlzaXRDaGlsZHJl
bmAgdG8gYXZvaWQKKyAgICAgICAgcmVwb3J0aW5nIGR1cGxpY2F0ZWQgZXh0cmEgbWVtb3J5IGZv
ciBzaW5nbGV0b24gSklUQ29kZXMuCisgICAgICAgIFdpdGggdGhvc2UgY2hhbmdlcywgd2Ugbm93
IHN0b3AgY291bnRpbmcgc2luZ2xldG9uIExMSW50RW50cnlwb2ludHMKKyAgICAgICAgYXMgZXh0
cmEgbWVtb3J5LCBzaW5jZSB0aGV5IGFyZSBkZWNsYXJlZCBhcyBzdGF0aWMgdmFyaWFibGVzLiBU
aGlzCisgICAgICAgIGNoYW5nZSBjYW4gcG90ZW50aWFsbHkgYXZvaWQgdW5lY2Vzc2FyeSBHQyBw
cmVzc3VyZSwgYmVjYXVzZQorICAgICAgICBleHRyYSBtZW1vcnkgaXMgdXNlZCBieSBIZWFwOjp1
cGRhdGVBbGxvY2F0aW9uTGltaXRzKCkgdG8gdXBkYXRlIEhlYXAKKyAgICAgICAgbGltaXRzLgor
ICAgICAgICBFdmVuIHRob3VnaCBpdCBpcyBoYXJkIHRvIHNob3cgcGVyZm9ybWFuY2UgZGlmZmVy
ZW5jZSBmb3IgdGhpcyBjaGFuZ2UKKyAgICAgICAgKHNlZSByZXN1bHRzIGJlbG93KSwgaXQgaXMg
aW1wb3J0YW50IHRvIGtlZXAgZXh0cmEgbWVtb3J5IHVzYWdlCisgICAgICAgIGNvcnJlY3QuIE90
aGVyd2lzZSwgaXQgY2FuIGJlIGEgc291cmNlIG9mIGEgY29tcGxpY2F0ZWQgYnVnIG9uCisgICAg
ICAgIEdDIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgUmVzdWx0cyBmcm9tIGxhc3QgcnVuIG9m
IFNwZWVkb21ldGVyIDIgY29tcGFyaW5nIFRvVCBhbmQgY2hhbmdlcy4gV2UKKyAgICAgICAgY29s
bGVjdGVkIHRob3NlIG51bWJlcnMgcnVubmluZyBNaW5pYnJvd3NlciBvbiBhIE1hY0Jvb2sgUHJv
IDE1LWluY2gKKyAgICAgICAgd2l0aCAyLDYgR0h6IEludGVsIENvcmUgaTcuIEJvdGggdmVyc2lv
bnMgYXJlIHdpdGggSklUIGRpc2FibGVkLAorICAgICAgICBzaW5jZSB0aGVzZSBzaW5nbGV0b24g
SklUQ29kZSBhcmUgb25seSB1c2VkIGJ5IHRoaXMgY29uZmlndXJhdGlvbjoKKworICAgICAgICBT
cGVlZG9tZXRlcjIgUnVuICMxCisgICAgICAgICAgICBUb1Q6IDU4LjIgKy0gMS4xCisgICAgICAg
ICAgICBjaGFuZ2VzOiA1Ny45ICstIDAuOTkKKworICAgICAgICBTcGVlZG9tZXRlcjIgUnVuICMy
CisgICAgICAgICAgICBUb1Q6IDU4LjUgKy0gMS43CisgICAgICAgICAgICBjaGFuZ2VzOiA1OC4w
ICstIDEuNQorCisgICAgICAgIFNwZWVkb21ldGVyMiBSdW4gIzIKKyAgICAgICAgICAgIFRvVDog
NTguNSArLSAwLjk5CisgICAgICAgICAgICBjaGFuZ2VzOiA1Ny4xICstIDEuNQorCisgICAgICAg
ICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjplc3Rp
bWF0ZWRTaXplKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjp2aXNpdENoaWxkcmVuKToKKyAg
ICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpz
ZXRKSVRDb2RlKToKKyAgICAgICAgKiBqaXQvSklUQ29kZS5jcHA6CisgICAgICAgIChKU0M6OkpJ
VENvZGU6OkpJVENvZGUpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0aENvZGVSZWY6OkpJVENv
ZGVXaXRoQ29kZVJlZik6CisgICAgICAgIChKU0M6OkRpcmVjdEpJVENvZGU6OkRpcmVjdEpJVENv
ZGUpOgorICAgICAgICAoSlNDOjpOYXRpdmVKSVRDb2RlOjpOYXRpdmVKSVRDb2RlKToKKyAgICAg
ICAgKiBqaXQvSklUQ29kZS5oOgorICAgICAgICAoSlNDOjpKSVRDb2RlOjppc1NoYXJlZCBjb25z
dCk6CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcDoKKyAgICAgICAgKEpTQzo6
TExJbnQ6OnNldEZ1bmN0aW9uRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRF
dmFsRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRQcm9ncmFtRW50cnlwb2lu
dCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRNb2R1bGVQcm9ncmFtRW50cnlwb2ludCk6CisK
IDIwMTktMDMtMTEgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAg
ICAgICAgIEFkZCBPcHRpb25hbCB0byBGb3J3YXJkLmguCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGFlN2U4MTM0MWQxNDJiNzRiYTI3YThmNjVh
ZDhkYTg4YzI1MzE2MmUuLmZiMTZiNDhiZTRiZjQwNzg4YTI3YjY0NjQxYzJlOGNkYzg3YTg4OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC05
NDcsOCArOTQ3LDkgQEAgc2l6ZV90IENvZGVCbG9jazo6ZXN0aW1hdGVkU2l6ZShKU0NlbGwqIGNl
bGwsIFZNJiB2bSkKICAgICBzaXplX3QgZXh0cmFNZW1vcnlBbGxvY2F0ZWQgPSAwOwogICAgIGlm
ICh0aGlzT2JqZWN0LT5tX21ldGFkYXRhKQogICAgICAgICBleHRyYU1lbW9yeUFsbG9jYXRlZCAr
PSB0aGlzT2JqZWN0LT5tX21ldGFkYXRhLT5zaXplSW5CeXRlcygpOwotICAgIGlmICh0aGlzT2Jq
ZWN0LT5tX2ppdENvZGUpCi0gICAgICAgIGV4dHJhTWVtb3J5QWxsb2NhdGVkICs9IHRoaXNPYmpl
Y3QtPm1faml0Q29kZS0+c2l6ZSgpOworICAgIFJlZlB0cjxKSVRDb2RlPiBqaXRDb2RlID0gdGhp
c09iamVjdC0+bV9qaXRDb2RlOworICAgIGlmIChqaXRDb2RlICYmICFqaXRDb2RlLT5pc1NoYXJl
ZCgpKQorICAgICAgICBleHRyYU1lbW9yeUFsbG9jYXRlZCArPSBqaXRDb2RlLT5zaXplKCk7CiAg
ICAgcmV0dXJuIEJhc2U6OmVzdGltYXRlZFNpemUoY2VsbCwgdm0pICsgZXh0cmFNZW1vcnlBbGxv
Y2F0ZWQ7CiB9CiAKQEAgLTk3MCw3ICs5NzEsNyBAQCB2b2lkIENvZGVCbG9jazo6dmlzaXRDaGls
ZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBzaXplX3QgZXh0cmFNZW1vcnkgPSAwOwog
ICAgIGlmIChtX21ldGFkYXRhKQogICAgICAgICBleHRyYU1lbW9yeSArPSBtX21ldGFkYXRhLT5z
aXplSW5CeXRlcygpOwotICAgIGlmIChtX2ppdENvZGUpCisgICAgaWYgKG1faml0Q29kZSAmJiAh
bV9qaXRDb2RlLT5pc1NoYXJlZCgpKQogICAgICAgICBleHRyYU1lbW9yeSArPSBtX2ppdENvZGUt
PnNpemUoKTsKICAgICB2aXNpdG9yLnJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZChleHRyYU1lbW9y
eSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCBj
YmM3YWMyOWRhYzZlNjdmZmRkZmFkOWZhZDE0YzQ3ODk3MzFjYjExLi41ZWVjYjc3ZjkyMzczMzU5
ZTU0OWM2NDA5OGNhMmZiYWRkZWIzYTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oCkBAIC0zOTIsMTEgKzM5MiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRKSVRDb2RlKFJlZjxKSVRDb2RlPiYmIGNvZGUpCiAgICAgewogICAgICAgICBBU1NFUlQoaGVh
cCgpLT5pc0RlZmVycmVkKCkpOwotICAgICAgICBoZWFwKCktPnJlcG9ydEV4dHJhTWVtb3J5QWxs
b2NhdGVkKGNvZGUtPnNpemUoKSk7CisgICAgICAgIGlmICghY29kZS0+aXNTaGFyZWQoKSkKKyAg
ICAgICAgICAgIGhlYXAoKS0+cmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQoY29kZS0+c2l6ZSgp
KTsKKwogICAgICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAg
IFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7IC8vIFRoaXMgaXMgcHJvYmFibHkgbm90IG5lZWRlZCBi
ZWNhdXNlIHRoZSBsb2NrIHdpbGwgYWxzbyBkbyBzb21ldGhpbmcgc2ltaWxhciwgYnV0IGl0J3Mg
Z29vZCB0byBiZSBwYXJhbm9pZC4KICAgICAgICAgbV9qaXRDb2RlID0gV1RGTW92ZShjb2RlKTsK
ICAgICB9CisKICAgICBSZWZQdHI8SklUQ29kZT4gaml0Q29kZSgpIHsgcmV0dXJuIG1faml0Q29k
ZTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3Qgaml0Q29kZU9mZnNldCgpIHsgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihDb2RlQmxvY2ssIG1faml0Q29kZSk7IH0KICAgICBKSVRDb2RlOjpKSVRUeXBl
IGppdFR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRDb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5jcHAKaW5kZXgg
ZTI5NWE4YWJhNzRmMGU2NDRjOTU4NjVjOGZlNDBjYWU3ZDI3ZTY0NS4uN2U0Yzk3YWJhOWFlYTEy
ZDQxZjJmZWFlMzUxZGM1YjYwYTI5Mjk2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENv
ZGUuY3BwCkBAIC0zMiw4ICszMiw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1KSVRDb2RlOjpK
SVRDb2RlKEpJVFR5cGUgaml0VHlwZSkKK0pJVENvZGU6OkpJVENvZGUoSklUVHlwZSBqaXRUeXBl
LCBTaGFyZUF0dHJpYnV0ZSBzaGFyZUF0dHJpYnV0ZSkKICAgICA6IG1faml0VHlwZShqaXRUeXBl
KQorICAgICwgbV9zaGFyZUF0dHJpYnV0ZShzaGFyZUF0dHJpYnV0ZSkKIHsKIH0KIApAQCAtOTUs
OCArOTYsOCBAQCBKSVRDb2RlV2l0aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZihKSVRUeXBl
IGppdFR5cGUpCiB7CiB9CiAKLUpJVENvZGVXaXRoQ29kZVJlZjo6SklUQ29kZVdpdGhDb2RlUmVm
KENvZGVSZWY8SlNFbnRyeVB0clRhZz4gcmVmLCBKSVRUeXBlIGppdFR5cGUpCi0gICAgOiBKSVRD
b2RlKGppdFR5cGUpCitKSVRDb2RlV2l0aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZihDb2Rl
UmVmPEpTRW50cnlQdHJUYWc+IHJlZiwgSklUVHlwZSBqaXRUeXBlLCBKSVRDb2RlOjpTaGFyZUF0
dHJpYnV0ZSBzaGFyZUF0dHJpYnV0ZSkKKyAgICA6IEpJVENvZGUoaml0VHlwZSwgc2hhcmVBdHRy
aWJ1dGUpCiAgICAgLCBtX3JlZihyZWYpCiB7CiB9CkBAIC0xNTEsMTYgKzE1MiwxNiBAQCBEaXJl
Y3RKSVRDb2RlOjpEaXJlY3RKSVRDb2RlKEpJVFR5cGUgaml0VHlwZSkKIHsKIH0KIAotRGlyZWN0
SklUQ29kZTo6RGlyZWN0SklUQ29kZShKSVRDb2RlOjpDb2RlUmVmPEpTRW50cnlQdHJUYWc+IHJl
ZiwgSklUQ29kZTo6Q29kZVB0cjxKU0VudHJ5UHRyVGFnPiB3aXRoQXJpdHlDaGVjaywgSklUVHlw
ZSBqaXRUeXBlKQotICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKHJlZiwgaml0VHlwZSkKK0RpcmVj
dEpJVENvZGU6OkRpcmVjdEpJVENvZGUoSklUQ29kZTo6Q29kZVJlZjxKU0VudHJ5UHRyVGFnPiBy
ZWYsIEpJVENvZGU6OkNvZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0aEFyaXR5Q2hlY2ssIEpJVFR5
cGUgaml0VHlwZSwgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGUgc2hhcmVBdHRyaWJ1dGUpCisgICAg
OiBKSVRDb2RlV2l0aENvZGVSZWYocmVmLCBqaXRUeXBlLCBzaGFyZUF0dHJpYnV0ZSkKICAgICAs
IG1fd2l0aEFyaXR5Q2hlY2sod2l0aEFyaXR5Q2hlY2spCiB7CiAgICAgQVNTRVJUKG1fcmVmKTsK
ICAgICBBU1NFUlQobV93aXRoQXJpdHlDaGVjayk7CiB9CiAKLURpcmVjdEpJVENvZGU6OkRpcmVj
dEpJVENvZGUoSklUQ29kZTo6Q29kZVJlZjxKU0VudHJ5UHRyVGFnPiByZWYsIEpJVENvZGU6OkNv
ZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0aEFyaXR5Q2hlY2ssIEpJVFR5cGUgaml0VHlwZSwgSW50
cmluc2ljIGludHJpbnNpYykKLSAgICA6IEpJVENvZGVXaXRoQ29kZVJlZihyZWYsIGppdFR5cGUp
CitEaXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRDb2RlKEpJVENvZGU6OkNvZGVSZWY8SlNFbnRyeVB0
clRhZz4gcmVmLCBKSVRDb2RlOjpDb2RlUHRyPEpTRW50cnlQdHJUYWc+IHdpdGhBcml0eUNoZWNr
LCBKSVRUeXBlIGppdFR5cGUsIEludHJpbnNpYyBpbnRyaW5zaWMsIEpJVENvZGU6OlNoYXJlQXR0
cmlidXRlIHNoYXJlQXR0cmlidXRlKQorICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKHJlZiwgaml0
VHlwZSwgc2hhcmVBdHRyaWJ1dGUpCiAgICAgLCBtX3dpdGhBcml0eUNoZWNrKHdpdGhBcml0eUNo
ZWNrKQogewogICAgIG1faW50cmluc2ljID0gaW50cmluc2ljOwpAQCAtMjAwLDggKzIwMSw4IEBA
IE5hdGl2ZUpJVENvZGU6Ok5hdGl2ZUpJVENvZGUoSklUVHlwZSBqaXRUeXBlKQogewogfQogCi1O
YXRpdmVKSVRDb2RlOjpOYXRpdmVKSVRDb2RlKENvZGVSZWY8SlNFbnRyeVB0clRhZz4gcmVmLCBK
SVRUeXBlIGppdFR5cGUsIEludHJpbnNpYyBpbnRyaW5zaWMpCi0gICAgOiBKSVRDb2RlV2l0aENv
ZGVSZWYocmVmLCBqaXRUeXBlKQorTmF0aXZlSklUQ29kZTo6TmF0aXZlSklUQ29kZShDb2RlUmVm
PEpTRW50cnlQdHJUYWc+IHJlZiwgSklUVHlwZSBqaXRUeXBlLCBJbnRyaW5zaWMgaW50cmluc2lj
LCBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZSBzaGFyZUF0dHJpYnV0ZSkKKyAgICA6IEpJVENvZGVX
aXRoQ29kZVJlZihyZWYsIGppdFR5cGUsIHNoYXJlQXR0cmlidXRlKQogewogICAgIG1faW50cmlu
c2ljID0gaW50cmluc2ljOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAppbmRleCA4
NzVmNTkyMTBhYzZhMTA2ZTNmZDAyZWNkZmM4YjNjM2RiOWQxODE5Li43NDJmZDIxY2ViOGEwNjM4
ZGNjMzgzNmVlNzk5N2UyYTNmMGY2ZTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUu
aApAQCAtMTU4LDggKzE1OCwxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IERPTUpJ
VDo6U2lnbmF0dXJlKiBzaWduYXR1cmUoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAg
CisgICAgZW51bSBjbGFzcyBTaGFyZUF0dHJpYnV0ZSA6IHVpbnQ4X3QgeworICAgICAgICBOb3RT
aGFyZWQsCisgICAgICAgIFNoYXJlZAorICAgIH07CisKIHByb3RlY3RlZDoKLSAgICBKSVRDb2Rl
KEpJVFR5cGUpOworICAgIEpJVENvZGUoSklUVHlwZSwgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGUg
PSBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZTo6Tm90U2hhcmVkKTsKICAgICAKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5KSVRDb2RlKCk7CkBAIC0yMDUsOCArMjEwLDExIEBAIHB1YmxpYzoKIAogICAg
IEludHJpbnNpYyBpbnRyaW5zaWMoKSB7IHJldHVybiBtX2ludHJpbnNpYzsgfQogCisgICAgYm9v
bCBpc1NoYXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVBdHRyaWJ1dGUgPT0gU2hhcmVBdHRy
aWJ1dGU6OlNoYXJlZDsgfQorCiBwcml2YXRlOgogICAgIEpJVFR5cGUgbV9qaXRUeXBlOworICAg
IFNoYXJlQXR0cmlidXRlIG1fc2hhcmVBdHRyaWJ1dGU7CiBwcm90ZWN0ZWQ6CiAgICAgSW50cmlu
c2ljIG1faW50cmluc2ljIHsgTm9JbnRyaW5zaWMgfTsgLy8gRWZmZWN0aXZlIG9ubHkgaW4gTmF0
aXZlRXhlY3V0YWJsZS4KIH07CkBAIC0yMTQsNyArMjIyLDcgQEAgcHJvdGVjdGVkOgogY2xhc3Mg
SklUQ29kZVdpdGhDb2RlUmVmIDogcHVibGljIEpJVENvZGUgewogcHJvdGVjdGVkOgogICAgIEpJ
VENvZGVXaXRoQ29kZVJlZihKSVRUeXBlKTsKLSAgICBKSVRDb2RlV2l0aENvZGVSZWYoQ29kZVJl
ZjxKU0VudHJ5UHRyVGFnPiwgSklUVHlwZSk7CisgICAgSklUQ29kZVdpdGhDb2RlUmVmKENvZGVS
ZWY8SlNFbnRyeVB0clRhZz4sIEpJVFR5cGUsIEpJVENvZGU6OlNoYXJlQXR0cmlidXRlKTsKIAog
cHVibGljOgogICAgIHZpcnR1YWwgfkpJVENvZGVXaXRoQ29kZVJlZigpOwpAQCAtMjMyLDggKzI0
MCw4IEBAIHByb3RlY3RlZDoKIGNsYXNzIERpcmVjdEpJVENvZGUgOiBwdWJsaWMgSklUQ29kZVdp
dGhDb2RlUmVmIHsKIHB1YmxpYzoKICAgICBEaXJlY3RKSVRDb2RlKEpJVFR5cGUpOwotICAgIERp
cmVjdEpJVENvZGUoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgQ29kZVB0cjxKU0VudHJ5UHRyVGFn
PiB3aXRoQXJpdHlDaGVjaywgSklUVHlwZSk7Ci0gICAgRGlyZWN0SklUQ29kZShDb2RlUmVmPEpT
RW50cnlQdHJUYWc+LCBDb2RlUHRyPEpTRW50cnlQdHJUYWc+IHdpdGhBcml0eUNoZWNrLCBKSVRU
eXBlLCBJbnRyaW5zaWMpOyAvLyBGb3IgZ2VuZXJhdGVkIHRodW5rLgorICAgIERpcmVjdEpJVENv
ZGUoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiB3aXRoQXJp
dHlDaGVjaywgSklUVHlwZSwgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGUgPSBKSVRDb2RlOjpTaGFy
ZUF0dHJpYnV0ZTo6Tm90U2hhcmVkKTsKKyAgICBEaXJlY3RKSVRDb2RlKENvZGVSZWY8SlNFbnRy
eVB0clRhZz4sIENvZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0aEFyaXR5Q2hlY2ssIEpJVFR5cGUs
IEludHJpbnNpYywgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGUgPSBKSVRDb2RlOjpTaGFyZUF0dHJp
YnV0ZTo6Tm90U2hhcmVkKTsgLy8gRm9yIGdlbmVyYXRlZCB0aHVuay4KICAgICB2aXJ0dWFsIH5E
aXJlY3RKSVRDb2RlKCk7CiAgICAgCiAgICAgQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBhZGRyZXNz
Rm9yQ2FsbChBcml0eUNoZWNrTW9kZSkgb3ZlcnJpZGU7CkBAIC0yNDgsNyArMjU2LDcgQEAgcHJp
dmF0ZToKIGNsYXNzIE5hdGl2ZUpJVENvZGUgOiBwdWJsaWMgSklUQ29kZVdpdGhDb2RlUmVmIHsK
IHB1YmxpYzoKICAgICBOYXRpdmVKSVRDb2RlKEpJVFR5cGUpOwotICAgIE5hdGl2ZUpJVENvZGUo
Q29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgSklUVHlwZSwgSW50cmluc2ljKTsKKyAgICBOYXRpdmVK
SVRDb2RlKENvZGVSZWY8SlNFbnRyeVB0clRhZz4sIEpJVFR5cGUsIEludHJpbnNpYywgSklUQ29k
ZTo6U2hhcmVBdHRyaWJ1dGUgPSBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZTo6Tm90U2hhcmVkKTsK
ICAgICB2aXJ0dWFsIH5OYXRpdmVKSVRDb2RlKCk7CiAKICAgICBDb2RlUHRyPEpTRW50cnlQdHJU
YWc+IGFkZHJlc3NGb3JDYWxsKEFyaXR5Q2hlY2tNb2RlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAKaW5kZXggYTdiNzYzNzhm
NzVkYzc3NGRhYjQ0ODk0YmY1Y2Y2Mjg2ZGY4ZmQzOS4uM2ViYjhhNjY2ODVmYTliMzQ3NjEwM2Ez
YzU3MjNmZmJmZDUzZmZlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50RW50cnlwb2ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50RW50cnlwb2ludC5jcHAKQEAgLTYxLDE0ICs2MSwxNCBAQCBzdGF0aWMgdm9pZCBzZXRGdW5j
dGlvbkVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICAgICAgc3Rh
dGljIERpcmVjdEpJVENvZGUqIGppdENvZGU7CiAgICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBvbmNlS2V5OwogICAgICAgICBzdGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbJl0gewotICAgICAg
ICAgICAgaml0Q29kZSA9IG5ldyBEaXJlY3RKSVRDb2RlKGdldENvZGVSZWY8SlNFbnRyeVB0clRh
Zz4obGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWUpLCBnZXRDb2RlUHRyPEpTRW50cnlQ
dHJUYWc+KGxsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrKSwgSklUQ29kZTo6SW50
ZXJwcmV0ZXJUaHVuayk7CisgICAgICAgICAgICBqaXRDb2RlID0gbmV3IERpcmVjdEpJVENvZGUo
Z2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1
ZSksIGdldENvZGVQdHI8SlNFbnRyeVB0clRhZz4obGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJp
dHlfY2hlY2spLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rLCBKSVRDb2RlOjpTaGFyZUF0dHJp
YnV0ZTo6U2hhcmVkKTsKICAgICAgICAgfSk7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29k
ZShtYWtlUmVmKCpqaXRDb2RlKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgc3RhdGljIERpcmVj
dEpJVENvZGUqIGppdENvZGU7CiAgICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlS2V5
OwogICAgICAgICBzdGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbJl0gewotICAgICAgICAgICAgaml0
Q29kZSA9IG5ldyBEaXJlY3RKSVRDb2RlKGdldENvZGVSZWY8SlNFbnRyeVB0clRhZz4obGxpbnRf
ZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZSksIGdldENvZGVQdHI8SlNFbnRyeVB0clRh
Zz4obGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjayksIEpJVENvZGU6Oklu
dGVycHJldGVyVGh1bmspOworICAgICAgICAgICAgaml0Q29kZSA9IG5ldyBEaXJlY3RKSVRDb2Rl
KGdldENvZGVSZWY8SlNFbnRyeVB0clRhZz4obGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9w
cm9sb2d1ZSksIGdldENvZGVQdHI8SlNFbnRyeVB0clRhZz4obGxpbnRfZnVuY3Rpb25fZm9yX2Nv
bnN0cnVjdF9hcml0eV9jaGVjayksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmssIEpJVENvZGU6
OlNoYXJlQXR0cmlidXRlOjpTaGFyZWQpOwogICAgICAgICB9KTsKICAgICAgICAgY29kZUJsb2Nr
LT5zZXRKSVRDb2RlKG1ha2VSZWYoKmppdENvZGUpKTsKICAgICB9CkBAIC04OSw3ICs4OSw3IEBA
IHN0YXRpYyB2b2lkIHNldEV2YWxFbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxv
Y2spCiAgICAgc3RhdGljIE5hdGl2ZUpJVENvZGUqIGppdENvZGU7CiAgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgWyZdIHsKLSAg
ICAgICAgaml0Q29kZSA9IG5ldyBOYXRpdmVKSVRDb2RlKGdldENvZGVSZWY8SlNFbnRyeVB0clRh
Zz4obGxpbnRfZXZhbF9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmssIE5vSW50
cmluc2ljKTsKKyAgICAgICAgaml0Q29kZSA9IG5ldyBOYXRpdmVKSVRDb2RlKGdldENvZGVSZWY8
SlNFbnRyeVB0clRhZz4obGxpbnRfZXZhbF9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVy
VGh1bmssIEludHJpbnNpYzo6Tm9JbnRyaW5zaWMsIEpJVENvZGU6OlNoYXJlQXR0cmlidXRlOjpT
aGFyZWQpOwogICAgIH0pOwogICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZShtYWtlUmVmKCpqaXRD
b2RlKSk7CiB9CkBAIC0xMDksNyArMTA5LDcgQEAgc3RhdGljIHZvaWQgc2V0UHJvZ3JhbUVudHJ5
cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICBzdGF0aWMgTmF0aXZlSklU
Q29kZSogaml0Q29kZTsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKICAgICBz
dGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbJl0gewotICAgICAgICBqaXRDb2RlID0gbmV3IE5hdGl2
ZUpJVENvZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9wcm9ncmFtX3Byb2xvZ3Vl
KSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaywgTm9JbnRyaW5zaWMpOworICAgICAgICBqaXRD
b2RlID0gbmV3IE5hdGl2ZUpJVENvZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9w
cm9ncmFtX3Byb2xvZ3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaywgSW50cmluc2ljOjpO
b0ludHJpbnNpYywgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGU6OlNoYXJlZCk7CiAgICAgfSk7CiAg
ICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1ha2VSZWYoKmppdENvZGUpKTsKIH0KQEAgLTEyOSw3
ICsxMjksNyBAQCBzdGF0aWMgdm9pZCBzZXRNb2R1bGVQcm9ncmFtRW50cnlwb2ludChWTSYgdm0s
IENvZGVCbG9jayogY29kZUJsb2NrKQogICAgIHN0YXRpYyBOYXRpdmVKSVRDb2RlKiBqaXRDb2Rl
OwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlS2V5OwogICAgIHN0ZDo6Y2FsbF9vbmNl
KG9uY2VLZXksIFsmXSB7Ci0gICAgICAgIGppdENvZGUgPSBuZXcgTmF0aXZlSklUQ29kZShnZXRD
b2RlUmVmPEpTRW50cnlQdHJUYWc+KGxsaW50X21vZHVsZV9wcm9ncmFtX3Byb2xvZ3VlKSwgSklU
Q29kZTo6SW50ZXJwcmV0ZXJUaHVuaywgTm9JbnRyaW5zaWMpOworICAgICAgICBqaXRDb2RlID0g
bmV3IE5hdGl2ZUpJVENvZGUoZ2V0Q29kZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9tb2R1bGVf
cHJvZ3JhbV9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmssIEludHJpbnNpYzo6
Tm9JbnRyaW5zaWMsIEpJVENvZGU6OlNoYXJlQXR0cmlidXRlOjpTaGFyZWQpOwogICAgIH0pOwog
ICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZShtYWtlUmVmKCpqaXRDb2RlKSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>