<?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>156890</bug_id>
          
          <creation_ts>2016-04-21 20:13:49 -0700</creation_ts>
          <short_desc>Drop [UsePointersEvenForNonNullableObjectArguments] from MutationObserver</short_desc>
          <delta_ts>2016-04-22 08:58:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1186095</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-21 20:13:49 -0700</bug_when>
    <thetext>Drop [UsePointersEvenForNonNullableObjectArguments] from MutationObserver</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186107</commentid>
    <comment_count>1</comment_count>
      <attachid>277005</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-21 21:18:21 -0700</bug_when>
    <thetext>Created attachment 277005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186121</commentid>
    <comment_count>2</comment_count>
      <attachid>277005</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-21 22:26:09 -0700</bug_when>
    <thetext>Comment on attachment 277005
Patch

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

&gt; Source/WebCore/bindings/js/JSMutationObserverCustom.cpp:58
&gt; +    Ref&lt;JSMutationCallback&gt; callback = JSMutationCallback::create(object, jsConstructor-&gt;globalObject());
&gt; +    JSObject* jsObserver = asObject(toJS(exec, jsConstructor-&gt;globalObject(), MutationObserver::create(WTFMove(callback))));

I would have used auto here or maybe even put everything on one line!

&gt; Source/WebCore/dom/ChildListMutationScope.cpp:133
&gt; +    Ref&lt;NodeList&gt; addedNodes = StaticNodeList::adopt(m_addedNodes);
&gt; +    Ref&lt;NodeList&gt; removedNodes = StaticNodeList::adopt(m_removedNodes);
&gt; +    Ref&lt;MutationRecord&gt; record = MutationRecord::createChildList(m_target, WTFMove(addedNodes), WTFMove(removedNodes), WTFMove(m_previousSibling), WTFMove(m_nextSibling));
&gt; +    m_observers-&gt;enqueueMutationRecord(WTFMove(record));

I would have used auto here more. Or not used local variables so much. Or some of each.

&gt; Source/WebCore/dom/MutationObserverInterestGroup.cpp:82
&gt; +        observer-&gt;enqueueMutationRecord(*mutationWithNullOldValue);

This should be mutationWithNullOldValue.releaseNonNull().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186249</commentid>
    <comment_count>3</comment_count>
      <attachid>277005</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-22 08:10:17 -0700</bug_when>
    <thetext>Comment on attachment 277005
Patch

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

&gt;&gt; Source/WebCore/dom/MutationObserverInterestGroup.cpp:82
&gt;&gt; +        observer-&gt;enqueueMutationRecord(*mutationWithNullOldValue);
&gt; 
&gt; This should be mutationWithNullOldValue.releaseNonNull().

I think this may change behavior since this is in a for loop and we check if mutationWithNullOldValue is null earlier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186250</commentid>
    <comment_count>4</comment_count>
      <attachid>277061</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-22 08:11:07 -0700</bug_when>
    <thetext>Created attachment 277061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186262</commentid>
    <comment_count>5</comment_count>
      <attachid>277061</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-22 08:58:50 -0700</bug_when>
    <thetext>Comment on attachment 277061
Patch

Clearing flags on attachment: 277061

Committed r199878: &lt;http://trac.webkit.org/changeset/199878&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186263</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-22 08:58:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277005</attachid>
            <date>2016-04-21 21:18:21 -0700</date>
            <delta_ts>2016-04-22 08:11:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156890-20160421211843.patch</filename>
            <type>text/plain</type>
            <size>21543</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzE5NGExODA5YmJjMGQ3
NTBjM2IyMjU0ZmRiYTEzNmFhYzBhOTcxZi4uZTUzYmNmOTkzOTkxZjM1ZjgwYjNiYWRjYmIyZGY2
YTNlYzlmZGQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTA0LTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBbVXNlUG9pbnRlcnNF
dmVuRm9yTm9uTnVsbGFibGVPYmplY3RBcmd1bWVudHNdIGZyb20gTXV0YXRpb25PYnNlcnZlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2ODkwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBbVXNl
UG9pbnRlcnNFdmVuRm9yTm9uTnVsbGFibGVPYmplY3RBcmd1bWVudHNdIGZyb20gTXV0YXRpb25P
YnNlcnZlcgorICAgICAgICBhbmQgY2xlYW4gdXAgLyBtb2Rlcm5pemUgdGhlIGNvZGUgYSBiaXQu
IFRoZXJlIGlzIG5vdCBzaWduaWZpY2FudCBXZWItCisgICAgICAgIGV4cG9zZWQgYmVoYXZpb3Ig
Y2hhbmdlIGV4Y2VwdCB0aGF0IE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSgpIG5vdyB0aHJvd3MK
KyAgICAgICAgYSBkaWZmZXJlbnQga2luZCBvZiBleGNlcHRpb24gKGEgVHlwZUVycm9yIGFzIHBl
ciBXZWIgSURMKSB3aGVuIHBhc3NlZCBpbgorICAgICAgICBhIG51bGwgTm9kZS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNN
dXRhdGlvbkNhbGxiYWNrOjpjYWxsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9u
Q2FsbGJhY2suaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNNdXRhdGlvbk9ic2VydmVyKToK
KyAgICAgICAgKiBjc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAg
ICAgKiBkb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
aGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQpOgorICAg
ICAgICAqIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyOjp0YWtlUmVjb3Jkcyk6CisgICAgICAgIChXZWJDb3Jl
OjpNdXRhdGlvbk9ic2VydmVyOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQpOgorICAgICAgICAoV2Vi
Q29yZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlcik6CisgICAgICAgIChXZWJDb3JlOjpNdXRh
dGlvbk9ic2VydmVyOjpkaXNjb25uZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTXV0YXRp
b25PYnNlcnZlci5oOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmlkbDoKKyAgICAg
ICAgKiBkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmVucXVldWVNdXRhdGlvblJlY29y
ZCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6CisgICAg
ICAgICogZG9tL011dGF0aW9uUmVjb3JkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9u
UmVjb3JkOjpjcmVhdGVDaGlsZExpc3QpOgorICAgICAgICAqIGRvbS9NdXRhdGlvblJlY29yZC5o
OgorCiAyMDE2LTA0LTIxICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCYWNrZHJvcCBGaWx0ZXIgc2hvdWxkIG5vdCBiZSB2aXNpYmxlIGlmIGVsZW1lbnQgaGFzIHZp
c2liaWxpdHk6aGlkZGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U011dGF0aW9uQ2FsbGJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRh
dGlvbkNhbGxiYWNrLmNwcAppbmRleCBlZmUzNWFhYTVhZGJkZTA3MGJkYTgyYjYwMzJlNjAxMWMy
NjFhNDQxLi5kMGE3YmIwOTcyNmNkZGYxN2FjOTM0NDRmNWNmODBjZDIxZDc1YjUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAKQEAg
LTUxLDcgKzUxLDcgQEAgSlNNdXRhdGlvbkNhbGxiYWNrOjp+SlNNdXRhdGlvbkNhbGxiYWNrKCkK
IHsKIH0KIAotdm9pZCBKU011dGF0aW9uQ2FsbGJhY2s6OmNhbGwoY29uc3QgVmVjdG9yPFJlZlB0
cjxNdXRhdGlvblJlY29yZD4+JiBtdXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVy
KQordm9pZCBKU011dGF0aW9uQ2FsbGJhY2s6OmNhbGwoY29uc3QgVmVjdG9yPFJlZjxNdXRhdGlv
blJlY29yZD4+JiBtdXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQogewogICAg
IGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaAppbmRleCA1N2U1OTQ5Njdl
YmFlNGRkNWRmNGU1YWM5YTY5YTgzZjY3OGZkNDYzLi41NDY3YWFhMWJhYTdhZTg5MDNhZmM3MmMy
YzcxMTA5MWJlYzYwZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U011dGF0aW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011
dGF0aW9uQ2FsbGJhY2suaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IH5KU011dGF0aW9uQ2FsbGJhY2soKTsKIAotICAgIHZvaWQgY2FsbChjb25zdCBWZWN0b3I8UmVm
UHRyPE11dGF0aW9uUmVjb3JkPj4mLCBNdXRhdGlvbk9ic2VydmVyKikgb3ZlcnJpZGU7CisgICAg
dm9pZCBjYWxsKGNvbnN0IFZlY3RvcjxSZWY8TXV0YXRpb25SZWNvcmQ+PiYsIE11dGF0aW9uT2Jz
ZXJ2ZXIqKSBvdmVycmlkZTsKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCmlu
ZGV4IGM3M2ZjYTMyYmU4YmY1MmNmNjA2NDRkMDIzMTdlM2Q4OGI3ZjE3ZjUuLjIzZDJjZDU0NTQz
YWI4ZGVmY2VjYjkwOWEwNjkwNjgyNWE3MjFiYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApAQCAtNTQsOCAr
NTQsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTTXV0YXRpb25P
YnNlcnZlcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhl
YywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJDYWxsYmFjayBhcmd1bWVudCBtdXN0IGJlIGEgZnVu
Y3Rpb24iKSk7CiAKICAgICBET01Db25zdHJ1Y3Rvck9iamVjdCoganNDb25zdHJ1Y3RvciA9IGpz
Q2FzdDxET01Db25zdHJ1Y3Rvck9iamVjdCo+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8
SlNNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjayA9IEpTTXV0YXRpb25DYWxsYmFjazo6Y3JlYXRl
KG9iamVjdCwganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCkpOwotICAgIEpTT2JqZWN0KiBq
c09ic2VydmVyID0gYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmpl
Y3QoKSwgTXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNrLnJlbGVhc2UoKSkpKTsKKyAg
ICBSZWY8SlNNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjayA9IEpTTXV0YXRpb25DYWxsYmFjazo6
Y3JlYXRlKG9iamVjdCwganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCkpOworICAgIEpTT2Jq
ZWN0KiBqc09ic2VydmVyID0gYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9i
YWxPYmplY3QoKSwgTXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKFdURk1vdmUoY2FsbGJhY2spKSkp
OwogICAgIFByaXZhdGVOYW1lIHByb3BlcnR5TmFtZTsKICAgICBqc09ic2VydmVyLT5wdXREaXJl
Y3QoanNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCktPnZtKCksIHByb3BlcnR5TmFtZSwgb2Jq
ZWN0KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzT2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcApp
bmRleCA4NjQxOGQ0NjFiMGUwZjU3NzEzODNiYjY3YmFiNGM5YzcwMTljOGNmLi44NzQzMjE0YzZj
NTczYThiNzYzNDY1YTE4ZGM4OWYxYWI3NDRhNzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtNzcsNyArNzcs
NyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKG1fbXV0YXRp
b24gJiYgc19zaG91bGREZWxpdmVyKQotICAgICAgICAgICAgbV9tdXRhdGlvblJlY2lwaWVudHMt
PmVucXVldWVNdXRhdGlvblJlY29yZChtX211dGF0aW9uKTsKKyAgICAgICAgICAgIG1fbXV0YXRp
b25SZWNpcGllbnRzLT5lbnF1ZXVlTXV0YXRpb25SZWNvcmQobV9tdXRhdGlvbi5yZWxlYXNlTm9u
TnVsbCgpKTsKIAogICAgICAgICBzX3Nob3VsZERlbGl2ZXIgPSBmYWxzZTsKICAgICAgICAgaWYg
KCFzX3Nob3VsZE5vdGlmeUluc3BlY3RvcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxk
TGlzdE11dGF0aW9uU2NvcGUuY3BwCmluZGV4IGY2ZGUzMTc5YTgyNzFhN2I3ZDEwMzgzODU0ZWI4
OTk2NzViNzliZDMuLmMyMjcyYTc1ZjMyMzZkZWZlNjgwMjAzYjY4ZWM3ZDMyNzRkMzRjOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAKQEAgLTEy
NywxMCArMTI3LDEwIEBAIHZvaWQgQ2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcjo6ZW5xdWV1
ZU11dGF0aW9uUmVjb3JkKCkKICAgICBBU1NFUlQoaGFzT2JzZXJ2ZXJzKCkpOwogICAgIEFTU0VS
VCghaXNFbXB0eSgpKTsKIAotICAgIFJlZlB0cjxOb2RlTGlzdD4gYWRkZWROb2RlcyA9IFN0YXRp
Y05vZGVMaXN0OjphZG9wdChtX2FkZGVkTm9kZXMpOwotICAgIFJlZlB0cjxOb2RlTGlzdD4gcmVt
b3ZlZE5vZGVzID0gU3RhdGljTm9kZUxpc3Q6OmFkb3B0KG1fcmVtb3ZlZE5vZGVzKTsKLSAgICBS
ZWZQdHI8TXV0YXRpb25SZWNvcmQ+IHJlY29yZCA9IE11dGF0aW9uUmVjb3JkOjpjcmVhdGVDaGls
ZExpc3QobV90YXJnZXQsIGFkZGVkTm9kZXMucmVsZWFzZSgpLCByZW1vdmVkTm9kZXMucmVsZWFz
ZSgpLCBtX3ByZXZpb3VzU2libGluZy5yZWxlYXNlKCksIG1fbmV4dFNpYmxpbmcucmVsZWFzZSgp
KTsKLSAgICBtX29ic2VydmVycy0+ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKHJlY29yZC5yZWxlYXNl
KCkpOworICAgIFJlZjxOb2RlTGlzdD4gYWRkZWROb2RlcyA9IFN0YXRpY05vZGVMaXN0OjphZG9w
dChtX2FkZGVkTm9kZXMpOworICAgIFJlZjxOb2RlTGlzdD4gcmVtb3ZlZE5vZGVzID0gU3RhdGlj
Tm9kZUxpc3Q6OmFkb3B0KG1fcmVtb3ZlZE5vZGVzKTsKKyAgICBSZWY8TXV0YXRpb25SZWNvcmQ+
IHJlY29yZCA9IE11dGF0aW9uUmVjb3JkOjpjcmVhdGVDaGlsZExpc3QobV90YXJnZXQsIFdURk1v
dmUoYWRkZWROb2RlcyksIFdURk1vdmUocmVtb3ZlZE5vZGVzKSwgV1RGTW92ZShtX3ByZXZpb3Vz
U2libGluZyksIFdURk1vdmUobV9uZXh0U2libGluZykpOworICAgIG1fb2JzZXJ2ZXJzLT5lbnF1
ZXVlTXV0YXRpb25SZWNvcmQoV1RGTW92ZShyZWNvcmQpKTsKICAgICBtX2xhc3RBZGRlZCA9IG51
bGxwdHI7CiAgICAgQVNTRVJUKGlzRW1wdHkoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
Q2FsbGJhY2suaAppbmRleCBlNjk4YTU5YzMxZWJkM2M4NDkwNmEyODNlYjY3MGIwZDE5OGI0NjJj
Li42MjBjMmZjZDlkNWU4OGMxNzY2YWUzYzI4MTU4ZGFkMjUwOTJlOGVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbkNhbGxiYWNrLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgTXV0YXRpb25D
YWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uQ2FsbGJhY2s+IHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5NdXRhdGlvbkNhbGxiYWNrKCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
Y2FsbChjb25zdCBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPj4mLCBNdXRhdGlvbk9ic2Vy
dmVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjYWxsKGNvbnN0IFZlY3RvcjxSZWY8TXV0YXRp
b25SZWNvcmQ+PiYsIE11dGF0aW9uT2JzZXJ2ZXIqKSA9IDA7CiAgICAgdmlydHVhbCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgPSAwOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4IGI1NGExOWZiOTgz
M2ViYWU3YWZjMjZiMDQzMmM4ZTExOTlhODM1NzQuLmE2OTBjZmFkZWY1NzM5MmVlMGM1NDIyYTRl
ZTUzNDAzMjY3YzRlZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAK
QEAgLTQ2LDE0ICs0NiwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyB1bnNpZ25l
ZCBzX29ic2VydmVyUHJpb3JpdHkgPSAwOwogCi1SZWY8TXV0YXRpb25PYnNlcnZlcj4gTXV0YXRp
b25PYnNlcnZlcjo6Y3JlYXRlKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2sp
CitSZWY8TXV0YXRpb25PYnNlcnZlcj4gTXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKFJlZjxNdXRh
dGlvbkNhbGxiYWNrPiYmIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTXV0YXRpb25PYnNlcnZlcihjYWxsYmFjaykpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE11dGF0aW9uT2JzZXJ2ZXIoV1RGTW92ZShjYWxsYmFj
aykpKTsKIH0KIAotTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25PYnNlcnZlcihQYXNzUmVmUHRy
PE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQotICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykK
K011dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIoUmVmPE11dGF0aW9uQ2FsbGJhY2s+
JiYgY2FsbGJhY2spCisgICAgOiBtX2NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQogICAgICwg
bV9wcmlvcml0eShzX29ic2VydmVyUHJpb3JpdHkrKykKIHsKIH0KQEAgLTcxLDEzICs3MSw4IEBA
IGJvb2wgTXV0YXRpb25PYnNlcnZlcjo6dmFsaWRhdGVPcHRpb25zKE11dGF0aW9uT2JzZXJ2ZXJP
cHRpb25zIG9wdGlvbnMpCiAgICAgICAgICYmICgob3B0aW9ucyAmIENoYXJhY3RlckRhdGEpIHx8
ICEob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpOwogfQogCi12b2lkIE11dGF0aW9u
T2JzZXJ2ZXI6Om9ic2VydmUoTm9kZSogbm9kZSwgY29uc3QgRGljdGlvbmFyeSYgb3B0aW9uc0Rp
Y3Rpb25hcnksIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBNdXRhdGlvbk9ic2VydmVyOjpvYnNl
cnZlKE5vZGUmIG5vZGUsIGNvbnN0IERpY3Rpb25hcnkmIG9wdGlvbnNEaWN0aW9uYXJ5LCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoIW5vZGUpIHsKLSAgICAgICAgZWMgPSBOT1RfRk9V
TkRfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgc3RhdGljIGNvbnN0IHN0cnVj
dCB7CiAgICAgICAgIGNvbnN0IGNoYXIqIG5hbWU7CiAgICAgICAgIE11dGF0aW9uT2JzZXJ2ZXJP
cHRpb25zIHZhbHVlOwpAQCAtMTA3LDE2ICsxMDIsMTYgQEAgdm9pZCBNdXRhdGlvbk9ic2VydmVy
OjpvYnNlcnZlKE5vZGUqIG5vZGUsIGNvbnN0IERpY3Rpb25hcnkmIG9wdGlvbnNEaWN0aW9uYXJ5
LAogICAgICAgICBvcHRpb25zIHw9IENoYXJhY3RlckRhdGE7CiAKICAgICBpZiAoIXZhbGlkYXRl
T3B0aW9ucyhvcHRpb25zKSkgewotICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIGVj
ID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbm9kZS0+cmVnaXN0
ZXJNdXRhdGlvbk9ic2VydmVyKHRoaXMsIG9wdGlvbnMsIGF0dHJpYnV0ZUZpbHRlcik7CisgICAg
bm9kZS5yZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIodGhpcywgb3B0aW9ucywgYXR0cmlidXRlRmls
dGVyKTsKIH0KIAotVmVjdG9yPFJlZlB0cjxNdXRhdGlvblJlY29yZD4+IE11dGF0aW9uT2JzZXJ2
ZXI6OnRha2VSZWNvcmRzKCkKK1ZlY3RvcjxSZWY8TXV0YXRpb25SZWNvcmQ+PiBNdXRhdGlvbk9i
c2VydmVyOjp0YWtlUmVjb3JkcygpCiB7Ci0gICAgVmVjdG9yPFJlZlB0cjxNdXRhdGlvblJlY29y
ZD4+IHJlY29yZHM7CisgICAgVmVjdG9yPFJlZjxNdXRhdGlvblJlY29yZD4+IHJlY29yZHM7CiAg
ICAgcmVjb3Jkcy5zd2FwKG1fcmVjb3Jkcyk7CiAgICAgcmV0dXJuIHJlY29yZHM7CiB9CkBAIC0x
ODksMTAgKzE4NCwxMCBAQCBzdGF0aWMgdm9pZCBxdWV1ZU11dGF0aW9uT2JzZXJ2ZXJDb21wb3Vu
ZE1pY3JvdGFzaygpCiAgICAgTWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpLmFwcGVu
ZChXVEZNb3ZlKG1pY3JvdGFzaykpOwogfQogCi12b2lkIE11dGF0aW9uT2JzZXJ2ZXI6OmVucXVl
dWVNdXRhdGlvblJlY29yZChQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBtdXRhdGlvbikKK3Zv
aWQgTXV0YXRpb25PYnNlcnZlcjo6ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFJlZjxNdXRhdGlvblJl
Y29yZD4mJiBtdXRhdGlvbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1f
cmVjb3Jkcy5hcHBlbmQobXV0YXRpb24pOworICAgIG1fcmVjb3Jkcy5hcHBlbmQoV1RGTW92ZSht
dXRhdGlvbikpOwogICAgIGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkuYWRkKHRoaXMpOwogCiAg
ICAgcXVldWVNdXRhdGlvbk9ic2VydmVyQ29tcG91bmRNaWNyb3Rhc2soKTsKQEAgLTIzNiw3ICsy
MzEsNyBAQCB2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXIoKQogICAgIGlmIChtX3JlY29y
ZHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBWZWN0b3I8UmVmUHRyPE11dGF0
aW9uUmVjb3JkPj4gcmVjb3JkczsKKyAgICBWZWN0b3I8UmVmPE11dGF0aW9uUmVjb3JkPj4gcmVj
b3JkczsKICAgICByZWNvcmRzLnN3YXAobV9yZWNvcmRzKTsKIAogICAgIG1fY2FsbGJhY2stPmNh
bGwocmVjb3JkcywgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25PYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaAppbmRl
eCAxZDhlMWJkYjQyNmQ2OWUyMWQ0NDc2NDQ3ZDY3MDA1ZTI2MTNkNzAxLi5kODRhYWY4MTIwYTk3
NjZhMDEyNGJjY2U2NjRmZDdkNjdiNjZhOWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVyLmgKQEAgLTczLDE2ICs3MywxNiBAQCBwdWJsaWM6CiAgICAgICAgIENoYXJhY3RlckRh
dGFPbGRWYWx1ZSA9IDEgPDwgNiwKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxNdXRhdGlvbk9i
c2VydmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPik7CisgICAgc3RhdGlj
IFJlZjxNdXRhdGlvbk9ic2VydmVyPiBjcmVhdGUoUmVmPE11dGF0aW9uQ2FsbGJhY2s+JiYpOwog
CiAgICAgfk11dGF0aW9uT2JzZXJ2ZXIoKTsKIAotICAgIHZvaWQgb2JzZXJ2ZShOb2RlKiwgY29u
c3QgRGljdGlvbmFyeSYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBWZWN0b3I8UmVmUHRyPE11dGF0
aW9uUmVjb3JkPj4gdGFrZVJlY29yZHMoKTsKKyAgICB2b2lkIG9ic2VydmUoTm9kZSYsIGNvbnN0
IERpY3Rpb25hcnkmLCBFeGNlcHRpb25Db2RlJik7CisgICAgVmVjdG9yPFJlZjxNdXRhdGlvblJl
Y29yZD4+IHRha2VSZWNvcmRzKCk7CiAgICAgdm9pZCBkaXNjb25uZWN0KCk7CiAgICAgdm9pZCBv
YnNlcnZhdGlvblN0YXJ0ZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiopOwogICAgIHZv
aWQgb2JzZXJ2YXRpb25FbmRlZChNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKik7Ci0gICAg
dm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4pOwor
ICAgIHZvaWQgZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFJlZjxNdXRhdGlvblJlY29yZD4mJik7CiAg
ICAgdm9pZCBzZXRIYXNUcmFuc2llbnRSZWdpc3RyYXRpb24oKTsKICAgICBib29sIGNhbkRlbGl2
ZXIoKTsKIApAQCAtOTEsMTQgKzkxLDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RydWN0
IE9ic2VydmVyTGVzc1RoYW47CiAKLSAgICBleHBsaWNpdCBNdXRhdGlvbk9ic2VydmVyKFBhc3NS
ZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4pOworICAgIGV4cGxpY2l0IE11dGF0aW9uT2JzZXJ2ZXIo
UmVmPE11dGF0aW9uQ2FsbGJhY2s+JiYpOwogICAgIHZvaWQgZGVsaXZlcigpOwogCiAgICAgc3Rh
dGljIHZvaWQgZGVsaXZlckFsbE11dGF0aW9ucygpOwogICAgIHN0YXRpYyBib29sIHZhbGlkYXRl
T3B0aW9ucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyk7CiAKLSAgICBSZWZQdHI8TXV0YXRpb25D
YWxsYmFjaz4gbV9jYWxsYmFjazsKLSAgICBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPj4g
bV9yZWNvcmRzOworICAgIFJlZjxNdXRhdGlvbkNhbGxiYWNrPiBtX2NhbGxiYWNrOworICAgIFZl
Y3RvcjxSZWY8TXV0YXRpb25SZWNvcmQ+PiBtX3JlY29yZHM7CiAgICAgSGFzaFNldDxNdXRhdGlv
bk9ic2VydmVyUmVnaXN0cmF0aW9uKj4gbV9yZWdpc3RyYXRpb25zOwogICAgIHVuc2lnbmVkIG1f
cHJpb3JpdHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsCmluZGV4
IDVhN2M3MWY3NGY3OThlZThhM2MxMzdmOGE2NDNmZDZhNTAzNGEyZDcuLjllZTk3OTJiM2FhZDgx
ZDEyMjViODhhMTBkN2EwNWVkYzQ1OTM4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NdXRhdGlvbk9ic2VydmVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlci5pZGwKQEAgLTMxLDcgKzMxLDYgQEAKIFsKICAgICBDdXN0b21Db25zdHJ1Y3RvcihN
dXRhdGlvbkNhbGxiYWNrIGNhbGxiYWNrKSwKICAgICBDdXN0b21Jc1JlYWNoYWJsZSwKLSAgICBV
c2VQb2ludGVyc0V2ZW5Gb3JOb25OdWxsYWJsZU9iamVjdEFyZ3VtZW50cywKICAgICBJbXBsZW1l
bnRhdGlvbkxhY2tzVlRhYmxlLAogXSBpbnRlcmZhY2UgTXV0YXRpb25PYnNlcnZlciB7CiAgICAg
W1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBvYnNlcnZlKE5vZGUgdGFyZ2V0LCBEaWN0aW9uYXJ5IG9w
dGlvbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJ
bnRlcmVzdEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50
ZXJlc3RHcm91cC5jcHAKaW5kZXggN2Y0YWRjNDE5NTdlZDkzNmZiMTYyZjI3NDVhNGYzNzNhMDU4
YTk2Yi4uZjZiNDJlNDQ5MGI5ZjMwYzRkMTI5NjI3NjRkOTY2MjZiMWRlYmQ1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3Bw
CkBAIC02NCwyMyArNjQsMjIgQEAgYm9vbCBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6
aXNPbGRWYWx1ZVJlcXVlc3RlZCgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIE11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0
cjxNdXRhdGlvblJlY29yZD4gcHJwTXV0YXRpb24pCit2b2lkIE11dGF0aW9uT2JzZXJ2ZXJJbnRl
cmVzdEdyb3VwOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQoUmVmPE11dGF0aW9uUmVjb3JkPiYmIG11
dGF0aW9uKQogewotICAgIFJlZlB0cjxNdXRhdGlvblJlY29yZD4gbXV0YXRpb24gPSBwcnBNdXRh
dGlvbjsKICAgICBSZWZQdHI8TXV0YXRpb25SZWNvcmQ+IG11dGF0aW9uV2l0aE51bGxPbGRWYWx1
ZTsKICAgICBmb3IgKGF1dG8mIG9ic2VydmVyT3B0aW9uc1BhaXIgOiBtX29ic2VydmVycykgewog
ICAgICAgICBNdXRhdGlvbk9ic2VydmVyKiBvYnNlcnZlciA9IG9ic2VydmVyT3B0aW9uc1BhaXIu
a2V5OwogICAgICAgICBpZiAoaGFzT2xkVmFsdWUob2JzZXJ2ZXJPcHRpb25zUGFpci52YWx1ZSkp
IHsKLSAgICAgICAgICAgIG9ic2VydmVyLT5lbnF1ZXVlTXV0YXRpb25SZWNvcmQobXV0YXRpb24p
OworICAgICAgICAgICAgb2JzZXJ2ZXItPmVucXVldWVNdXRhdGlvblJlY29yZChtdXRhdGlvbi5j
b3B5UmVmKCkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgaWYg
KCFtdXRhdGlvbldpdGhOdWxsT2xkVmFsdWUpIHsKICAgICAgICAgICAgIGlmIChtdXRhdGlvbi0+
b2xkVmFsdWUoKS5pc051bGwoKSkKLSAgICAgICAgICAgICAgICBtdXRhdGlvbldpdGhOdWxsT2xk
VmFsdWUgPSBtdXRhdGlvbjsKKyAgICAgICAgICAgICAgICBtdXRhdGlvbldpdGhOdWxsT2xkVmFs
dWUgPSBtdXRhdGlvbi5wdHIoKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBt
dXRhdGlvbldpdGhOdWxsT2xkVmFsdWUgPSBNdXRhdGlvblJlY29yZDo6Y3JlYXRlV2l0aE51bGxP
bGRWYWx1ZSgqbXV0YXRpb24pLnB0cigpOworICAgICAgICAgICAgICAgIG11dGF0aW9uV2l0aE51
bGxPbGRWYWx1ZSA9IE11dGF0aW9uUmVjb3JkOjpjcmVhdGVXaXRoTnVsbE9sZFZhbHVlKG11dGF0
aW9uKS5wdHIoKTsKICAgICAgICAgfQotICAgICAgICBvYnNlcnZlci0+ZW5xdWV1ZU11dGF0aW9u
UmVjb3JkKG11dGF0aW9uV2l0aE51bGxPbGRWYWx1ZSk7CisgICAgICAgIG9ic2VydmVyLT5lbnF1
ZXVlTXV0YXRpb25SZWNvcmQoKm11dGF0aW9uV2l0aE51bGxPbGRWYWx1ZSk7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91
cC5oCmluZGV4IDJmNzczYmNhNjI2YjgxNzllN2RjZjM1YmQ1ODlmNTQ0MzQ0Zjk4ODkuLjA1NTk3
MWU4Y2E4NjM5YWY1NDZiZjU1NDI0MTNkM2IwZmRiODYxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oCkBAIC03MCw3ICs3MCw3
IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBib29sIGlzT2xkVmFsdWVSZXF1ZXN0ZWQoKTsKLSAg
ICB2b2lkIGVucXVldWVNdXRhdGlvblJlY29yZChQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPik7
CisgICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNvcmQoUmVmPE11dGF0aW9uUmVjb3JkPiYmKTsK
IAogcHJpdmF0ZToKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJ
bnRlcmVzdEdyb3VwPiBjcmVhdGVJZk5lZWRlZChOb2RlJiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2
ZXI6Ok11dGF0aW9uVHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVG
bGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lID0gbnVsbHB0cik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcAppbmRleCA5ZGZkZTNlYzM3OWIwZmE0MGViYjQ3
MWIxZTQ5Yzg0ZjRkYTc2YzU3Li40MDI2ODZlNzA5MzczYzg4NzMyODVjMGRmOGMxZTFkNWJmMGJl
MWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAKQEAgLTQyLDEyICs0Miwx
MiBAQCBuYW1lc3BhY2UgewogCiBjbGFzcyBDaGlsZExpc3RSZWNvcmQgOiBwdWJsaWMgTXV0YXRp
b25SZWNvcmQgewogcHVibGljOgotICAgIENoaWxkTGlzdFJlY29yZChDb250YWluZXJOb2RlJiB0
YXJnZXQsIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGFkZGVkLCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBy
ZW1vdmVkLCBQYXNzUmVmUHRyPE5vZGU+IHByZXZpb3VzU2libGluZywgUGFzc1JlZlB0cjxOb2Rl
PiBuZXh0U2libGluZykKKyAgICBDaGlsZExpc3RSZWNvcmQoQ29udGFpbmVyTm9kZSYgdGFyZ2V0
LCBSZWY8Tm9kZUxpc3Q+JiYgYWRkZWQsIFJlZjxOb2RlTGlzdD4mJiByZW1vdmVkLCBSZWZQdHI8
Tm9kZT4mJiBwcmV2aW91c1NpYmxpbmcsIFJlZlB0cjxOb2RlPiYmIG5leHRTaWJsaW5nKQogICAg
ICAgICA6IG1fdGFyZ2V0KHRhcmdldCkKLSAgICAgICAgLCBtX2FkZGVkTm9kZXMoYWRkZWQpCi0g
ICAgICAgICwgbV9yZW1vdmVkTm9kZXMocmVtb3ZlZCkKLSAgICAgICAgLCBtX3ByZXZpb3VzU2li
bGluZyhwcmV2aW91c1NpYmxpbmcpCi0gICAgICAgICwgbV9uZXh0U2libGluZyhuZXh0U2libGlu
ZykKKyAgICAgICAgLCBtX2FkZGVkTm9kZXMoV1RGTW92ZShhZGRlZCkpCisgICAgICAgICwgbV9y
ZW1vdmVkTm9kZXMoV1RGTW92ZShyZW1vdmVkKSkKKyAgICAgICAgLCBtX3ByZXZpb3VzU2libGlu
ZyhXVEZNb3ZlKHByZXZpb3VzU2libGluZykpCisgICAgICAgICwgbV9uZXh0U2libGluZyhXVEZN
b3ZlKG5leHRTaWJsaW5nKSkKICAgICB7CiAgICAgfQogCkBAIC0xNjQsOSArMTY0LDkgQEAgY29u
c3QgQXRvbWljU3RyaW5nJiBDaGFyYWN0ZXJEYXRhUmVjb3JkOjp0eXBlKCkKIAogfSAvLyBuYW1l
c3BhY2UKIAotUmVmPE11dGF0aW9uUmVjb3JkPiBNdXRhdGlvblJlY29yZDo6Y3JlYXRlQ2hpbGRM
aXN0KENvbnRhaW5lck5vZGUmIHRhcmdldCwgUGFzc1JlZlB0cjxOb2RlTGlzdD4gYWRkZWQsIFBh
c3NSZWZQdHI8Tm9kZUxpc3Q+IHJlbW92ZWQsIFBhc3NSZWZQdHI8Tm9kZT4gcHJldmlvdXNTaWJs
aW5nLCBQYXNzUmVmUHRyPE5vZGU+IG5leHRTaWJsaW5nKQorUmVmPE11dGF0aW9uUmVjb3JkPiBN
dXRhdGlvblJlY29yZDo6Y3JlYXRlQ2hpbGRMaXN0KENvbnRhaW5lck5vZGUmIHRhcmdldCwgUmVm
PE5vZGVMaXN0PiYmIGFkZGVkLCBSZWY8Tm9kZUxpc3Q+JiYgcmVtb3ZlZCwgUmVmUHRyPE5vZGU+
JiYgcHJldmlvdXNTaWJsaW5nLCBSZWZQdHI8Tm9kZT4mJiBuZXh0U2libGluZykKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoc3RhdGljX2Nhc3Q8TXV0YXRpb25SZWNvcmQmPigqbmV3IENoaWxkTGlz
dFJlY29yZCh0YXJnZXQsIGFkZGVkLCByZW1vdmVkLCBwcmV2aW91c1NpYmxpbmcsIG5leHRTaWJs
aW5nKSkpOworICAgIHJldHVybiBhZG9wdFJlZihzdGF0aWNfY2FzdDxNdXRhdGlvblJlY29yZCY+
KCpuZXcgQ2hpbGRMaXN0UmVjb3JkKHRhcmdldCwgV1RGTW92ZShhZGRlZCksIFdURk1vdmUocmVt
b3ZlZCksIFdURk1vdmUocHJldmlvdXNTaWJsaW5nKSwgV1RGTW92ZShuZXh0U2libGluZykpKSk7
CiB9CiAKIFJlZjxNdXRhdGlvblJlY29yZD4gTXV0YXRpb25SZWNvcmQ6OmNyZWF0ZUF0dHJpYnV0
ZXMoRWxlbWVudCYgdGFyZ2V0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
aWNTdHJpbmcmIG9sZFZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uUmVjb3JkLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuaAppbmRleCAx
NzA5YWI2MDJkODFkYjBkY2FjMWZkOGQyZTE5ZWQzNjJiYjRjODg5Li4zNjgzNTE5MmQxZmRkZWZi
NGU3NTdjNWZkNmQ0MmE1ZmZkNWRhMjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25SZWNvcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQu
aApAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBRdWFsaWZpZWROYW1lOwogCiBjbGFzcyBNdXRhdGlv
blJlY29yZCA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uUmVjb3JkPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxNdXRhdGlvblJlY29yZD4gY3JlYXRlQ2hpbGRMaXN0KENvbnRhaW5lck5v
ZGUmIHRhcmdldCwgUGFzc1JlZlB0cjxOb2RlTGlzdD4gYWRkZWQsIFBhc3NSZWZQdHI8Tm9kZUxp
c3Q+IHJlbW92ZWQsIFBhc3NSZWZQdHI8Tm9kZT4gcHJldmlvdXNTaWJsaW5nLCBQYXNzUmVmUHRy
PE5vZGU+IG5leHRTaWJsaW5nKTsKKyAgICBzdGF0aWMgUmVmPE11dGF0aW9uUmVjb3JkPiBjcmVh
dGVDaGlsZExpc3QoQ29udGFpbmVyTm9kZSYgdGFyZ2V0LCBSZWY8Tm9kZUxpc3Q+JiYgYWRkZWQs
IFJlZjxOb2RlTGlzdD4mJiByZW1vdmVkLCBSZWZQdHI8Tm9kZT4mJiBwcmV2aW91c1NpYmxpbmcs
IFJlZlB0cjxOb2RlPiYmIG5leHRTaWJsaW5nKTsKICAgICBzdGF0aWMgUmVmPE11dGF0aW9uUmVj
b3JkPiBjcmVhdGVBdHRyaWJ1dGVzKEVsZW1lbnQmIHRhcmdldCwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkVmFsdWUpOwogICAgIHN0YXRpYyBSZWY8TXV0YXRp
b25SZWNvcmQ+IGNyZWF0ZUNoYXJhY3RlckRhdGEoQ2hhcmFjdGVyRGF0YSYgdGFyZ2V0LCBjb25z
dCBTdHJpbmcmIG9sZFZhbHVlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcyYTQxNGRkMTA4YjM1YTAzMWU4ZjIyMGMz
Y2QwMDAwYzAyNGIyMjIuLjBiMzRhNWJjNWEyY2U4NGEyYmVjZDEyOTY1NGVhMTNmMjlhYTM5NzUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0wNC0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIERyb3AgW1VzZVBvaW50ZXJzRXZlbkZvck5vbk51bGxhYmxl
T2JqZWN0QXJndW1lbnRzXSBmcm9tIE11dGF0aW9uT2JzZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njg5MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgbm93IHRoYXQgTXV0YXRp
b25PYnNlcnZlci5vYnNlcnZlKCkgdGhyb3dzIGEgVHlwZUVycm9yIGluc3RlYWQKKyAgICAgICAg
b2YgYSBOT1RfRk9VTkRfRVJSIHdoZW4gcGFzc2VkIGEgbnVsbCBOb2RlLgorCisgICAgICAgICog
ZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9vYnNlcnZlLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0
OgorCiAyMDE2LTA0LTIxICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCYWNrZHJvcCBGaWx0ZXIgc2hvdWxkIG5vdCBiZSB2aXNpYmxlIGlmIGVsZW1lbnQgaGFzIHZp
c2liaWxpdHk6aGlkZGVuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlv
bk9ic2VydmVyL29ic2VydmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL29ic2VydmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQK
aW5kZXggMmY2YmI0ZjVjNDg1ZmJkMThiYzE5NWU4NjA4ZmExZTlkYWYwNTVhMS4uNTFlYjQ2MDc1
ZDAwMTQ4NWI0YWYwNzM1Y2RmMTZkZWI3ZTc3Nzk3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9vYnNlcnZlLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvb2JzZXJ2ZS1leGNl
cHRpb25zLWV4cGVjdGVkLnR4dApAQCAtNywxNyArNywxNyBAQCBQQVNTIG9ic2VydmVyLm9ic2Vy
dmUoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBB
U1Mgb2JzZXJ2ZXIub2JzZXJ2ZShudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1Mgb2JzZXJ2ZXIub2JzZXJ2ZSh1bmRlZmluZWQpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyBvYnNlcnZl
ci5vYnNlcnZlKGRvY3VtZW50LmJvZHkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBl
bm91Z2ggYXJndW1lbnRzLgotUEFTUyBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIG51
bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIu
Ci1QQVNTIG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgdW5kZWZpbmVkKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgotUEFTUyBvYnNl
cnZlci5vYnNlcnZlKG51bGwsIHthdHRyaWJ1dGVzOiB0cnVlfSkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDguCi1QQVNTIG9ic2VydmVyLm9ic2Vy
dmUodW5kZWZpbmVkLCB7YXR0cmlidXRlczogdHJ1ZX0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
Tm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4LgotUEFTUyBvYnNlcnZlci5vYnNlcnZlKGRv
Y3VtZW50LmJvZHksIHtzdWJ0cmVlOiB0cnVlfSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50
YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1Mgb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVu
dC5ib2R5LCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFT
UyBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mgb2JzZXJ2ZXIub2JzZXJ2ZShudWxsLCB7
YXR0cmlidXRlczogdHJ1ZX0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CitQQVNTIG9ic2VydmVyLm9ic2VydmUodW5kZWZpbmVkLCB7YXR0cmlidXRlczogdHJ1ZX0pIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG9ic2VydmVyLm9ic2Vy
dmUoZG9jdW1lbnQuYm9keSwge3N1YnRyZWU6IHRydWV9KSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgogUEFTUyBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtj
aGlsZExpc3Q6IHRydWUsIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlfSkgZGlkIG5vdCB0aHJvdyBl
eGNlcHRpb24uCiBQQVNTIG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwge2F0dHJpYnV0
ZXM6IHRydWUsIGNoYXJhY3RlckRhdGFPbGRWYWx1ZTogdHJ1ZX0pIGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgogUEFTUyBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtjaGFyYWN0ZXJE
YXRhOiB0cnVlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsiaWQiXX0pIGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgotUEFTUyBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHthdHRyaWJ1dGVzOiBm
YWxzZSwgYXR0cmlidXRlT2xkVmFsdWU6IHRydWV9KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5
bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgotUEFTUyBvYnNlcnZlci5vYnNlcnZlKGRvY3Vt
ZW50LmJvZHksIHthdHRyaWJ1dGVzOiBmYWxzZSwgYXR0cmlidXRlRmlsdGVyOiBbImlkIl19KSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgotUEFT
UyBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtjaGFyYWN0ZXJEYXRhOiBmYWxzZSwg
Y2hhcmFjdGVyRGF0YU9sZFZhbHVlOiB0cnVlfSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50
YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1Mgb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVu
dC5ib2R5LCB7YXR0cmlidXRlczogZmFsc2UsIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlfSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mgb2JzZXJ2ZXIub2JzZXJ2
ZShkb2N1bWVudC5ib2R5LCB7YXR0cmlidXRlczogZmFsc2UsIGF0dHJpYnV0ZUZpbHRlcjogWyJp
ZCJdfSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mgb2JzZXJ2
ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7Y2hhcmFjdGVyRGF0YTogZmFsc2UsIGNoYXJhY3Rl
ckRhdGFPbGRWYWx1ZTogdHJ1ZX0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277061</attachid>
            <date>2016-04-22 08:11:07 -0700</date>
            <delta_ts>2016-04-22 08:58:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156890-20160422081130.patch</filename>
            <type>text/plain</type>
            <size>21383</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5ODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWMyODY5M2M5YjI0OGQw
ZjFkNTk3NTM2YWIyODA4YWU2OThhOGZmMi4uZjE2OGM4YjBiMDRlZmY3ZWZjN2NkMDlkN2NmNTVj
OTFkMjUzZWIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTA0LTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBbVXNlUG9pbnRlcnNF
dmVuRm9yTm9uTnVsbGFibGVPYmplY3RBcmd1bWVudHNdIGZyb20gTXV0YXRpb25PYnNlcnZlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2ODkwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgRHJvcCBbVXNlUG9p
bnRlcnNFdmVuRm9yTm9uTnVsbGFibGVPYmplY3RBcmd1bWVudHNdIGZyb20gTXV0YXRpb25PYnNl
cnZlcgorICAgICAgICBhbmQgY2xlYW4gdXAgLyBtb2Rlcm5pemUgdGhlIGNvZGUgYSBiaXQuIFRo
ZXJlIGlzIG5vdCBzaWduaWZpY2FudCBXZWItCisgICAgICAgIGV4cG9zZWQgYmVoYXZpb3IgY2hh
bmdlIGV4Y2VwdCB0aGF0IE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSgpIG5vdyB0aHJvd3MKKyAg
ICAgICAgYSBkaWZmZXJlbnQga2luZCBvZiBleGNlcHRpb24gKGEgVHlwZUVycm9yIGFzIHBlciBX
ZWIgSURMKSB3aGVuIHBhc3NlZCBpbgorICAgICAgICBhIG51bGwgTm9kZS4KKworICAgICAgICBO
byBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRh
dGlvbkNhbGxiYWNrOjpjYWxsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2Fs
bGJhY2suaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNNdXRhdGlvbk9ic2VydmVyKToKKyAg
ICAgICAgKiBjc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAg
KiBkb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGls
ZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQpOgorICAgICAg
ICAqIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uT2JzZXJ2ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNdXRhdGlvbk9ic2VydmVyOjp0YWtlUmVjb3Jkcyk6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVyOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlcik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlv
bk9ic2VydmVyOjpkaXNjb25uZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTXV0YXRpb25P
YnNlcnZlci5oOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmlkbDoKKyAgICAgICAg
KiBkb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmVucXVldWVNdXRhdGlvblJlY29yZCk6
CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6CisgICAgICAg
ICogZG9tL011dGF0aW9uUmVjb3JkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVj
b3JkOjpjcmVhdGVDaGlsZExpc3QpOgorICAgICAgICAqIGRvbS9NdXRhdGlvblJlY29yZC5oOgor
CiAyMDE2LTA0LTIyICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtjc3MtZ3JpZF0gRml4IGJ1ZyB3aXRoIHBvc2l0aW9uZWQgaXRlbXMgaW4gdmVy
dGljYWwgd3JpdGluZyBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU011dGF0aW9uQ2FsbGJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNN
dXRhdGlvbkNhbGxiYWNrLmNwcAppbmRleCBlZmUzNWFhYTVhZGJkZTA3MGJkYTgyYjYwMzJlNjAx
MWMyNjFhNDQxLi5kMGE3YmIwOTcyNmNkZGYxN2FjOTM0NDRmNWNmODBjZDIxZDc1YjUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAK
QEAgLTUxLDcgKzUxLDcgQEAgSlNNdXRhdGlvbkNhbGxiYWNrOjp+SlNNdXRhdGlvbkNhbGxiYWNr
KCkKIHsKIH0KIAotdm9pZCBKU011dGF0aW9uQ2FsbGJhY2s6OmNhbGwoY29uc3QgVmVjdG9yPFJl
ZlB0cjxNdXRhdGlvblJlY29yZD4+JiBtdXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2Vy
dmVyKQordm9pZCBKU011dGF0aW9uQ2FsbGJhY2s6OmNhbGwoY29uc3QgVmVjdG9yPFJlZjxNdXRh
dGlvblJlY29yZD4+JiBtdXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQogewog
ICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaAppbmRleCA1N2U1OTQ5
NjdlYmFlNGRkNWRmNGU1YWM5YTY5YTgzZjY3OGZkNDYzLi41NDY3YWFhMWJhYTdhZTg5MDNhZmM3
MmMyYzcxMTA5MWJlYzYwZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU011dGF0aW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U011dGF0aW9uQ2FsbGJhY2suaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIH5KU011dGF0aW9uQ2FsbGJhY2soKTsKIAotICAgIHZvaWQgY2FsbChjb25zdCBWZWN0b3I8
UmVmUHRyPE11dGF0aW9uUmVjb3JkPj4mLCBNdXRhdGlvbk9ic2VydmVyKikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBjYWxsKGNvbnN0IFZlY3RvcjxSZWY8TXV0YXRpb25SZWNvcmQ+PiYsIE11dGF0aW9u
T2JzZXJ2ZXIqKSBvdmVycmlkZTsKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
CmluZGV4IGM3M2ZjYTMyYmU4YmY1MmNmNjA2NDRkMDIzMTdlM2Q4OGI3ZjE3ZjUuLjZlMjRmMjRm
MWNjMDQwZGQzYmNlZDYyZTE0ZmI2YjZkYzFhODNmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApAQCAtNTQs
OCArNTQsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTTXV0YXRp
b25PYnNlcnZlcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Io
ZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJDYWxsYmFjayBhcmd1bWVudCBtdXN0IGJlIGEg
ZnVuY3Rpb24iKSk7CiAKICAgICBET01Db25zdHJ1Y3Rvck9iamVjdCoganNDb25zdHJ1Y3RvciA9
IGpzQ2FzdDxET01Db25zdHJ1Y3Rvck9iamVjdCo+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQ
dHI8SlNNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjayA9IEpTTXV0YXRpb25DYWxsYmFjazo6Y3Jl
YXRlKG9iamVjdCwganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCkpOwotICAgIEpTT2JqZWN0
KiBqc09ic2VydmVyID0gYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxP
YmplY3QoKSwgTXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKGNhbGxiYWNrLnJlbGVhc2UoKSkpKTsK
KyAgICBhdXRvIGNhbGxiYWNrID0gSlNNdXRhdGlvbkNhbGxiYWNrOjpjcmVhdGUob2JqZWN0LCBq
c0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSk7CisgICAgSlNPYmplY3QqIGpzT2JzZXJ2ZXIg
PSBhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBNdXRh
dGlvbk9ic2VydmVyOjpjcmVhdGUoV1RGTW92ZShjYWxsYmFjaykpKSk7CiAgICAgUHJpdmF0ZU5h
bWUgcHJvcGVydHlOYW1lOwogICAgIGpzT2JzZXJ2ZXItPnB1dERpcmVjdChqc0NvbnN0cnVjdG9y
LT5nbG9iYWxPYmplY3QoKS0+dm0oKSwgcHJvcGVydHlOYW1lLCBvYmplY3QpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNPYnNlcnZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDg2NDE4ZDQ2MWIw
ZTBmNTc3MTM4M2JiNjdiYWI0YzljNzAxOWM4Y2YuLjg3NDMyMTRjNmM1NzNhOGI3NjM0NjVhMThk
Yzg5ZjFhYjc0NGE3NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNl
dENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0
eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAobV9tdXRhdGlvbiAmJiBzX3Nob3VsZERl
bGl2ZXIpCi0gICAgICAgICAgICBtX211dGF0aW9uUmVjaXBpZW50cy0+ZW5xdWV1ZU11dGF0aW9u
UmVjb3JkKG1fbXV0YXRpb24pOworICAgICAgICAgICAgbV9tdXRhdGlvblJlY2lwaWVudHMtPmVu
cXVldWVNdXRhdGlvblJlY29yZChtX211dGF0aW9uLnJlbGVhc2VOb25OdWxsKCkpOwogCiAgICAg
ICAgIHNfc2hvdWxkRGVsaXZlciA9IGZhbHNlOwogICAgICAgICBpZiAoIXNfc2hvdWxkTm90aWZ5
SW5zcGVjdG9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0
YXRpb25TY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29w
ZS5jcHAKaW5kZXggZjZkZTMxNzlhODI3MWE3YjdkMTAzODM4NTRlYjg5OTY3NWI3OWJkMy4uZWFk
Y2RkMDk4ZThlYjJkMjAyZDYyYzljMzgwODViMGNkMjZhYzhjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcApAQCAtMTI3LDEwICsxMjcsOCBAQCB2
b2lkIENoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3I6OmVucXVldWVNdXRhdGlvblJlY29yZCgp
CiAgICAgQVNTRVJUKGhhc09ic2VydmVycygpKTsKICAgICBBU1NFUlQoIWlzRW1wdHkoKSk7CiAK
LSAgICBSZWZQdHI8Tm9kZUxpc3Q+IGFkZGVkTm9kZXMgPSBTdGF0aWNOb2RlTGlzdDo6YWRvcHQo
bV9hZGRlZE5vZGVzKTsKLSAgICBSZWZQdHI8Tm9kZUxpc3Q+IHJlbW92ZWROb2RlcyA9IFN0YXRp
Y05vZGVMaXN0OjphZG9wdChtX3JlbW92ZWROb2Rlcyk7Ci0gICAgUmVmUHRyPE11dGF0aW9uUmVj
b3JkPiByZWNvcmQgPSBNdXRhdGlvblJlY29yZDo6Y3JlYXRlQ2hpbGRMaXN0KG1fdGFyZ2V0LCBh
ZGRlZE5vZGVzLnJlbGVhc2UoKSwgcmVtb3ZlZE5vZGVzLnJlbGVhc2UoKSwgbV9wcmV2aW91c1Np
YmxpbmcucmVsZWFzZSgpLCBtX25leHRTaWJsaW5nLnJlbGVhc2UoKSk7Ci0gICAgbV9vYnNlcnZl
cnMtPmVucXVldWVNdXRhdGlvblJlY29yZChyZWNvcmQucmVsZWFzZSgpKTsKKyAgICBhdXRvIHJl
Y29yZCA9IE11dGF0aW9uUmVjb3JkOjpjcmVhdGVDaGlsZExpc3QobV90YXJnZXQsIFN0YXRpY05v
ZGVMaXN0OjphZG9wdChtX2FkZGVkTm9kZXMpLCBTdGF0aWNOb2RlTGlzdDo6YWRvcHQobV9yZW1v
dmVkTm9kZXMpLCBXVEZNb3ZlKG1fcHJldmlvdXNTaWJsaW5nKSwgV1RGTW92ZShtX25leHRTaWJs
aW5nKSk7CisgICAgbV9vYnNlcnZlcnMtPmVucXVldWVNdXRhdGlvblJlY29yZChXVEZNb3ZlKHJl
Y29yZCkpOwogICAgIG1fbGFzdEFkZGVkID0gbnVsbHB0cjsKICAgICBBU1NFUlQoaXNFbXB0eSgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oCmluZGV4IGU2OThhNTljMzFl
YmQzYzg0OTA2YTI4M2ViNjcwYjBkMTk4YjQ2MmMuLjYyMGMyZmNkOWQ1ZTg4YzE3NjZhZTNjMjgx
NThkYWQyNTA5MmU4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNh
bGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaApAQCAt
NDQsNyArNDQsNyBAQCBjbGFzcyBNdXRhdGlvbkNhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8
TXV0YXRpb25DYWxsYmFjaz4gewogcHVibGljOgogICAgIHZpcnR1YWwgfk11dGF0aW9uQ2FsbGJh
Y2soKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBjYWxsKGNvbnN0IFZlY3RvcjxSZWZQdHI8TXV0
YXRpb25SZWNvcmQ+PiYsIE11dGF0aW9uT2JzZXJ2ZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGNhbGwoY29uc3QgVmVjdG9yPFJlZjxNdXRhdGlvblJlY29yZD4+JiwgTXV0YXRpb25PYnNlcnZl
ciopID0gMDsKICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSBjb25zdCA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlci5jcHAKaW5kZXggYjU0YTE5ZmI5ODMzZWJhZTdhZmMyNmIwNDMyYzhlMTE5OWE4MzU3
NC4uYTY5MGNmYWRlZjU3MzkyZWUwYzU0MjJhNGVlNTM0MDMyNjdjNGVlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApAQCAtNDYsMTQgKzQ2LDE0IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RhdGljIHVuc2lnbmVkIHNfb2JzZXJ2ZXJQcmlvcml0eSA9IDA7CiAK
LVJlZjxNdXRhdGlvbk9ic2VydmVyPiBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoUGFzc1JlZlB0
cjxNdXRhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaykKK1JlZjxNdXRhdGlvbk9ic2VydmVyPiBNdXRh
dGlvbk9ic2VydmVyOjpjcmVhdGUoUmVmPE11dGF0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBN
dXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTXV0
YXRpb25PYnNlcnZlcihXVEZNb3ZlKGNhbGxiYWNrKSkpOwogfQogCi1NdXRhdGlvbk9ic2VydmVy
OjpNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2sp
Ci0gICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKQorTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25P
YnNlcnZlcihSZWY8TXV0YXRpb25DYWxsYmFjaz4mJiBjYWxsYmFjaykKKyAgICA6IG1fY2FsbGJh
Y2soV1RGTW92ZShjYWxsYmFjaykpCiAgICAgLCBtX3ByaW9yaXR5KHNfb2JzZXJ2ZXJQcmlvcml0
eSsrKQogewogfQpAQCAtNzEsMTMgKzcxLDggQEAgYm9vbCBNdXRhdGlvbk9ic2VydmVyOjp2YWxp
ZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucykKICAgICAgICAgJiYg
KChvcHRpb25zICYgQ2hhcmFjdGVyRGF0YSkgfHwgIShvcHRpb25zICYgQ2hhcmFjdGVyRGF0YU9s
ZFZhbHVlKSk7CiB9CiAKLXZvaWQgTXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShOb2RlKiBub2Rl
LCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zRGljdGlvbmFyeSwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUoTm9kZSYgbm9kZSwgY29uc3QgRGljdGlv
bmFyeSYgb3B0aW9uc0RpY3Rpb25hcnksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGlmICgh
bm9kZSkgewotICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KICAgICBzdGF0aWMgY29uc3Qgc3RydWN0IHsKICAgICAgICAgY29uc3QgY2hhciogbmFt
ZTsKICAgICAgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgdmFsdWU7CkBAIC0xMDcsMTYgKzEw
MiwxNiBAQCB2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUoTm9kZSogbm9kZSwgY29uc3Qg
RGljdGlvbmFyeSYgb3B0aW9uc0RpY3Rpb25hcnksCiAgICAgICAgIG9wdGlvbnMgfD0gQ2hhcmFj
dGVyRGF0YTsKIAogICAgIGlmICghdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpKSB7Ci0gICAgICAg
IGVjID0gU1lOVEFYX0VSUjsKKyAgICAgICAgZWMgPSBUeXBlRXJyb3I7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBub2RlLT5yZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIodGhpcywgb3B0
aW9ucywgYXR0cmlidXRlRmlsdGVyKTsKKyAgICBub2RlLnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZl
cih0aGlzLCBvcHRpb25zLCBhdHRyaWJ1dGVGaWx0ZXIpOwogfQogCi1WZWN0b3I8UmVmUHRyPE11
dGF0aW9uUmVjb3JkPj4gTXV0YXRpb25PYnNlcnZlcjo6dGFrZVJlY29yZHMoKQorVmVjdG9yPFJl
ZjxNdXRhdGlvblJlY29yZD4+IE11dGF0aW9uT2JzZXJ2ZXI6OnRha2VSZWNvcmRzKCkKIHsKLSAg
ICBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPj4gcmVjb3JkczsKKyAgICBWZWN0b3I8UmVm
PE11dGF0aW9uUmVjb3JkPj4gcmVjb3JkczsKICAgICByZWNvcmRzLnN3YXAobV9yZWNvcmRzKTsK
ICAgICByZXR1cm4gcmVjb3JkczsKIH0KQEAgLTE4OSwxMCArMTg0LDEwIEBAIHN0YXRpYyB2b2lk
IHF1ZXVlTXV0YXRpb25PYnNlcnZlckNvbXBvdW5kTWljcm90YXNrKCkKICAgICBNaWNyb3Rhc2tR
dWV1ZTo6bWFpblRocmVhZFF1ZXVlKCkuYXBwZW5kKFdURk1vdmUobWljcm90YXNrKSk7CiB9CiAK
LXZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFBhc3NSZWZQdHI8
TXV0YXRpb25SZWNvcmQ+IG11dGF0aW9uKQordm9pZCBNdXRhdGlvbk9ic2VydmVyOjplbnF1ZXVl
TXV0YXRpb25SZWNvcmQoUmVmPE11dGF0aW9uUmVjb3JkPiYmIG11dGF0aW9uKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9yZWNvcmRzLmFwcGVuZChtdXRhdGlvbik7Cisg
ICAgbV9yZWNvcmRzLmFwcGVuZChXVEZNb3ZlKG11dGF0aW9uKSk7CiAgICAgYWN0aXZlTXV0YXRp
b25PYnNlcnZlcnMoKS5hZGQodGhpcyk7CiAKICAgICBxdWV1ZU11dGF0aW9uT2JzZXJ2ZXJDb21w
b3VuZE1pY3JvdGFzaygpOwpAQCAtMjM2LDcgKzIzMSw3IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZl
cjo6ZGVsaXZlcigpCiAgICAgaWYgKG1fcmVjb3Jkcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+PiByZWNvcmRzOworICAgIFZl
Y3RvcjxSZWY8TXV0YXRpb25SZWNvcmQ+PiByZWNvcmRzOwogICAgIHJlY29yZHMuc3dhcChtX3Jl
Y29yZHMpOwogCiAgICAgbV9jYWxsYmFjay0+Y2FsbChyZWNvcmRzLCB0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlci5oCmluZGV4IDFkOGUxYmRiNDI2ZDY5ZTIxZDQ0NzY0NDdk
NjcwMDVlMjYxM2Q3MDEuLmQ4NGFhZjgxMjBhOTc2NmEwMTI0YmNjZTY2NGZkN2Q2N2I2NmE5YTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaApAQCAtNzMsMTYgKzczLDE2IEBA
IHB1YmxpYzoKICAgICAgICAgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlID0gMSA8PCA2LAogICAgIH07
CiAKLSAgICBzdGF0aWMgUmVmPE11dGF0aW9uT2JzZXJ2ZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE11
dGF0aW9uQ2FsbGJhY2s+KTsKKyAgICBzdGF0aWMgUmVmPE11dGF0aW9uT2JzZXJ2ZXI+IGNyZWF0
ZShSZWY8TXV0YXRpb25DYWxsYmFjaz4mJik7CiAKICAgICB+TXV0YXRpb25PYnNlcnZlcigpOwog
Ci0gICAgdm9pZCBvYnNlcnZlKE5vZGUqLCBjb25zdCBEaWN0aW9uYXJ5JiwgRXhjZXB0aW9uQ29k
ZSYpOwotICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+PiB0YWtlUmVjb3JkcygpOwor
ICAgIHZvaWQgb2JzZXJ2ZShOb2RlJiwgY29uc3QgRGljdGlvbmFyeSYsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBWZWN0b3I8UmVmPE11dGF0aW9uUmVjb3JkPj4gdGFrZVJlY29yZHMoKTsKICAgICB2
b2lkIGRpc2Nvbm5lY3QoKTsKICAgICB2b2lkIG9ic2VydmF0aW9uU3RhcnRlZChNdXRhdGlvbk9i
c2VydmVyUmVnaXN0cmF0aW9uKik7CiAgICAgdm9pZCBvYnNlcnZhdGlvbkVuZGVkKE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24qKTsKLSAgICB2b2lkIGVucXVldWVNdXRhdGlvblJlY29yZChQ
YXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPik7CisgICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNv
cmQoUmVmPE11dGF0aW9uUmVjb3JkPiYmKTsKICAgICB2b2lkIHNldEhhc1RyYW5zaWVudFJlZ2lz
dHJhdGlvbigpOwogICAgIGJvb2wgY2FuRGVsaXZlcigpOwogCkBAIC05MSwxNCArOTEsMTQgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBzdHJ1Y3QgT2JzZXJ2ZXJMZXNzVGhhbjsKIAotICAgIGV4
cGxpY2l0IE11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPik7Cisg
ICAgZXhwbGljaXQgTXV0YXRpb25PYnNlcnZlcihSZWY8TXV0YXRpb25DYWxsYmFjaz4mJik7CiAg
ICAgdm9pZCBkZWxpdmVyKCk7CiAKICAgICBzdGF0aWMgdm9pZCBkZWxpdmVyQWxsTXV0YXRpb25z
KCk7CiAgICAgc3RhdGljIGJvb2wgdmFsaWRhdGVPcHRpb25zKE11dGF0aW9uT2JzZXJ2ZXJPcHRp
b25zKTsKIAotICAgIFJlZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBtX2NhbGxiYWNrOwotICAgIFZl
Y3RvcjxSZWZQdHI8TXV0YXRpb25SZWNvcmQ+PiBtX3JlY29yZHM7CisgICAgUmVmPE11dGF0aW9u
Q2FsbGJhY2s+IG1fY2FsbGJhY2s7CisgICAgVmVjdG9yPFJlZjxNdXRhdGlvblJlY29yZD4+IG1f
cmVjb3JkczsKICAgICBIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiBtX3Jl
Z2lzdHJhdGlvbnM7CiAgICAgdW5zaWduZWQgbV9wcmlvcml0eTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlci5pZGwKaW5kZXggNWE3YzcxZjc0Zjc5OGVlOGEzYzEzN2Y4YTY0
M2ZkNmE1MDM0YTJkNy4uOWVlOTc5MmIzYWFkODFkMTIyNWI4OGExMGQ3YTA1ZWRjNDU5Mzg3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbApAQCAtMzEsNyArMzEsNiBA
QAogWwogICAgIEN1c3RvbUNvbnN0cnVjdG9yKE11dGF0aW9uQ2FsbGJhY2sgY2FsbGJhY2spLAog
ICAgIEN1c3RvbUlzUmVhY2hhYmxlLAotICAgIFVzZVBvaW50ZXJzRXZlbkZvck5vbk51bGxhYmxl
T2JqZWN0QXJndW1lbnRzLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiBdIGludGVy
ZmFjZSBNdXRhdGlvbk9ic2VydmVyIHsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIG9ic2Vy
dmUoTm9kZSB0YXJnZXQsIERpY3Rpb25hcnkgb3B0aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcAppbmRleCA3ZjRhZGM0
MTk1N2VkOTM2ZmIxNjJmMjc0NWE0ZjM3M2EwNThhOTZiLi5mNmI0MmU0NDkwYjlmMzBjNGQxMjk2
Mjc2NGQ5NjYyNmIxZGViZDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKQEAgLTY0LDIzICs2NCwyMiBAQCBib29sIE11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjppc09sZFZhbHVlUmVxdWVzdGVkKCkKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmVu
cXVldWVNdXRhdGlvblJlY29yZChQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBwcnBNdXRhdGlv
bikKK3ZvaWQgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmVucXVldWVNdXRhdGlvblJl
Y29yZChSZWY8TXV0YXRpb25SZWNvcmQ+JiYgbXV0YXRpb24pCiB7Ci0gICAgUmVmUHRyPE11dGF0
aW9uUmVjb3JkPiBtdXRhdGlvbiA9IHBycE11dGF0aW9uOwogICAgIFJlZlB0cjxNdXRhdGlvblJl
Y29yZD4gbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlOwogICAgIGZvciAoYXV0byYgb2JzZXJ2ZXJP
cHRpb25zUGFpciA6IG1fb2JzZXJ2ZXJzKSB7CiAgICAgICAgIE11dGF0aW9uT2JzZXJ2ZXIqIG9i
c2VydmVyID0gb2JzZXJ2ZXJPcHRpb25zUGFpci5rZXk7CiAgICAgICAgIGlmIChoYXNPbGRWYWx1
ZShvYnNlcnZlck9wdGlvbnNQYWlyLnZhbHVlKSkgewotICAgICAgICAgICAgb2JzZXJ2ZXItPmVu
cXVldWVNdXRhdGlvblJlY29yZChtdXRhdGlvbik7CisgICAgICAgICAgICBvYnNlcnZlci0+ZW5x
dWV1ZU11dGF0aW9uUmVjb3JkKG11dGF0aW9uLmNvcHlSZWYoKSk7CiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogICAgICAgICBpZiAoIW11dGF0aW9uV2l0aE51bGxPbGRWYWx1ZSkg
ewogICAgICAgICAgICAgaWYgKG11dGF0aW9uLT5vbGRWYWx1ZSgpLmlzTnVsbCgpKQotICAgICAg
ICAgICAgICAgIG11dGF0aW9uV2l0aE51bGxPbGRWYWx1ZSA9IG11dGF0aW9uOworICAgICAgICAg
ICAgICAgIG11dGF0aW9uV2l0aE51bGxPbGRWYWx1ZSA9IG11dGF0aW9uLnB0cigpOwogICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG11dGF0aW9uV2l0aE51bGxPbGRWYWx1ZSA9IE11
dGF0aW9uUmVjb3JkOjpjcmVhdGVXaXRoTnVsbE9sZFZhbHVlKCptdXRhdGlvbikucHRyKCk7Cisg
ICAgICAgICAgICAgICAgbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlID0gTXV0YXRpb25SZWNvcmQ6
OmNyZWF0ZVdpdGhOdWxsT2xkVmFsdWUobXV0YXRpb24pLnB0cigpOwogICAgICAgICB9Ci0gICAg
ICAgIG9ic2VydmVyLT5lbnF1ZXVlTXV0YXRpb25SZWNvcmQobXV0YXRpb25XaXRoTnVsbE9sZFZh
bHVlKTsKKyAgICAgICAgb2JzZXJ2ZXItPmVucXVldWVNdXRhdGlvblJlY29yZCgqbXV0YXRpb25X
aXRoTnVsbE9sZFZhbHVlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKaW5kZXggMmY3NzNiY2E2MjZiODE3OWU3
ZGNmMzViZDU4OWY1NDQzNDRmOTg4OS4uMDU1OTcxZThjYTg2MzlhZjU0NmJmNTU0MjQxM2QzYjBm
ZGI4NjE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJ
bnRlcmVzdEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJ
bnRlcmVzdEdyb3VwLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIGJv
b2wgaXNPbGRWYWx1ZVJlcXVlc3RlZCgpOwotICAgIHZvaWQgZW5xdWV1ZU11dGF0aW9uUmVjb3Jk
KFBhc3NSZWZQdHI8TXV0YXRpb25SZWNvcmQ+KTsKKyAgICB2b2lkIGVucXVldWVNdXRhdGlvblJl
Y29yZChSZWY8TXV0YXRpb25SZWNvcmQ+JiYpOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0ZUlmTmVlZGVk
KE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBNdXRhdGlvblJl
Y29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0
dHJpYnV0ZU5hbWUgPSBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvblJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3Bw
CmluZGV4IDlkZmRlM2VjMzc5YjBmYTQwZWJiNDcxYjFlNDljODRmNGRhNzZjNTcuLjQwMjY4NmU3
MDkzNzNjODg3MzI4NWMwZGY4YzFlMWQ1YmYwYmUxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uUmVjb3JkLmNwcApAQCAtNDIsMTIgKzQyLDEyIEBAIG5hbWVzcGFjZSB7CiAKIGNsYXNzIENo
aWxkTGlzdFJlY29yZCA6IHB1YmxpYyBNdXRhdGlvblJlY29yZCB7CiBwdWJsaWM6Ci0gICAgQ2hp
bGRMaXN0UmVjb3JkKENvbnRhaW5lck5vZGUmIHRhcmdldCwgUGFzc1JlZlB0cjxOb2RlTGlzdD4g
YWRkZWQsIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IHJlbW92ZWQsIFBhc3NSZWZQdHI8Tm9kZT4gcHJl
dmlvdXNTaWJsaW5nLCBQYXNzUmVmUHRyPE5vZGU+IG5leHRTaWJsaW5nKQorICAgIENoaWxkTGlz
dFJlY29yZChDb250YWluZXJOb2RlJiB0YXJnZXQsIFJlZjxOb2RlTGlzdD4mJiBhZGRlZCwgUmVm
PE5vZGVMaXN0PiYmIHJlbW92ZWQsIFJlZlB0cjxOb2RlPiYmIHByZXZpb3VzU2libGluZywgUmVm
UHRyPE5vZGU+JiYgbmV4dFNpYmxpbmcpCiAgICAgICAgIDogbV90YXJnZXQodGFyZ2V0KQotICAg
ICAgICAsIG1fYWRkZWROb2RlcyhhZGRlZCkKLSAgICAgICAgLCBtX3JlbW92ZWROb2RlcyhyZW1v
dmVkKQotICAgICAgICAsIG1fcHJldmlvdXNTaWJsaW5nKHByZXZpb3VzU2libGluZykKLSAgICAg
ICAgLCBtX25leHRTaWJsaW5nKG5leHRTaWJsaW5nKQorICAgICAgICAsIG1fYWRkZWROb2RlcyhX
VEZNb3ZlKGFkZGVkKSkKKyAgICAgICAgLCBtX3JlbW92ZWROb2RlcyhXVEZNb3ZlKHJlbW92ZWQp
KQorICAgICAgICAsIG1fcHJldmlvdXNTaWJsaW5nKFdURk1vdmUocHJldmlvdXNTaWJsaW5nKSkK
KyAgICAgICAgLCBtX25leHRTaWJsaW5nKFdURk1vdmUobmV4dFNpYmxpbmcpKQogICAgIHsKICAg
ICB9CiAKQEAgLTE2NCw5ICsxNjQsOSBAQCBjb25zdCBBdG9taWNTdHJpbmcmIENoYXJhY3RlckRh
dGFSZWNvcmQ6OnR5cGUoKQogCiB9IC8vIG5hbWVzcGFjZQogCi1SZWY8TXV0YXRpb25SZWNvcmQ+
IE11dGF0aW9uUmVjb3JkOjpjcmVhdGVDaGlsZExpc3QoQ29udGFpbmVyTm9kZSYgdGFyZ2V0LCBQ
YXNzUmVmUHRyPE5vZGVMaXN0PiBhZGRlZCwgUGFzc1JlZlB0cjxOb2RlTGlzdD4gcmVtb3ZlZCwg
UGFzc1JlZlB0cjxOb2RlPiBwcmV2aW91c1NpYmxpbmcsIFBhc3NSZWZQdHI8Tm9kZT4gbmV4dFNp
YmxpbmcpCitSZWY8TXV0YXRpb25SZWNvcmQ+IE11dGF0aW9uUmVjb3JkOjpjcmVhdGVDaGlsZExp
c3QoQ29udGFpbmVyTm9kZSYgdGFyZ2V0LCBSZWY8Tm9kZUxpc3Q+JiYgYWRkZWQsIFJlZjxOb2Rl
TGlzdD4mJiByZW1vdmVkLCBSZWZQdHI8Tm9kZT4mJiBwcmV2aW91c1NpYmxpbmcsIFJlZlB0cjxO
b2RlPiYmIG5leHRTaWJsaW5nKQogewotICAgIHJldHVybiBhZG9wdFJlZihzdGF0aWNfY2FzdDxN
dXRhdGlvblJlY29yZCY+KCpuZXcgQ2hpbGRMaXN0UmVjb3JkKHRhcmdldCwgYWRkZWQsIHJlbW92
ZWQsIHByZXZpb3VzU2libGluZywgbmV4dFNpYmxpbmcpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KHN0YXRpY19jYXN0PE11dGF0aW9uUmVjb3JkJj4oKm5ldyBDaGlsZExpc3RSZWNvcmQodGFyZ2V0
LCBXVEZNb3ZlKGFkZGVkKSwgV1RGTW92ZShyZW1vdmVkKSwgV1RGTW92ZShwcmV2aW91c1NpYmxp
bmcpLCBXVEZNb3ZlKG5leHRTaWJsaW5nKSkpKTsKIH0KIAogUmVmPE11dGF0aW9uUmVjb3JkPiBN
dXRhdGlvblJlY29yZDo6Y3JlYXRlQXR0cmlidXRlcyhFbGVtZW50JiB0YXJnZXQsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkVmFsdWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvblJlY29yZC5oCmluZGV4IDE3MDlhYjYwMmQ4MWRiMGRjYWMxZmQ4ZDJlMTll
ZDM2MmJiNGM4ODkuLjM2ODM1MTkyZDFmZGRlZmI0ZTc1N2M1ZmQ2ZDQyYTVmZmQ1ZGEyNGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFF1
YWxpZmllZE5hbWU7CiAKIGNsYXNzIE11dGF0aW9uUmVjb3JkIDogcHVibGljIFJlZkNvdW50ZWQ8
TXV0YXRpb25SZWNvcmQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE11dGF0aW9uUmVjb3Jk
PiBjcmVhdGVDaGlsZExpc3QoQ29udGFpbmVyTm9kZSYgdGFyZ2V0LCBQYXNzUmVmUHRyPE5vZGVM
aXN0PiBhZGRlZCwgUGFzc1JlZlB0cjxOb2RlTGlzdD4gcmVtb3ZlZCwgUGFzc1JlZlB0cjxOb2Rl
PiBwcmV2aW91c1NpYmxpbmcsIFBhc3NSZWZQdHI8Tm9kZT4gbmV4dFNpYmxpbmcpOworICAgIHN0
YXRpYyBSZWY8TXV0YXRpb25SZWNvcmQ+IGNyZWF0ZUNoaWxkTGlzdChDb250YWluZXJOb2RlJiB0
YXJnZXQsIFJlZjxOb2RlTGlzdD4mJiBhZGRlZCwgUmVmPE5vZGVMaXN0PiYmIHJlbW92ZWQsIFJl
ZlB0cjxOb2RlPiYmIHByZXZpb3VzU2libGluZywgUmVmUHRyPE5vZGU+JiYgbmV4dFNpYmxpbmcp
OwogICAgIHN0YXRpYyBSZWY8TXV0YXRpb25SZWNvcmQ+IGNyZWF0ZUF0dHJpYnV0ZXMoRWxlbWVu
dCYgdGFyZ2V0LCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiBvbGRW
YWx1ZSk7CiAgICAgc3RhdGljIFJlZjxNdXRhdGlvblJlY29yZD4gY3JlYXRlQ2hhcmFjdGVyRGF0
YShDaGFyYWN0ZXJEYXRhJiB0YXJnZXQsIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUpOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZDkyNTk4MWZmNjUyNWU5YWM4YzRmZDlhZTNmMjU2OGI2NjFkMjE4NC4uNmNmMWE4N2IxYTI1
ZGJmMTlmN2U0YjI5Y2QxMmM5OGJiZDg3MTFlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2
LTA0LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBb
VXNlUG9pbnRlcnNFdmVuRm9yTm9uTnVsbGFibGVPYmplY3RBcmd1bWVudHNdIGZyb20gTXV0YXRp
b25PYnNlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU2ODkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
UmViYXNlbGluZSBub3cgdGhhdCBNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoKSB0aHJvd3MgYSBU
eXBlRXJyb3IgaW5zdGVhZAorICAgICAgICBvZiBhIE5PVF9GT1VORF9FUlIgd2hlbiBwYXNzZWQg
YSBudWxsIE5vZGUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL29ic2Vy
dmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6CisKIDIwMTYtMDQtMjIgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEVuYWJsZSB0aGUg
ZG93bmxvYWQgYXR0cmlidXRlIHN1cHBvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL011dGF0aW9uT2JzZXJ2ZXIvb2JzZXJ2ZS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvb2JzZXJ2ZS1leGNlcHRpb25zLWV4
cGVjdGVkLnR4dAppbmRleCAyZjZiYjRmNWM0ODVmYmQxOGJjMTk1ZTg2MDhmYTFlOWRhZjA1NWEx
Li41MWViNDYwNzVkMDAxNDg1YjRhZjA3MzVjZGYxNmRlYjdlNzc3OTc0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL29ic2VydmUtZXhjZXB0aW9ucy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9v
YnNlcnZlLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC03LDE3ICs3LDE3IEBAIFBBU1Mgb2Jz
ZXJ2ZXIub2JzZXJ2ZSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzLgogUEFTUyBvYnNlcnZlci5vYnNlcnZlKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyBvYnNlcnZlci5vYnNlcnZlKHVuZGVm
aW5lZCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQ
QVNTIG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCi1QQVNTIG9ic2VydmVyLm9ic2VydmUoZG9jdW1l
bnQuYm9keSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4
Y2VwdGlvbiAxMi4KLVBBU1Mgb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB1bmRlZmlu
ZWQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIu
Ci1QQVNTIG9ic2VydmVyLm9ic2VydmUobnVsbCwge2F0dHJpYnV0ZXM6IHRydWV9KSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KLVBBU1Mgb2Jz
ZXJ2ZXIub2JzZXJ2ZSh1bmRlZmluZWQsIHthdHRyaWJ1dGVzOiB0cnVlfSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDguCi1QQVNTIG9ic2VydmVy
Lm9ic2VydmUoZG9jdW1lbnQuYm9keSwge3N1YnRyZWU6IHRydWV9KSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBvYnNlcnZlci5vYnNl
cnZlKGRvY3VtZW50LmJvZHksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCitQQVNTIG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgdW5kZWZpbmVkKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBvYnNlcnZlci5vYnNl
cnZlKG51bGwsIHthdHRyaWJ1dGVzOiB0cnVlfSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KK1BBU1Mgb2JzZXJ2ZXIub2JzZXJ2ZSh1bmRlZmluZWQsIHthdHRyaWJ1dGVz
OiB0cnVlfSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mgb2Jz
ZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7c3VidHJlZTogdHJ1ZX0pIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIG9ic2VydmVyLm9ic2VydmUoZG9jdW1l
bnQuYm9keSwge2NoaWxkTGlzdDogdHJ1ZSwgYXR0cmlidXRlT2xkVmFsdWU6IHRydWV9KSBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1Mgb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5
LCB7YXR0cmlidXRlczogdHJ1ZSwgY2hhcmFjdGVyRGF0YU9sZFZhbHVlOiB0cnVlfSkgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwg
e2NoYXJhY3RlckRhdGE6IHRydWUsIGF0dHJpYnV0ZUZpbHRlcjogWyJpZCJdfSkgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24uCi1QQVNTIG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwge2F0
dHJpYnV0ZXM6IGZhbHNlLCBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZX0pIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCi1QQVNTIG9ic2VydmVyLm9i
c2VydmUoZG9jdW1lbnQuYm9keSwge2F0dHJpYnV0ZXM6IGZhbHNlLCBhdHRyaWJ1dGVGaWx0ZXI6
IFsiaWQiXX0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRp
b24gMTIuCi1QQVNTIG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwge2NoYXJhY3RlckRh
dGE6IGZhbHNlLCBjaGFyYWN0ZXJEYXRhT2xkVmFsdWU6IHRydWV9KSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBvYnNlcnZlci5vYnNl
cnZlKGRvY3VtZW50LmJvZHksIHthdHRyaWJ1dGVzOiBmYWxzZSwgYXR0cmlidXRlT2xkVmFsdWU6
IHRydWV9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBvYnNl
cnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHthdHRyaWJ1dGVzOiBmYWxzZSwgYXR0cmlidXRl
RmlsdGVyOiBbImlkIl19KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtjaGFyYWN0ZXJEYXRhOiBmYWxz
ZSwgY2hhcmFjdGVyRGF0YU9sZFZhbHVlOiB0cnVlfSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBD
T01QTEVURQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>