<?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>142634</bug_id>
          
          <creation_ts>2015-03-12 12:56:12 -0700</creation_ts>
          <short_desc>Sink the Vector&lt;uint8_t&gt; buffer into the SerializedScriptValue constructor</short_desc>
          <delta_ts>2016-01-18 12:27:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1076711</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-03-12 12:56:12 -0700</bug_when>
    <thetext>Sink the Vector&lt;uint8_t&gt; buffer into the SerializedScriptValue constructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076727</commentid>
    <comment_count>1</comment_count>
      <attachid>248537</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-03-12 13:29:29 -0700</bug_when>
    <thetext>Created attachment 248537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076814</commentid>
    <comment_count>2</comment_count>
      <attachid>248537</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-03-12 18:18:06 -0700</bug_when>
    <thetext>Comment on attachment 248537
Patch

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

&gt; Source/WebCore/bindings/js/IDBBindingUtilities.cpp:322
&gt; +Deprecated::ScriptValue deserializeIDBValueBuffer(JSC::ExecState* exec, Vector&lt;uint8_t&gt;&amp;&amp; buffer, bool keyIsDefined)

Need to update the declaration in the IDBBindingUtilities.h header file too. Or delete that declaration entirely and mark this static so it has internal linkage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077848</commentid>
    <comment_count>3</comment_count>
      <attachid>248840</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-03-17 03:22:23 -0700</bug_when>
    <thetext>Created attachment 248840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077955</commentid>
    <comment_count>4</comment_count>
      <attachid>248865</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-03-17 13:37:40 -0700</bug_when>
    <thetext>Created attachment 248865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152096</commentid>
    <comment_count>5</comment_count>
      <attachid>268135</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-01-03 03:36:23 -0800</bug_when>
    <thetext>Created attachment 268135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152208</commentid>
    <comment_count>6</comment_count>
      <attachid>268135</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-01-03 18:03:08 -0800</bug_when>
    <thetext>Comment on attachment 268135
Patch

Looks like a nice cleanup. This needs approved by an owner, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156039</commentid>
    <comment_count>7</comment_count>
      <attachid>268135</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-01-15 16:47:04 -0800</bug_when>
    <thetext>Comment on attachment 268135
Patch

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

&gt; Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.cpp:182
&gt; +    RefPtr&lt;WebCore::SerializedScriptValue&gt; value = WebCore::SerializedScriptValue::adopt(dataReference.vector());
&gt;  
&gt;      handler-&gt;client().didPostMessage(*page, *frame, securityOrigin, *value);

I think this reads better without a local variable:

    handler-&gt;client().didPostMessage(*page, *frame, securityOrigin, *WebCore::SerializedScriptValue::adopt(dataReference.vector()));

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:4701
&gt; +    RefPtr&lt;API::SerializedScriptValue&gt; returnValue = API::SerializedScriptValue::adopt(WTFMove(data));
&gt; +    callback-&gt;performCallbackWithReturnValue(returnValue.get(), hadException, details);

i think this still reads better without a local variable:

    callback-&gt;performCallbackWithReturnValue(API::SerializedScriptValue::adopt(WTFMove(data)).get(), hadException, details);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156425</commentid>
    <comment_count>8</comment_count>
      <attachid>269231</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-01-18 10:40:15 -0800</bug_when>
    <thetext>Created attachment 269231
Patch for landing

Addressed the recommendations in comment #7.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156432</commentid>
    <comment_count>9</comment_count>
      <attachid>269231</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-18 12:26:56 -0800</bug_when>
    <thetext>Comment on attachment 269231
Patch for landing

Clearing flags on attachment: 269231

Committed r195235: &lt;http://trac.webkit.org/changeset/195235&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156433</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-18 12:27:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248537</attachid>
            <date>2015-03-12 13:29:29 -0700</date>
            <delta_ts>2015-03-17 03:22:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142634-20150312133202.patch</filename>
            <type>text/plain</type>
            <size>15661</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTgzYjgxNzMxZDM5ZjBl
MmM1NzM5Yjc4OGQ3MjA2YzdiZWFjM2JkZC4uYjE4YzNlOGU0NzQ3MWRjNTEzYzY2YmM2ZmVmZTA3
ZDJiNjE1MGZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAzLTEyICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBTaW5rIHRoZSBWZWN0
b3I8dWludDhfdD4gYnVmZmVyIGludG8gdGhlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBjb25zdHJ1
Y3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
NjM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSGF2
ZSB0aGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGNvbnN0cnVjdG9yIHRha2UgaW4gdGhlIFZlY3Rv
cjx1aW50OF90PiBidWZmZXIKKyAgICAgICAgdGhyb3VnaCBhbiBydmFsdWUgcmVmZXJlbmNlLCBh
dm9pZGluZyB0aGUgY29weWluZyBpbnRvIHRoZSBtX2RhdGEgbWVtYmVyLgorICAgICAgICBIZWxw
ZXIgc3RhdGljIG1ldGhvZHMgdGhhdCBpbnZva2UgdGhlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBj
b25zdHJ1Y3RvciBub3cKKyAgICAgICAgYWxzbyB1c2UgdGhlIHJ2YWx1ZSByZWZlcmVuY2UgZm9y
IHRoZSBWZWN0b3Igb2JqZWN0LCBtb3ZpbmcgaXQgaW50byB0aGUKKyAgICAgICAgY29uc3RydWN0
b3IuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bWJlclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpudWxsVmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZGVzZXJpYWxpemVCdWZmZXIpOgor
CiAyMDE1LTAzLTEyICBTZWJhc3RpYW4gRHLDtmdlICA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNv
bT4KIAogICAgICAgICBTdG9wIHVzaW5nIHNpbmdsZS1pbmNsdWRlIGhlYWRlcnMgdGhhdCBhcmUg
b25seSBhdmFpbGFibGUgc2luY2UgR1N0cmVhbWVyID49IDEuMi4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhZGU1
ZDg2MTFjNGZmNWYyNzczZGYwNzBiNGU3MDQ4NTc0N2FkNDc0Li4yOTY3MzRhZTZiYzBjN2FiMDMy
ODNlNjA0MTc5OTQ2ZDMwN2I1NTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTUt
MDMtMTIgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFNp
bmsgdGhlIFZlY3Rvcjx1aW50OF90PiBidWZmZXIgaW50byB0aGUgU2VyaWFsaXplZFNjcmlwdFZh
bHVlIGNvbnN0cnVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDI2MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVcGRhdGUgQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KCkgdG8gdGFr
ZSBpbiBhIFZlY3Rvcjx1aW50OF90PgorICAgICAgICBydmFsdWUsIG1vdmluZyBpdCBpbnRvIHRo
ZSBXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KCkgY2FsbC4KKworICAgICAg
ICAqIFNoYXJlZC9BUEkvQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChBUEk6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQpOgorICAgICAgICAqIFNoYXJlZC9Vc2VyRGF0
YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpkaWRQb3N0TWVz
c2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2NyaXB0VmFsdWVDYWxsYmFjayk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6YXBwbHlGcmFtZVN0YXRlKTogQ29weSB0aGUgY29uc3Qgc3RhdGVPYmplY3RE
YXRhIHZhbHVlIGFuZCBtb3ZlCisgICAgICAgIGl0IGludG8gdGhlIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6YWRvcHQoKSBjYWxsLgorCiAyMDE1LTAzLTExICBFbnJpY2EgQ2FzdWNjaSAgPGVucmlj
YUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQgbmV3IEFQSSBmb3Iga2V5Ym9hcmQgZXZlbnQg
aGFuZGxpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5k
aW5nVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdV
dGlsaXRpZXMuY3BwCmluZGV4IGJiNTAxOGMxNzk5MmQ2MGQyZWYyNGJmZWQ2ODEwYjIyNDcxNzI3
MTYuLjBhMjc3NjRiOGQ1YzIyMDk4MzY0YzBmYzhkMmRmODIwMzBiZmQ2MGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC0z
MTMsMTMgKzMxMywxMyBAQCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZh
bHVlQnVmZmVyKERPTVJlcXVlc3RTdGF0ZSogcmVxdWVzdFN0YXRlLAogICAgIGlmIChwcnBCdWZm
ZXIpIHsKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHZhbHVlOwogICAgICAgICB2YWx1ZS5hcHBl
bmQocHJwQnVmZmVyLT5kYXRhKCksIHBycEJ1ZmZlci0+c2l6ZSgpKTsKLSAgICAgICAgcmV0dXJu
IGRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIocmVxdWVzdFN0YXRlLT5leGVjKCksIHZhbHVlLCBr
ZXlJc0RlZmluZWQpOworICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihy
ZXF1ZXN0U3RhdGUtPmV4ZWMoKSwgV1RGOjptb3ZlKHZhbHVlKSwga2V5SXNEZWZpbmVkKTsKICAg
ICB9CiAKICAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUocmVxdWVzdFN0YXRlLT5l
eGVjKCktPnZtKCksIGpzTnVsbCgpKTsKIH0KIAotRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZGVz
ZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBidWZmZXIsIGJvb2wga2V5SXNEZWZpbmVkKQorRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgVmVj
dG9yPHVpbnQ4X3Q+JiYgYnVmZmVyLCBib29sIGtleUlzRGVmaW5lZCkKIHsKICAgICAvLyBJZiB0
aGUga2V5IGRvZXNuJ3QgZXhpc3QsIHRoZW4gdGhlIHZhbHVlIG11c3QgYmUgdW5kZWZpbmVkIChh
cyBvcHBvc2VkIHRvIG51bGwpLgogICAgIGlmICgha2V5SXNEZWZpbmVkKSB7CkBAIC0zMzAsNyAr
MzMwLDcgQEAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZl
cihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVmUKIAogICAgIEpTVmFsdWUgcmVzdWx0Owog
ICAgIGlmIChidWZmZXIuc2l6ZSgpKSB7Ci0gICAgICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IHNlcmlhbGl6ZWRWYWx1ZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJv
bVdpcmVCeXRlcyhidWZmZXIpOworICAgICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBzZXJpYWxpemVkVmFsdWUgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJl
Qnl0ZXMoV1RGOjptb3ZlKGJ1ZmZlcikpOwogICAgICAgICByZXN1bHQgPSBzZXJpYWxpemVkVmFs
dWUtPmRlc2VyaWFsaXplKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgMCwgTm9u
VGhyb3dpbmcpOwogICAgIH0gZWxzZQogICAgICAgICByZXN1bHQgPSBqc051bGwoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
CmluZGV4IDlmOWYyNTljZTY3OTI4NDI0Nzg5YTNkMzRiZWYzOTJhNTc4OWFjYWUuLjdmYWM1ODY3
MzE2NTIxZTNjNzg5NzQ0NjQzYmYxMjM3YmY1OGQzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMjU1NywyNyAr
MjU1NywyMiBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6On5TZXJpYWxpemVkU2NyaXB0VmFsdWUo
KQogewogfQogCi1TZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShj
b25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKLSAgICA6IG1fZGF0YShidWZmZXIpCitTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4m
JiBidWZmZXIpCisgICAgOiBtX2RhdGEoV1RGOjptb3ZlKGJ1ZmZlcikpCiB7CiB9CiAKLVNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90PiYg
YnVmZmVyKQorU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVj
dG9yPHVpbnQ4X3Q+JiYgYnVmZmVyLCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMpCisgICAgOiBt
X2RhdGEoV1RGOjptb3ZlKGJ1ZmZlcikpCiB7Ci0gICAgbV9kYXRhLnN3YXAoYnVmZmVyKTsKLX0K
LQotU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVp
bnQ4X3Q+JiBidWZmZXIsIFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcykKLXsKLSAgICBtX2RhdGEu
c3dhcChidWZmZXIpOwogICAgIGZvciAoYXV0byYgc3RyaW5nIDogYmxvYlVSTHMpCiAgICAgICAg
IGFkZEJsb2JVUkwoc3RyaW5nKTsKIH0KIAotU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxp
emVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIsIFZlY3RvcjxTdHJpbmc+JiBi
bG9iVVJMcywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gYXJyYXlC
dWZmZXJDb250ZW50c0FycmF5KQotICAgIDogbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkoV1RG
Ojptb3ZlKGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkpCitTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4mJiBidWZmZXIsIFZlY3RvcjxT
dHJpbmc+JiBibG9iVVJMcywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJh
eT4gYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KQorICAgIDogbV9kYXRhKFdURjo6bW92ZShidWZm
ZXIpKQorICAgICwgbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkoV1RGOjptb3ZlKGFycmF5QnVm
ZmVyQ29udGVudHNBcnJheSkpCiB7Ci0gICAgbV9kYXRhLnN3YXAoYnVmZmVyKTsKICAgICBmb3Ig
KGF1dG8mIHN0cmluZyA6IGJsb2JVUkxzKQogICAgICAgICBhZGRCbG9iVVJMKHN0cmluZyk7CiB9
CkBAIC0yNjMwLDcgKzI2MjUsNyBAQCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLAogICAgIGlmICgh
c2VyaWFsaXphdGlvbkRpZENvbXBsZXRlU3VjY2Vzc2Z1bGx5KGNvZGUpKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGJ1
ZmZlciwgYmxvYlVSTHMsIFdURjo6bW92ZShhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGOjptb3ZlKGJ1
ZmZlciksIGJsb2JVUkxzLCBXVEY6Om1vdmUoYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSkpOwog
fQogCiBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC0yNjM4LDcgKzI2MzMsNyBAQCBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpj
cmVhdGUoY29uc3QgU3RyaW5nJiBzdAogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7CiAgICAg
aWYgKCFDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShzdHJpbmcsIGJ1ZmZlcikpCiAgICAgICAg
IHJldHVybiAwOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVl
KGJ1ZmZlcikpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVl
KFdURjo6bW92ZShidWZmZXIpKSk7CiB9CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
QEAgLTI2NDYsMTQgKzI2NDEsMTQgQEAgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVtYmVyVmFsdWUoZG91YmxlIHZhbHUKIHsKICAgICBW
ZWN0b3I8dWludDhfdD4gYnVmZmVyOwogICAgIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplTnVt
YmVyKHZhbHVlLCBidWZmZXIpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNj
cmlwdFZhbHVlKGJ1ZmZlcikpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNj
cmlwdFZhbHVlKFdURjo6bW92ZShidWZmZXIpKSk7CiB9CiAKIFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnVuZGVmaW5lZFZhbHVlKCkKIHsK
ICAgICBWZWN0b3I8dWludDhfdD4gYnVmZmVyOwogICAgIENsb25lU2VyaWFsaXplcjo6c2VyaWFs
aXplVW5kZWZpbmVkKGJ1ZmZlcik7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVk
U2NyaXB0VmFsdWUoYnVmZmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVk
U2NyaXB0VmFsdWUoV1RGOjptb3ZlKGJ1ZmZlcikpKTsKIH0KICNlbmRpZgogCkBAIC0yNzA1LDgg
KzI3MDAsNyBAQCBKU1ZhbHVlUmVmIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVzZXJpYWxpemUo
SlNDb250ZXh0UmVmIGRlc3RpbmF0aW9uQ29udGV4dCwgSgogCiBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpudWxsVmFsdWUoKQogewotICAg
IFZlY3Rvcjx1aW50OF90PiBidWZmZXI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxp
emVkU2NyaXB0VmFsdWUoYnVmZmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxp
emVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+KCkpKTsKIH0KIAogdm9pZCBTZXJpYWxpemVk
U2NyaXB0VmFsdWU6Om1heWJlVGhyb3dFeGNlcHRpb25JZlNlcmlhbGl6YXRpb25GYWlsZWQoRXhl
Y1N0YXRlKiBleGVjLCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBjb2RlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAppbmRleCBkMzY2
YjMwNjdjMTI2YmVkNDBlMzlkN2ViYjZkODI2NGQ1ODkwOGJhLi40NTAwZGM0M2YwMmUxZjAwZjBl
YTgwYjA1NGYyOWVmNzc0ZTU2NGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaApAQCAtNzAsOSArNzAsOSBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIE1lc3NhZ2VQb3J0QXJyYXkq
LCBBcnJheUJ1ZmZlckFycmF5KiwgU2VyaWFsaXphdGlvbkVycm9yTW9kZSA9IFRocm93aW5nKTsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBhZG9wdChWZWN0b3I8dWludDhf
dD4mJiBidWZmZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZShidWZmZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJp
YWxpemVkU2NyaXB0VmFsdWUoV1RGOjptb3ZlKGJ1ZmZlcikpKTsKICAgICB9CiAKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG51bGxWYWx1ZSgpOwpAQCAtOTcs
OSArOTcsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiB1bmRlZmluZWRWYWx1ZSgpOwogI2VuZGlmCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZUZyb21XaXJlQnl0ZXMoY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBkYXRhKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gY3JlYXRlRnJvbVdpcmVCeXRlcyhWZWN0b3I8dWludDhfdD4mJiBkYXRhKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoZGF0YSkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXVEY6
Om1vdmUoZGF0YSkpKTsKICAgICB9CiAgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB0b1dpcmVC
eXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQogCkBAIC0xMTIsMTAgKzExMiw5IEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJy
YXk+IHRyYW5zZmVyQXJyYXlCdWZmZXJzKEpTQzo6RXhlY1N0YXRlKiwgQXJyYXlCdWZmZXJBcnJh
eSYsIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlJik7CiAgICAgdm9pZCBhZGRCbG9iVVJMKGNvbnN0
IFN0cmluZyYpOwogCi0gICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGNvbnN0IFZlY3Rvcjx1bnNp
Z25lZCBjaGFyPiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShW
ZWN0b3I8dW5zaWduZWQgY2hhcj4mKTsKLSAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9y
PHVuc2lnbmVkIGNoYXI+JiwgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzKTsKLSAgICBTZXJpYWxp
emVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiwgVmVjdG9yPFN0cmluZz4mIGJs
b2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5Pik7CisgICAg
V0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFy
PiYmKTsKKyAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYs
IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcyk7CisgICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZl
Y3Rvcjx1bnNpZ25lZCBjaGFyPiYmLCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6dW5p
cXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+KTsKIAogICAgIFZlY3Rvcjx1bnNpZ25l
ZCBjaGFyPiBtX2RhdGE7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNB
cnJheT4gbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKaW5kZXggYTJjYmNlMjc4MTYyMGE0NGUwMGYwMzljMjIwOTBkNWI0YzMwMTliYS4u
MDllYzc4ODYzMzc3NDYwNjdlNzRmYWIzNDI5OTM4OWYxNjJiNDE2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMjEzNiw3ICsyMTM2LDcgQEAgUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IEludGVybmFsczo6ZGVzZXJpYWxpemVCdWZmZXIoUGFzc1JlZlB0
cjxBcnJheUIKIHsKICAgICBWZWN0b3I8dWludDhfdD4gYnl0ZXM7CiAgICAgYnl0ZXMuYXBwZW5k
KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+Ynl0
ZUxlbmd0aCgpKTsKLSAgICByZXR1cm4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChieXRl
cyk7CisgICAgcmV0dXJuIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoV1RGOjptb3ZlKGJ5
dGVzKSk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnMoYm9v
bCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmgKaW5kZXggY2MwNTc4ODg0ZDQ1NmJiYjNlOTg0ZDM4YjBlMzFjNTc0
Mzg0ZDk0MS4uYmY3ZDVjZWI4ZjcwYWM4ZjVhMTc4ZThhY2E0ZGVkNjZiOGJhOTNhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oCkBAIC00OSw5ICs0OSw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFZhbHVlLmdldCgpKSk7CiAgICAgfQog
ICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQo
VmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBhZG9wdChWZWN0b3I8dWludDhfdD4mJiBidWZmZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KGJ1ZmZlcikpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlOjphZG9wdChXVEY6Om1vdmUoYnVmZmVyKSkpKTsKICAgICB9CiAgICAgCiAgICAgSlNW
YWx1ZVJlZiBkZXNlcmlhbGl6ZShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJEYXRhLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5jcHAKaW5kZXggY2VhZWNkMDc4NDM2NGQ3
MTIzMWJjOTlkNTAxOTQ5MDJmY2M4YWY1MS4uNWI0ZGY3MzdiZDI2ZWY1Y2EwYWE4NjkzNjVjN2Qx
MmQ1NWJiZTFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJEYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuY3BwCkBAIC01MzAsOCArNTMw
LDcgQEAgYm9vbCBVc2VyRGF0YTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBSZWZQdHI8QVBJOjpPYmplY3Q+JiByZXN1bHQKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShkYXRhUmVmZXJlbmNlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBh
dXRvIHZlY3RvciA9IGRhdGFSZWZlcmVuY2UudmVjdG9yKCk7Ci0gICAgICAgIHJlc3VsdCA9IEFQ
STo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdCh2ZWN0b3IpOworICAgICAgICByZXN1bHQg
PSBBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoZGF0YVJlZmVyZW5jZS52ZWN0b3Io
KSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eS5jcHAKaW5kZXggY2ZhZjY4NzAzZDc4NGI0YjljMTQ0NTFjY2RmMGZkOGVkNWEz
ZWZkOS4uY2NlYjUzNGI1MGMxYTkxODMzYmNmZDk3M2Q5MDFhYTkwN2U3YTc2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwCkBAIC0xNzUsOCArMTc1LDcgQEAg
dm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6ZGlkUG9zdE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLAogICAgIGlmICghaGFuZGxlcikKICAgICAgICAgcmV0dXJu
OwogCi0gICAgYXV0byBidWZmZXIgPSBkYXRhUmVmZXJlbmNlLnZlY3RvcigpOwotICAgIFJlZlB0
cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gV2ViQ29yZTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlOjphZG9wdChidWZmZXIpOworICAgIFJlZlB0cjxXZWJDb3JlOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
OjphZG9wdChkYXRhUmVmZXJlbmNlLnZlY3RvcigpKTsKIAogICAgIGhhbmRsZXItPmNsaWVudCgp
LmRpZFBvc3RNZXNzYWdlKCpwYWdlLCAqZnJhbWUsICp2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI3YjliMDkyMWQ5MDcyOWE3ZmMzMGI0
Mzk4OTcxNWMxMjQyNTFkNzguLjc2NGJkOWU3NzdhYzIzNmRjNTEzY2Q5N2FmZTA1NDE0ZTgxOGY0
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC00NDYw
LDExICs0NDYwLDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzY3JpcHRWYWx1ZUNhbGxiYWNrKGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSwKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAorICAgIGlmIChkYXRhUmVmZXJlbmNlLmlzRW1wdHkoKSkgeworICAgICAgICBjYWxs
YmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKG51bGxwdHIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CiAgICAgZGF0YS5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKICAgICBkYXRhLmFwcGVu
ZChkYXRhUmVmZXJlbmNlLmRhdGEoKSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOwogCi0gICAgY2Fs
bGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShkYXRhLnNpemUoKSA/IEFQSTo6
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChkYXRhKS5nZXQoKSA6IDApOworICAgIFJlZlB0
cjxBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcmV0dXJuVmFsdWUgPSBBUEk6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoV1RGOjptb3ZlKGRhdGEpKTsKKyAgICBjYWxsYmFjay0+cGVy
Zm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKHJldHVyblZhbHVlLmdldCgpKTsKIH0KIAogdm9p
ZCBXZWJQYWdlUHJveHk6OmNvbXB1dGVkUGFnZXNDYWxsYmFjayhjb25zdCBWZWN0b3I8SW50UmVj
dD4mIHBhZ2VSZWN0cywgZG91YmxlIHRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgdWludDY0
X3QgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCmluZGV4
IGZkMGE5OGU4NDc1OTRjMzQyMDdhMjg1YmI2ZWMzMDU3ZmQ1ODM0OTUuLjg5OTRkYzgwZDBkNDJj
Yzg5ZWUyMWYxOTI5MTJlODI1NTBjZDliMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252
ZXJzaW9uLmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIHN0YXRpYyB2b2lkIGFwcGx5RnJhbWVTdGF0
ZShIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0sIGNvbnN0IEZyYW1lU3RhdGUmIGZyYW1lU3RhCiAK
ICAgICBpZiAoZnJhbWVTdGF0ZS5zdGF0ZU9iamVjdERhdGEpIHsKICAgICAgICAgVmVjdG9yPHVp
bnQ4X3Q+IHN0YXRlT2JqZWN0RGF0YSA9IGZyYW1lU3RhdGUuc3RhdGVPYmplY3REYXRhLnZhbHVl
KCk7Ci0gICAgICAgIGhpc3RvcnlJdGVtLnNldFN0YXRlT2JqZWN0KFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6YWRvcHQoc3RhdGVPYmplY3REYXRhKSk7CisgICAgICAgIGhpc3RvcnlJdGVtLnNldFN0
YXRlT2JqZWN0KFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoV1RGOjptb3ZlKHN0YXRlT2Jq
ZWN0RGF0YSkpKTsKICAgICB9CiAKICAgICBoaXN0b3J5SXRlbS5zZXREb2N1bWVudFNlcXVlbmNl
TnVtYmVyKGZyYW1lU3RhdGUuZG9jdW1lbnRTZXF1ZW5jZU51bWJlcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248840</attachid>
            <date>2015-03-17 03:22:23 -0700</date>
            <delta_ts>2015-03-17 13:37:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142634-20150317032500.patch</filename>
            <type>text/plain</type>
            <size>15884</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MTYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE1LTAzLTE3ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBTaW5rIHRoZSBWZWN0b3I8
dWludDhfdD4gYnVmZmVyIGludG8gdGhlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBjb25zdHJ1Y3Rv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjM0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSGF2ZSB0
aGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGNvbnN0cnVjdG9yIHRha2UgaW4gdGhlIFZlY3Rvcjx1
aW50OF90PiBidWZmZXIKKyAgICAgICAgdGhyb3VnaCBhbiBydmFsdWUgcmVmZXJlbmNlLCBhdm9p
ZGluZyB0aGUgY29weWluZyBpbnRvIHRoZSBtX2RhdGEgbWVtYmVyLgorICAgICAgICBIZWxwZXIg
c3RhdGljIG1ldGhvZHMgdGhhdCBpbnZva2UgdGhlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBjb25z
dHJ1Y3RvciBub3cKKyAgICAgICAgYWxzbyB1c2UgdGhlIHJ2YWx1ZSByZWZlcmVuY2UgZm9yIHRo
ZSBWZWN0b3Igb2JqZWN0LCBtb3ZpbmcgaXQgaW50byB0aGUKKyAgICAgICAgY29uc3RydWN0b3Iu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpudW1iZXJWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OnVuZGVmaW5lZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6bnVsbFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6OmRlc2VyaWFsaXplQnVmZmVyKToKKwogMjAxNS0wMy0xNyAg
WmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBV
c2UgYSBmb3J3YXJkaW5nIGhlYWRlciBmb3IgQU5HTEUncyBTaGFkZXJMYW5nLmggdG8gYXZvaWQg
cGlja2luZyB1cCBBTkdMRSdzIEVHTCBoZWFkZXJzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAkocmV2aXNpb24gMTgxNjMw
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxMywxMyArMzEzLDEzIEBAIERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlIGRlc2VyaWFsaXplSURCVmEKICAgICBpZiAocHJwQnVmZmVyKSB7CiAgICAgICAgIFZlY3Rv
cjx1aW50OF90PiB2YWx1ZTsKICAgICAgICAgdmFsdWUuYXBwZW5kKHBycEJ1ZmZlci0+ZGF0YSgp
LCBwcnBCdWZmZXItPnNpemUoKSk7Ci0gICAgICAgIHJldHVybiBkZXNlcmlhbGl6ZUlEQlZhbHVl
QnVmZmVyKHJlcXVlc3RTdGF0ZS0+ZXhlYygpLCB2YWx1ZSwga2V5SXNEZWZpbmVkKTsKKyAgICAg
ICAgcmV0dXJuIGRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIocmVxdWVzdFN0YXRlLT5leGVjKCks
IFdURjo6bW92ZSh2YWx1ZSksIGtleUlzRGVmaW5lZCk7CiAgICAgfQogCiAgICAgcmV0dXJuIERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKHJlcXVlc3RTdGF0ZS0+ZXhlYygpLT52bSgpLCBqc051bGwo
KSk7CiB9CiAKLURlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGRlc2VyaWFsaXplSURCVmFsdWVCdWZm
ZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyLCBi
b29sIGtleUlzRGVmaW5lZCkKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGRlc2VyaWFsaXplSURC
VmFsdWVCdWZmZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFZlY3Rvcjx1aW50OF90PiYmIGJ1ZmZl
ciwgYm9vbCBrZXlJc0RlZmluZWQpCiB7CiAgICAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0
LCB0aGVuIHRoZSB2YWx1ZSBtdXN0IGJlIHVuZGVmaW5lZCAoYXMgb3Bwb3NlZCB0byBudWxsKS4K
ICAgICBpZiAoIWtleUlzRGVmaW5lZCkgewpAQCAtMzMwLDcgKzMzMCw3IEBAIERlcHJlY2F0ZWQ6
OlNjcmlwdFZhbHVlIGRlc2VyaWFsaXplSURCVmEKIAogICAgIEpTVmFsdWUgcmVzdWx0OwogICAg
IGlmIChidWZmZXIuc2l6ZSgpKSB7Ci0gICAgICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IHNlcmlhbGl6ZWRWYWx1ZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdp
cmVCeXRlcyhidWZmZXIpOworICAgICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBz
ZXJpYWxpemVkVmFsdWUgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJlQnl0
ZXMoV1RGOjptb3ZlKGJ1ZmZlcikpOwogICAgICAgICByZXN1bHQgPSBzZXJpYWxpemVkVmFsdWUt
PmRlc2VyaWFsaXplKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgMCwgTm9uVGhy
b3dpbmcpOwogICAgIH0gZWxzZQogICAgICAgICByZXN1bHQgPSBqc051bGwoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmgJKHJl
dmlzaW9uIDE4MTYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdV
dGlsaXRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBQYXNzUmVmUHRyPElE
QktleT4gY3JlYXRlSURCS2V5RnJvbVNjcmlwCiBib29sIGNhbkluamVjdElEQktleUludG9TY3Jp
cHRWYWx1ZShET01SZXF1ZXN0U3RhdGUqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYs
IGNvbnN0IElEQktleVBhdGgmKTsKIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGRlc2VyaWFsaXpl
SURCVmFsdWUoRE9NUmVxdWVzdFN0YXRlKiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+KTsKIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIo
RE9NUmVxdWVzdFN0YXRlKiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBib29sIGtleUlzRGVm
aW5lZCk7Ci1XRUJDT1JFX0VYUE9SVCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6
ZUlEQlZhbHVlQnVmZmVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jiwg
Ym9vbCBrZXlJc0RlZmluZWQpOworV0VCQ09SRV9FWFBPUlQgRGVwcmVjYXRlZDo6U2NyaXB0VmFs
dWUgZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihKU0M6OkV4ZWNTdGF0ZSosIFZlY3Rvcjx1aW50
OF90PiYmLCBib29sIGtleUlzRGVmaW5lZCk7CiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBpZGJL
ZXlUb1NjcmlwdFZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8SURCS2V5Pik7CiBQ
YXNzUmVmUHRyPElEQktleT4gc2NyaXB0VmFsdWVUb0lEQktleShET01SZXF1ZXN0U3RhdGUqLCBj
b25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBnZW5l
cmF0ZUluZGV4S2V5c0ZvclZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSURCSW5kZXhNZXRh
ZGF0YSYsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBvYmplY3RWYWx1ZSwgVmVjdG9y
PElEQktleURhdGE+JiBpbmRleEtleXMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCShyZXZpc2lvbiAxODE2MzAp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNjAwLDI3ICsyNjAwLDIyIEBAIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6flNlcmlhbGl6ZWRTY3JpcHQKIHsKIH0KIAotU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWUoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCi0gICAg
OiBtX2RhdGEoYnVmZmVyKQorU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyKQorICAgIDogbV9kYXRhKFdURjo6bW92ZShi
dWZmZXIpKQogewogfQogCi1TZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZShWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKK1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90PiYmIGJ1ZmZlciwgVmVjdG9yPFN0cmlu
Zz4mIGJsb2JVUkxzKQorICAgIDogbV9kYXRhKFdURjo6bW92ZShidWZmZXIpKQogewotICAgIG1f
ZGF0YS5zd2FwKGJ1ZmZlcik7Ci19Ci0KLVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyLCBWZWN0b3I8U3RyaW5nPiYgYmxv
YlVSTHMpCi17Ci0gICAgbV9kYXRhLnN3YXAoYnVmZmVyKTsKICAgICBmb3IgKGF1dG8mIHN0cmlu
ZyA6IGJsb2JVUkxzKQogICAgICAgICBhZGRCbG9iVVJMKHN0cmluZyk7CiB9CiAKLVNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90PiYgYnVm
ZmVyLCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZl
ckNvbnRlbnRzQXJyYXk+IGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkKLSAgICA6IG1fYXJyYXlC
dWZmZXJDb250ZW50c0FycmF5KFdURjo6bW92ZShhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKQor
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4
X3Q+JiYgYnVmZmVyLCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0cjxB
cnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkKKyAgICA6
IG1fZGF0YShXVEY6Om1vdmUoYnVmZmVyKSkKKyAgICAsIG1fYXJyYXlCdWZmZXJDb250ZW50c0Fy
cmF5KFdURjo6bW92ZShhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKQogewotICAgIG1fZGF0YS5z
d2FwKGJ1ZmZlcik7CiAgICAgZm9yIChhdXRvJiBzdHJpbmcgOiBibG9iVVJMcykKICAgICAgICAg
YWRkQmxvYlVSTChzdHJpbmcpOwogfQpAQCAtMjY3Myw3ICsyNjY4LDcgQEAgUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbAogICAgIGlmICghc2VyaWFsaXphdGlvbkRpZENv
bXBsZXRlU3VjY2Vzc2Z1bGx5KGNvZGUpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGJ1ZmZlciwgYmxvYlVSTHMsIFdU
Rjo6bW92ZShhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGOjptb3ZlKGJ1ZmZlciksIGJsb2JVUkxzLCBX
VEY6Om1vdmUoYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSkpOwogfQogCiBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCkBAIC0yNjgxLDcgKzI2NzYsNyBAQCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKICAgICBp
ZiAoIUNsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKHN0cmluZywgYnVmZmVyKSkKICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUo
YnVmZmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUo
V1RGOjptb3ZlKGJ1ZmZlcikpKTsKIH0KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpA
QCAtMjY4OSwxNCArMjY4NCwxNCBAQCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
U2VyaWFsCiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKICAgICBDbG9uZVNlcmlhbGl6
ZXI6OnNlcmlhbGl6ZU51bWJlcih2YWx1ZSwgYnVmZmVyKTsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXVEY6Om1vdmUoYnVmZmVyKSkpOwogfQogCiBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjp1bmRl
ZmluZWRWYWx1ZSgpCiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKICAgICBDbG9uZVNl
cmlhbGl6ZXI6OnNlcmlhbGl6ZVVuZGVmaW5lZChidWZmZXIpOwotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGJ1ZmZlcikpOworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURjo6bW92ZShidWZmZXIpKSk7CiB9CiAjZW5k
aWYKIApAQCAtMjc0OCw4ICsyNzQzLDcgQEAgSlNWYWx1ZVJlZiBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmRlc2VyaQogCiBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpudWxsVmFsdWUoKQogewotICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVmZmVyKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVp
bnQ4X3Q+KCkpKTsKIH0KIAogdm9pZCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om1heWJlVGhyb3dF
eGNlcHRpb25JZlNlcmlhbGl6YXRpb25GYWlsZWQoRXhlY1N0YXRlKiBleGVjLCBTZXJpYWxpemF0
aW9uUmV0dXJuQ29kZSBjb2RlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHJldmlzaW9uIDE4MTYzMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC03MCw5ICs3MCw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSwgTWVzc2FnZVBvcnRBcnJheSosIEFycmF5QnVmZmVyQXJyYXkqLCBTZXJp
YWxpemF0aW9uRXJyb3JNb2RlID0gVGhyb3dpbmcpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5n
Jik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBhZG9wdChW
ZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IGFkb3B0KFZlY3Rvcjx1aW50OF90PiYmIGJ1ZmZlcikKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGJ1ZmZlcikpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXVEY6Om1v
dmUoYnVmZmVyKSkpOwogICAgIH0KIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gbnVsbFZhbHVlKCk7CkBAIC05Nyw5ICs5Nyw5IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHVuZGVmaW5lZFZhbHVlKCk7
CiAjZW5kaWYKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
Y3JlYXRlRnJvbVdpcmVCeXRlcyhjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEpCisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGVGcm9tV2lyZUJ5dGVz
KFZlY3Rvcjx1aW50OF90PiYmIGRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShkYXRhKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURjo6bW92ZShkYXRhKSkpOwogICAgIH0KICAg
ICBjb25zdCBWZWN0b3I8dWludDhfdD4mIHRvV2lyZUJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9k
YXRhOyB9CiAKQEAgLTExMiwxMCArMTEyLDkgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gdHJhbnNmZXJBcnJheUJ1ZmZlcnMo
SlNDOjpFeGVjU3RhdGUqLCBBcnJheUJ1ZmZlckFycmF5JiwgU2VyaWFsaXphdGlvblJldHVybkNv
ZGUmKTsKICAgICB2b2lkIGFkZEJsb2JVUkwoY29uc3QgU3RyaW5nJik7CiAKLSAgICBTZXJpYWxp
emVkU2NyaXB0VmFsdWUoY29uc3QgVmVjdG9yPHVuc2lnbmVkIGNoYXI+Jik7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYpOwot
ICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mLCBWZWN0b3I8
U3RyaW5nPiYgYmxvYlVSTHMpOwotICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5z
aWduZWQgY2hhcj4mLCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0cjxB
cnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxpemVk
U2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYpOworICAgIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJiwgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxz
KTsKKyAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYsIFZl
Y3RvcjxTdHJpbmc+JiBibG9iVVJMcywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVu
dHNBcnJheT4pOwogCiAgICAgVmVjdG9yPHVuc2lnbmVkIGNoYXI+IG1fZGF0YTsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBtX2FycmF5QnVmZmVyQ29udGVu
dHNBcnJheTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9u
IDE4MTYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjEzNyw3ICsyMTM3LDcgQEAgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IEludGVybgogewogICAgIFZlY3Rvcjx1aW50OF90PiBieXRlczsKICAgICBieXRlcy5h
cHBlbmQoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVy
LT5ieXRlTGVuZ3RoKCkpOwotICAgIHJldHVybiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0
KGJ5dGVzKTsKKyAgICByZXR1cm4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChXVEY6Om1v
dmUoYnl0ZXMpKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldFVzZXNPdmVybGF5U2Nyb2xsYmFy
cyhib29sIGVuYWJsZWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODE2MzApCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAx
NS0wMy0xNyAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAg
U2luayB0aGUgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlciBpbnRvIHRoZSBTZXJpYWxpemVkU2NyaXB0
VmFsdWUgY29uc3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0MjYzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVwZGF0ZSBBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoKSB0byB0
YWtlIGluIGEgVmVjdG9yPHVpbnQ4X3Q+CisgICAgICAgIHJ2YWx1ZSwgbW92aW5nIGl0IGludG8g
dGhlIFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoKSBjYWxsLgorCisgICAg
ICAgICogU2hhcmVkL0FQSS9BUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaDoKKyAgICAgICAgKEFQ
STo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdCk6CisgICAgICAgICogU2hhcmVkL1VzZXJE
YXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlckRhdGE6OmRlY29kZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmRpZFBvc3RN
ZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpzY3JpcHRWYWx1ZUNhbGxiYWNrKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjphcHBseUZyYW1lU3RhdGUpOiBDb3B5IHRoZSBjb25zdCBzdGF0ZU9iamVj
dERhdGEgdmFsdWUgYW5kIG1vdmUKKyAgICAgICAgaXQgaW50byB0aGUgU2VyaWFsaXplZFNjcmlw
dFZhbHVlOjphZG9wdCgpIGNhbGwuCisKIDIwMTUtMDMtMTcgIFphbiBEb2JlcnNlayAgPHpkb2Jl
cnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXSzJdIFVzZSBDKysgbGFtYmRhcyBpbiBJUEM6
OkNvbm5lY3Rpb24KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJEYXRhLmNwcAkocmV2aXNpb24g
MTgxNjMwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTMwLDggKzUzMCw3IEBAIGJvb2wgVXNlckRhdGE6OmRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2QKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhUmVmZXJlbmNlKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBhdXRvIHZlY3RvciA9IGRhdGFSZWZl
cmVuY2UudmVjdG9yKCk7Ci0gICAgICAgIHJlc3VsdCA9IEFQSTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlOjphZG9wdCh2ZWN0b3IpOworICAgICAgICByZXN1bHQgPSBBUEk6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTo6YWRvcHQoZGF0YVJlZmVyZW5jZS52ZWN0b3IoKSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCShyZXZpc2lvbiAxODE2MzApCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC00OSw5ICs0OSw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJp
YWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFZhbHVlLmdldCgpKSk7CiAgICAgfQogICAgIAot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9y
PHVpbnQ4X3Q+JiBidWZmZXIpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBhZG9wdChWZWN0b3I8dWludDhfdD4mJiBidWZmZXIpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXZWJDb3JlOjpTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OmFkb3B0KGJ1ZmZlcikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
OjphZG9wdChXVEY6Om1vdmUoYnVmZmVyKSkpKTsKICAgICB9CiAgICAgCiAgICAgSlNWYWx1ZVJl
ZiBkZXNlcmlhbGl6ZShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlz
aW9uIDE4MTYzMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NDYwLDExICs0NDYwLDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpzY3JpcHRWYWx1ZUNhbGxiYWNrKGMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlm
IChkYXRhUmVmZXJlbmNlLmlzRW1wdHkoKSkgeworICAgICAgICBjYWxsYmFjay0+cGVyZm9ybUNh
bGxiYWNrV2l0aFJldHVyblZhbHVlKG51bGxwdHIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CiAgICAgZGF0YS5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKICAgICBkYXRhLmFwcGVuZChkYXRhUmVmZXJlbmNl
LmRhdGEoKSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOwogCi0gICAgY2FsbGJhY2stPnBlcmZvcm1D
YWxsYmFja1dpdGhSZXR1cm5WYWx1ZShkYXRhLnNpemUoKSA/IEFQSTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlOjphZG9wdChkYXRhKS5nZXQoKSA6IDApOworICAgIFJlZlB0cjxBUEk6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gcmV0dXJuVmFsdWUgPSBBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
YWRvcHQoV1RGOjptb3ZlKGRhdGEpKTsKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0
aFJldHVyblZhbHVlKHJldHVyblZhbHVlLmdldCgpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6
OmNvbXB1dGVkUGFnZXNDYWxsYmFjayhjb25zdCBWZWN0b3I8SW50UmVjdD4mIHBhZ2VSZWN0cywg
ZG91YmxlIHRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgdWludDY0X3QgY2FsbGJhY2tJRCkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcAkocmV2aXNp
b24gMTgxNjMwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDggKzE3
NSw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmRpZFAKICAgICBpZiAo
IWhhbmRsZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gYnVmZmVyID0gZGF0YVJlZmVy
ZW5jZS52ZWN0b3IoKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiB2YWx1ZSA9IFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoYnVmZmVyKTsK
KyAgICBSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSA9IFdlYkNv
cmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoZGF0YVJlZmVyZW5jZS52ZWN0b3IoKSk7
CiAKICAgICBoYW5kbGVyLT5jbGllbnQoKS5kaWRQb3N0TWVzc2FnZSgqcGFnZSwgKmZyYW1lLCAq
dmFsdWUpOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCShy
ZXZpc2lvbiAxODE2MzApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsNyAr
MTUzLDcgQEAgc3RhdGljIHZvaWQgYXBwbHlGcmFtZVN0YXRlKEhpc3RvcnlJdGVtJgogCiAgICAg
aWYgKGZyYW1lU3RhdGUuc3RhdGVPYmplY3REYXRhKSB7CiAgICAgICAgIFZlY3Rvcjx1aW50OF90
PiBzdGF0ZU9iamVjdERhdGEgPSBmcmFtZVN0YXRlLnN0YXRlT2JqZWN0RGF0YS52YWx1ZSgpOwot
ICAgICAgICBoaXN0b3J5SXRlbS5zZXRTdGF0ZU9iamVjdChTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmFkb3B0KHN0YXRlT2JqZWN0RGF0YSkpOworICAgICAgICBoaXN0b3J5SXRlbS5zZXRTdGF0ZU9i
amVjdChTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KFdURjo6bW92ZShzdGF0ZU9iamVjdERh
dGEpKSk7CiAgICAgfQogCiAgICAgaGlzdG9yeUl0ZW0uc2V0RG9jdW1lbnRTZXF1ZW5jZU51bWJl
cihmcmFtZVN0YXRlLmRvY3VtZW50U2VxdWVuY2VOdW1iZXIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248865</attachid>
            <date>2015-03-17 13:37:40 -0700</date>
            <delta_ts>2016-01-03 03:36:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142634-20150317213708.patch</filename>
            <type>text/plain</type>
            <size>18141</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUwYTdmODUwYzExMjlk
MDRhNmMyYWFjZTJhOWI0ZDE3OWU1NzU5Mi4uNDNhYzU3MTJlODI1ZGE3YzIyY2E3MjRlNzU3ZWJi
NWE2NzEwZWU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTAzLTE3ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBTaW5rIHRoZSBWZWN0
b3I8dWludDhfdD4gYnVmZmVyIGludG8gdGhlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBjb25zdHJ1
Y3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
NjM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSGF2
ZSB0aGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGNvbnN0cnVjdG9yIHRha2UgaW4gdGhlIFZlY3Rv
cjx1aW50OF90PiBidWZmZXIKKyAgICAgICAgdGhyb3VnaCBhbiBydmFsdWUgcmVmZXJlbmNlLCBh
dm9pZGluZyB0aGUgY29weWluZyBpbnRvIHRoZSBtX2RhdGEgbWVtYmVyLgorICAgICAgICBIZWxw
ZXIgc3RhdGljIG1ldGhvZHMgdGhhdCBpbnZva2UgdGhlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBj
b25zdHJ1Y3RvciBub3cKKyAgICAgICAgYWxzbyB1c2UgdGhlIHJ2YWx1ZSByZWZlcmVuY2UgZm9y
IHRoZSBWZWN0b3Igb2JqZWN0LCBtb3ZpbmcgaXQgaW50byB0aGUKKyAgICAgICAgY29uc3RydWN0
b3IuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpudW1iZXJWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVk
U2NyaXB0VmFsdWU6OnVuZGVmaW5lZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6bnVsbFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmRlc2VyaWFsaXplQnVmZmVyKToKKwogMjAxNS0wMy0x
NyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS10gV2ViS2l0RE9NIG9iamVjdHMgbGVha2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDllYWE2NzU0MTA1
NWE4YmE0OWVlMWE1M2E1ZmIxOWQ2NDYyYzI1YmMuLmM3NDIxNjk0MjBkYzJjNzRjNWRjZTUyNmM3
MGRjMWU5NmU1OTMzN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOCBAQAogMjAxNS0wMy0xNyAg
WmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKKyAgICAgICAgU2luayB0aGUg
VmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlciBpbnRvIHRoZSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgY29u
c3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0MjYzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSBBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoKSB0byB0YWtlIGluIGEg
VmVjdG9yPHVpbnQ4X3Q+CisgICAgICAgIHJ2YWx1ZSwgbW92aW5nIGl0IGludG8gdGhlIFdlYkNv
cmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoKSBjYWxsLgorCisgICAgICAgICogRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3Rv
cmVTUUxpdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdT
dG9yZVNRTGl0ZTo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
YWRvcHQpOgorICAgICAgICAqIFNoYXJlZC9Vc2VyRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJD
b250ZW50Q29udHJvbGxlclByb3h5OjpkaWRQb3N0TWVzc2FnZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2Ny
aXB0VmFsdWVDYWxsYmFjayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9T
ZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6YXBwbHlGcmFtZVN0
YXRlKToKKworMjAxNS0wMy0xNyAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+
CisKICAgICAgICAgW1dLMl0gVXNlIEMrKyBsYW1iZGFzIGluIElQQzo6Q29ubmVjdGlvbgogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MDE4CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAK
aW5kZXggYmI1MDE4YzE3OTkyZDYwZDJlZjI0YmZlZDY4MTBiMjI0NzE3MjcxNi4uMGEyNzc2NGI4
ZDVjMjIwOTgzNjRjMGZjOGQyZGY4MjAzMGJmZDYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKQEAgLTMxMywxMyArMzEzLDEz
IEBAIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIoRE9N
UmVxdWVzdFN0YXRlKiByZXF1ZXN0U3RhdGUsCiAgICAgaWYgKHBycEJ1ZmZlcikgewogICAgICAg
ICBWZWN0b3I8dWludDhfdD4gdmFsdWU7CiAgICAgICAgIHZhbHVlLmFwcGVuZChwcnBCdWZmZXIt
PmRhdGEoKSwgcHJwQnVmZmVyLT5zaXplKCkpOwotICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVJ
REJWYWx1ZUJ1ZmZlcihyZXF1ZXN0U3RhdGUtPmV4ZWMoKSwgdmFsdWUsIGtleUlzRGVmaW5lZCk7
CisgICAgICAgIHJldHVybiBkZXNlcmlhbGl6ZUlEQlZhbHVlQnVmZmVyKHJlcXVlc3RTdGF0ZS0+
ZXhlYygpLCBXVEY6Om1vdmUodmFsdWUpLCBrZXlJc0RlZmluZWQpOwogICAgIH0KIAogICAgIHJl
dHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShyZXF1ZXN0U3RhdGUtPmV4ZWMoKS0+dm0oKSwg
anNOdWxsKCkpOwogfQogCi1EZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZh
bHVlQnVmZmVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1
ZmZlciwgYm9vbCBrZXlJc0RlZmluZWQpCitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBkZXNlcmlh
bGl6ZUlEQlZhbHVlQnVmZmVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBWZWN0b3I8dWludDhfdD4m
JiBidWZmZXIsIGJvb2wga2V5SXNEZWZpbmVkKQogewogICAgIC8vIElmIHRoZSBrZXkgZG9lc24n
dCBleGlzdCwgdGhlbiB0aGUgdmFsdWUgbXVzdCBiZSB1bmRlZmluZWQgKGFzIG9wcG9zZWQgdG8g
bnVsbCkuCiAgICAgaWYgKCFrZXlJc0RlZmluZWQpIHsKQEAgLTMzMCw3ICszMzAsNyBAQCBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlQnVmZmVyKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBjb25zdCBWZQogCiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgaWYgKGJ1ZmZl
ci5zaXplKCkpIHsKLSAgICAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFs
aXplZFZhbHVlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGVGcm9tV2lyZUJ5dGVzKGJ1
ZmZlcik7CisgICAgICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRW
YWx1ZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdpcmVCeXRlcyhXVEY6Om1v
dmUoYnVmZmVyKSk7CiAgICAgICAgIHJlc3VsdCA9IHNlcmlhbGl6ZWRWYWx1ZS0+ZGVzZXJpYWxp
emUoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCAwLCBOb25UaHJvd2luZyk7CiAg
ICAgfSBlbHNlCiAgICAgICAgIHJlc3VsdCA9IGpzTnVsbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5oCmluZGV4IGQwMDgzMjFlZDA4NzAz
N2YzOWU5ZjQyMzBmNTYzY2RhOWY2NDRmYWIuLjk0ZjU5ZWUxMzIzZTM1YjA5MTdmOWEyMTIzZjIx
ODFlMmJhMjdkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJp
bmRpbmdVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5k
aW5nVXRpbGl0aWVzLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0
ZUlEQktleUZyb21TY3JpcHRWYWx1ZUFuZEtleVBhdGgoSlNDOjpFeGVjU3RhdGUqLCBjb25zdAog
Ym9vbCBjYW5JbmplY3RJREJLZXlJbnRvU2NyaXB0VmFsdWUoRE9NUmVxdWVzdFN0YXRlKiwgY29u
c3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmLCBjb25zdCBJREJLZXlQYXRoJik7CiBEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1
ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlQnVmZmVyKERPTVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiwgYm9vbCBrZXlJc0RlZmluZWQpOwotV0VCQ09SRV9FWFBPUlQgRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIGJvb2wga2V5SXNEZWZpbmVkKTsKK1dFQkNPUkVf
RVhQT1JUIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIo
SlNDOjpFeGVjU3RhdGUqLCBWZWN0b3I8dWludDhfdD4mJiwgYm9vbCBrZXlJc0RlZmluZWQpOwog
RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgaWRiS2V5VG9TY3JpcHRWYWx1ZShET01SZXF1ZXN0U3Rh
dGUqLCBQYXNzUmVmUHRyPElEQktleT4pOwogUGFzc1JlZlB0cjxJREJLZXk+IHNjcmlwdFZhbHVl
VG9JREJLZXkoRE9NUmVxdWVzdFN0YXRlKiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUm
KTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2VuZXJhdGVJbmRleEtleXNGb3JWYWx1ZShKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmLCBjb25zdCBEZXByZWNhdGVkOjpTY3Jp
cHRWYWx1ZSYgb2JqZWN0VmFsdWUsIFZlY3RvcjxJREJLZXlEYXRhPiYgaW5kZXhLZXlzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwCmluZGV4IDc1N2VjZDkwYTZjYWIzNzg5MGM2MmFjNjgzMzJkM2M5OWZiNjM2MTcuLjBmMjI1
N2M4YzE1YTFhZjdjYzEyY2Q2NzE2MjBkZTFiZWU4NzI5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMjYwMCwy
NyArMjYwMCwyMiBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6On5TZXJpYWxpemVkU2NyaXB0VmFs
dWUoKQogewogfQogCi1TZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKLSAgICA6IG1fZGF0YShidWZmZXIpCitT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhf
dD4mJiBidWZmZXIpCisgICAgOiBtX2RhdGEoV1RGOjptb3ZlKGJ1ZmZlcikpCiB7CiB9CiAKLVNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90
PiYgYnVmZmVyKQorU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUo
VmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyLCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMpCisgICAg
OiBtX2RhdGEoV1RGOjptb3ZlKGJ1ZmZlcikpCiB7Ci0gICAgbV9kYXRhLnN3YXAoYnVmZmVyKTsK
LX0KLQotU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9y
PHVpbnQ4X3Q+JiBidWZmZXIsIFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcykKLXsKLSAgICBtX2Rh
dGEuc3dhcChidWZmZXIpOwogICAgIGZvciAoYXV0byYgc3RyaW5nIDogYmxvYlVSTHMpCiAgICAg
ICAgIGFkZEJsb2JVUkwoc3RyaW5nKTsKIH0KIAotU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIsIFZlY3RvcjxTdHJpbmc+
JiBibG9iVVJMcywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gYXJy
YXlCdWZmZXJDb250ZW50c0FycmF5KQotICAgIDogbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXko
V1RGOjptb3ZlKGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkpCitTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4mJiBidWZmZXIsIFZlY3Rv
cjxTdHJpbmc+JiBibG9iVVJMcywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNB
cnJheT4gYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KQorICAgIDogbV9kYXRhKFdURjo6bW92ZShi
dWZmZXIpKQorICAgICwgbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkoV1RGOjptb3ZlKGFycmF5
QnVmZmVyQ29udGVudHNBcnJheSkpCiB7Ci0gICAgbV9kYXRhLnN3YXAoYnVmZmVyKTsKICAgICBm
b3IgKGF1dG8mIHN0cmluZyA6IGJsb2JVUkxzKQogICAgICAgICBhZGRCbG9iVVJMKHN0cmluZyk7
CiB9CkBAIC0yNjczLDcgKzI2NjgsNyBAQCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLAogICAgIGlm
ICghc2VyaWFsaXphdGlvbkRpZENvbXBsZXRlU3VjY2Vzc2Z1bGx5KGNvZGUpKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVl
KGJ1ZmZlciwgYmxvYlVSTHMsIFdURjo6bW92ZShhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGOjptb3Zl
KGJ1ZmZlciksIGJsb2JVUkxzLCBXVEY6Om1vdmUoYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSkp
OwogfQogCiBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC0yNjgxLDcgKzI2NzYsNyBA
QCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBzdAogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7CiAg
ICAgaWYgKCFDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShzdHJpbmcsIGJ1ZmZlcikpCiAgICAg
ICAgIHJldHVybiAwOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZh
bHVlKGJ1ZmZlcikpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZh
bHVlKFdURjo6bW92ZShidWZmZXIpKSk7CiB9CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKQEAgLTI2ODksMTQgKzI2ODQsMTQgQEAgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVtYmVyVmFsdWUoZG91YmxlIHZhbHUKIHsKICAg
ICBWZWN0b3I8dWludDhfdD4gYnVmZmVyOwogICAgIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXpl
TnVtYmVyKHZhbHVlLCBidWZmZXIpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKGJ1ZmZlcikpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKFdURjo6bW92ZShidWZmZXIpKSk7CiB9CiAKIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnVuZGVmaW5lZFZhbHVlKCkK
IHsKICAgICBWZWN0b3I8dWludDhfdD4gYnVmZmVyOwogICAgIENsb25lU2VyaWFsaXplcjo6c2Vy
aWFsaXplVW5kZWZpbmVkKGJ1ZmZlcik7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxp
emVkU2NyaXB0VmFsdWUoYnVmZmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxp
emVkU2NyaXB0VmFsdWUoV1RGOjptb3ZlKGJ1ZmZlcikpKTsKIH0KICNlbmRpZgogCkBAIC0yNzQ4
LDggKzI3NDMsNyBAQCBKU1ZhbHVlUmVmIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVzZXJpYWxp
emUoSlNDb250ZXh0UmVmIGRlc3RpbmF0aW9uQ29udGV4dCwgSgogCiBQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpudWxsVmFsdWUoKQogewot
ICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJp
YWxpemVkU2NyaXB0VmFsdWUoYnVmZmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJp
YWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+KCkpKTsKIH0KIAogdm9pZCBTZXJpYWxp
emVkU2NyaXB0VmFsdWU6Om1heWJlVGhyb3dFeGNlcHRpb25JZlNlcmlhbGl6YXRpb25GYWlsZWQo
RXhlY1N0YXRlKiBleGVjLCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBjb2RlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAppbmRleCBk
MzY2YjMwNjdjMTI2YmVkNDBlMzlkN2ViYjZkODI2NGQ1ODkwOGJhLi40NTAwZGM0M2YwMmUxZjAw
ZjBlYTgwYjA1NGYyOWVmNzc0ZTU2NGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaApAQCAtNzAsOSArNzAsOSBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIE1lc3NhZ2VQb3J0QXJy
YXkqLCBBcnJheUJ1ZmZlckFycmF5KiwgU2VyaWFsaXphdGlvbkVycm9yTW9kZSA9IFRocm93aW5n
KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBhZG9wdChWZWN0b3I8dWlu
dDhfdD4mJiBidWZmZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGOjptb3ZlKGJ1ZmZlcikpKTsKICAgICB9CiAKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG51bGxWYWx1ZSgpOwpAQCAt
OTcsOSArOTcsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiB1bmRlZmluZWRWYWx1ZSgpOwogI2VuZGlmCiAKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZUZyb21XaXJlQnl0ZXMoY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBkYXRhKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gY3JlYXRlRnJvbVdpcmVCeXRlcyhWZWN0b3I8dWludDhfdD4mJiBkYXRhKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoZGF0
YSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShX
VEY6Om1vdmUoZGF0YSkpKTsKICAgICB9CiAgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB0b1dp
cmVCeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQogCkBAIC0xMTIsMTAgKzExMiw5IEBA
IHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRz
QXJyYXk+IHRyYW5zZmVyQXJyYXlCdWZmZXJzKEpTQzo6RXhlY1N0YXRlKiwgQXJyYXlCdWZmZXJB
cnJheSYsIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlJik7CiAgICAgdm9pZCBhZGRCbG9iVVJMKGNv
bnN0IFN0cmluZyYpOwogCi0gICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGNvbnN0IFZlY3Rvcjx1
bnNpZ25lZCBjaGFyPiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mKTsKLSAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVj
dG9yPHVuc2lnbmVkIGNoYXI+JiwgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzKTsKLSAgICBTZXJp
YWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiwgVmVjdG9yPFN0cmluZz4m
IGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5Pik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBj
aGFyPiYmKTsKKyAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+
JiYsIFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcyk7CisgICAgU2VyaWFsaXplZFNjcmlwdFZhbHVl
KFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYmLCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6
dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+KTsKIAogICAgIFZlY3Rvcjx1bnNp
Z25lZCBjaGFyPiBtX2RhdGE7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVu
dHNBcnJheT4gbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggMGU2ZjEyMTFkOGQ5NTFlMTA4ZmY3NGFhZWFkMDQ0MWM5MGY3NjJl
ZC4uYzgyMmYwZGVkZWVkMDE4ZjkyMTcwYzk2OGQzZDQ3Y2ZhMTUyNGE0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMjEzNyw3ICsyMTM3LDcgQEAgUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IEludGVybmFsczo6ZGVzZXJpYWxpemVCdWZmZXIoUGFzc1Jl
ZlB0cjxBcnJheUIKIHsKICAgICBWZWN0b3I8dWludDhfdD4gYnl0ZXM7CiAgICAgYnl0ZXMuYXBw
ZW5kKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+
Ynl0ZUxlbmd0aCgpKTsKLSAgICByZXR1cm4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChi
eXRlcyk7CisgICAgcmV0dXJuIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoV1RGOjptb3Zl
KGJ5dGVzKSk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnMo
Ym9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3Bw
IGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVl
SURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwCmluZGV4IDZhNjhhYWFlYjQ5Njg5YmEw
MzhmODZjMWQ5ZGUxMGY4NzEwNTNkMTMuLjQzZjMwOTY4OTkyYTgwZjdjNzVmM2NjZDg2MTllYjA2
YjFjZGJjYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJ
REJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAKQEAgLTc2Niw3ICs3NjYsNyBAQCBib29s
IFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpjcmVhdGVJbmRleChjb25zdCBJ
REJJZGVudGlmaWVyJiB0cmFucwogICAgICAgICBpZiAoIWxvY2tlcikKICAgICAgICAgICAgIGxv
Y2tlciA9IHN0ZDo6bWFrZV91bmlxdWU8SlNMb2NrSG9sZGVyPihtX3ZtLmdldCgpKTsKIAotICAg
ICAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWVC
dWZmZXIobV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgdmFsdWVCdWZmZXIsIHRydWUpOwor
ICAgICAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1ZSA9IGRlc2VyaWFsaXplSURCVmFs
dWVCdWZmZXIobV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgVmVjdG9yPHVpbnQ4X3Q+KHZh
bHVlQnVmZmVyKSwgdHJ1ZSk7CiAgICAgICAgIFZlY3RvcjxJREJLZXlEYXRhPiBpbmRleEtleXM7
CiAgICAgICAgIGdlbmVyYXRlSW5kZXhLZXlzRm9yVmFsdWUobV9nbG9iYWxPYmplY3QtPmdsb2Jh
bEV4ZWMoKSwgbWV0YWRhdGEsIHZhbHVlLCBpbmRleEtleXMpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9BUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaAppbmRleCBjYzA1
Nzg4ODRkNDU2YmJiM2U5ODRkMzhiMGUzMWM1NzQzODRkOTQxLi5iZjdkNWNlYjhmNzBhYzhmNWEx
NzhlOGFjYTRkZWQ2NmI4YmE5M2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTQ5LDkgKzQ5LDkgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShzZXJp
YWxpemVkVmFsdWUuZ2V0KCkpKTsKICAgICB9CiAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBhZG9wdChWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGFkb3B0KFZlY3Rvcjx1
aW50OF90PiYmIGJ1ZmZlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQo
YnVmZmVyKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZShXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KFdURjo6bW92ZShidWZm
ZXIpKSkpOwogICAgIH0KICAgICAKICAgICBKU1ZhbHVlUmVmIGRlc2VyaWFsaXplKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJE
YXRhLmNwcAppbmRleCBjZWFlY2QwNzg0MzY0ZDcxMjMxYmM5OWQ1MDE5NDkwMmZjYzhhZjUxLi41
YjRkZjczN2JkMjZlZjVjYTBhYTg2OTM2NWM3ZDEyZDU1YmJlMWEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Vc2VyRGF0YS5jcHAKQEAgLTUzMCw4ICs1MzAsNyBAQCBib29sIFVzZXJEYXRhOjpkZWNvZGUo
SVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHJlc3Vs
dAogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGFSZWZlcmVuY2UpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGF1dG8gdmVjdG9yID0gZGF0YVJlZmVyZW5jZS52
ZWN0b3IoKTsKLSAgICAgICAgcmVzdWx0ID0gQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFk
b3B0KHZlY3Rvcik7CisgICAgICAgIHJlc3VsdCA9IEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
OjphZG9wdChkYXRhUmVmZXJlbmNlLnZlY3RvcigpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcAppbmRleCBjZmFmNjg3
MDNkNzg0YjRiOWMxNDQ1MWNjZGYwZmQ4ZWQ1YTNlZmQ5Li5jY2ViNTM0YjUwYzFhOTE4MzNiY2Zk
OTczZDkwMWFhOTA3ZTdhNzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQ
cm94eS5jcHAKQEAgLTE3NSw4ICsxNzUsNyBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3h5OjpkaWRQb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAgICAg
aWYgKCFoYW5kbGVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGJ1ZmZlciA9IGRhdGFS
ZWZlcmVuY2UudmVjdG9yKCk7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gdmFsdWUgPSBXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KGJ1ZmZl
cik7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUgPSBX
ZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KGRhdGFSZWZlcmVuY2UudmVjdG9y
KCkpOwogCiAgICAgaGFuZGxlci0+Y2xpZW50KCkuZGlkUG9zdE1lc3NhZ2UoKnBhZ2UsICpmcmFt
ZSwgKnZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggMjdiOWIwOTIxZDkwNzI5YTdmYzMwYjQzOTg5NzE1YzEyNDI1MWQ3OC4uNzY0YmQ5ZTc3
N2FjMjM2ZGM1MTNjZDk3YWZlMDU0MTRlODE4ZjQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ0NjAsMTEgKzQ0NjAsMTcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnNjcmlwdFZhbHVlQ2FsbGJhY2soY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRh
UmVmZXJlbmNlLAogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKGRhdGFSZWZlcmVu
Y2UuaXNFbXB0eSgpKSB7CisgICAgICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0
dXJuVmFsdWUobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBWZWN0b3I8
dWludDhfdD4gZGF0YTsKICAgICBkYXRhLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZGF0YVJlZmVy
ZW5jZS5zaXplKCkpOwogICAgIGRhdGEuYXBwZW5kKGRhdGFSZWZlcmVuY2UuZGF0YSgpLCBkYXRh
UmVmZXJlbmNlLnNpemUoKSk7CiAKLSAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJl
dHVyblZhbHVlKGRhdGEuc2l6ZSgpID8gQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0
KGRhdGEpLmdldCgpIDogMCk7CisgICAgUmVmUHRyPEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiByZXR1cm5WYWx1ZSA9IEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChXVEY6Om1v
dmUoZGF0YSkpOworICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUo
cmV0dXJuVmFsdWUuZ2V0KCkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0ZWRQYWdl
c0NhbGxiYWNrKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcGFnZVJlY3RzLCBkb3VibGUgdG90YWxT
Y2FsZUZhY3RvckZvclByaW50aW5nLCB1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252
ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vz
c2lvblN0YXRlQ29udmVyc2lvbi5jcHAKaW5kZXggZmQwYTk4ZTg0NzU5NGMzNDIwN2EyODViYjZl
YzMwNTdmZDU4MzQ5NS4uODk5NGRjODBkMGQ0MmNjODllZTIxZjE5MjkxMmU4MjU1MGNkOWIxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNz
aW9uU3RhdGVDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCkBAIC0xNTMsNyArMTUzLDcg
QEAgc3RhdGljIHZvaWQgYXBwbHlGcmFtZVN0YXRlKEhpc3RvcnlJdGVtJiBoaXN0b3J5SXRlbSwg
Y29uc3QgRnJhbWVTdGF0ZSYgZnJhbWVTdGEKIAogICAgIGlmIChmcmFtZVN0YXRlLnN0YXRlT2Jq
ZWN0RGF0YSkgewogICAgICAgICBWZWN0b3I8dWludDhfdD4gc3RhdGVPYmplY3REYXRhID0gZnJh
bWVTdGF0ZS5zdGF0ZU9iamVjdERhdGEudmFsdWUoKTsKLSAgICAgICAgaGlzdG9yeUl0ZW0uc2V0
U3RhdGVPYmplY3QoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChzdGF0ZU9iamVjdERhdGEp
KTsKKyAgICAgICAgaGlzdG9yeUl0ZW0uc2V0U3RhdGVPYmplY3QoU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjphZG9wdChXVEY6Om1vdmUoc3RhdGVPYmplY3REYXRhKSkpOwogICAgIH0KIAogICAgIGhp
c3RvcnlJdGVtLnNldERvY3VtZW50U2VxdWVuY2VOdW1iZXIoZnJhbWVTdGF0ZS5kb2N1bWVudFNl
cXVlbmNlTnVtYmVyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268135</attachid>
            <date>2016-01-03 03:36:23 -0800</date>
            <delta_ts>2016-01-18 10:40:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142634-20160103033548.patch</filename>
            <type>text/plain</type>
            <size>19561</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE0NDhiNTgyYzk3Mzlm
ZTkzNWMzODY5MTM1NTQ1YjZmMzkyOTk5My4uYzExZTZmYjU3NjBiMTVkOTdmYzM3MzNhMjI1YTQ1
ZGM3ZTRiNzBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTAxLTAzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBTaW5rIHRoZSBWZWN0
b3I8dWludDhfdD4gYnVmZmVyIGludG8gdGhlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBjb25zdHJ1
Y3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
NjM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSGF2
ZSB0aGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGNvbnN0cnVjdG9yIHRha2UgaW4gdGhlIFZlY3Rv
cjx1aW50OF90PiBidWZmZXIKKyAgICAgICAgdGhyb3VnaCBhbiBydmFsdWUgcmVmZXJlbmNlLCBh
dm9pZGluZyB0aGUgY29weWluZyBpbnRvIHRoZSBtX2RhdGEgbWVtYmVyLiBUaGUKKyAgICAgICAg
dGhyZWUtcGFyYW1ldGVyIGNvbnN0cnVjdG9yIG5vdyB0YWtlcyBpbiB0aGUgVmVjdG9yPFN0cmlu
Zz4gYmxvYiBVUkwgb2JqZWN0CisgICAgICAgIHZpYSBjb25zdCByZWZlcmVuY2UsIGFuZCB0aGUg
c3RkOjp1bmlxdWVfcHRyPD4gb2JqZWN0IHZpYSBhIHJ2YWx1ZSByZWZlcmVuY2UuCisKKyAgICAg
ICAgQWRqdXN0IGFsbCB0aGUgY2FsbCBzaXRlcyBhbmQgYWZmZWN0ZWQgY29kZSB0byBub3cgZWl0
aGVyIG1vdmUgb3IgY29weSBhCisgICAgICAgIG5vbi1tb3ZhYmxlIG9iamVjdCBpbnRvIHRoZSBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUgY29uc3RydWN0b3Igb3IgdGhlIGhlbHBlcgorICAgICAgICBt
ZXRob2RzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtLSBubyBjaGFuZ2UgaW4gYmVoYXZpb3Iu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmRlc2VyaWFsaXplSURCVmFsdWVEYXRhVG9KU1ZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OmRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
aWRiVmFsdWVEYXRhVG9KU1ZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9JREJCaW5kaW5n
VXRpbGl0aWVzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVtYmVy
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp1bmRlZmlu
ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bGxW
YWx1ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjpkZXNlcmlhbGl6ZUJ1ZmZlcik6CisKIDIwMTUtMTItMzEgIEFuZHkgRXN0ZXMgIDxhZXN0
ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgV1RGOjptb3ZlIHdpdGggV1RGTW92ZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IGZmNDIwNGNjZWE5NWQ1YzUxOTU2MjkyNDc0MmRmMDU3NTBhMTM5ZTcuLjE4
Yzg2YTBjNjM3MjI1NjNkZmM1ZTk4NzVjYWYyYjA4NTJmMzZkNjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNi0wMS0wMyAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5j
b20+CisKKyAgICAgICAgU2luayB0aGUgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlciBpbnRvIHRoZSBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUgY29uc3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjYzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6YWRvcHQoKSB0byB0YWtlIGluIGEgVmVjdG9yPHVpbnQ4X3Q+CisgICAgICAgIHJ2YWx1ZSwg
bW92aW5nIGl0IGludG8gdGhlIFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQo
KSBjYWxsLgorCisgICAgICAgIFVwZGF0ZSBvdGhlciBwbGFjZXMgdGhhdCBhcmUgYWZmZWN0ZWQg
YnkgdGhlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBjaGFuZ2VzLgorCisgICAgICAgICogRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVT
UUxpdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9y
ZVNRTGl0ZTo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRv
cHQpOgorICAgICAgICAqIFNoYXJlZC9Vc2VyRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5OjpkaWRQb3N0TWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2NyaXB0
VmFsdWVDYWxsYmFjayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNz
aW9uU3RhdGVDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6YXBwbHlGcmFtZVN0YXRl
KToKKwogMjAxNS0xMi0zMSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVwbGFjZSBXVEY6Om1vdmUgd2l0aCBXVEZNb3ZlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCmluZGV4IGJkYTU0NjIwZTA2Njdm
MzBjZmMxMzAzZGI5MTc5OWY4Yzc0MTVmY2QuLmYxMDJjYzdmZmVkYzc4YTAyZTFhOWI1Y2YzMjBl
YzQ2NzhhMzYzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJp
bmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJp
bmRpbmdVdGlsaXRpZXMuY3BwCkBAIC00NDgsNyArNDQ4LDcgQEAgSlNDOjpKU1ZhbHVlIGRlc2Vy
aWFsaXplSURCVmFsdWVEYXRhVG9KU1ZhbHVlKEpTQzo6RXhlY1N0YXRlJiBleGVjLCBjb25zdCBU
aHJlYWQKICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEgPSAqdmFsdWVEYXRhLmRhdGEo
KTsKICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICBpZiAoZGF0YS5zaXplKCkpIHsKLSAgICAgICAg
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFZhbHVlID0gU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpjcmVhdGVGcm9tV2lyZUJ5dGVzKGRhdGEpOworICAgICAgICBSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkVmFsdWUgPSBTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OmNyZWF0ZUZyb21XaXJlQnl0ZXMoVmVjdG9yPHVpbnQ4X3Q+KGRhdGEpKTsKIAogICAg
ICAgICBleGVjLnZtKCkuYXBpTG9jaygpLmxvY2soKTsKICAgICAgICAgcmVzdWx0ID0gc2VyaWFs
aXplZFZhbHVlLT5kZXNlcmlhbGl6ZSgmZXhlYywgZXhlYy5sZXhpY2FsR2xvYmFsT2JqZWN0KCks
IDAsIE5vblRocm93aW5nKTsKQEAgLTQ2NCwyMiArNDY0LDIyIEBAIERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlIGRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIoRE9NUmVxdWVzdFN0YXRlKiByZXF1ZXN0
U3RhdGUsCiAgICAgaWYgKHBycEJ1ZmZlcikgewogICAgICAgICBWZWN0b3I8dWludDhfdD4gdmFs
dWU7CiAgICAgICAgIHZhbHVlLmFwcGVuZChwcnBCdWZmZXItPmRhdGEoKSwgcHJwQnVmZmVyLT5z
aXplKCkpOwotICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihyZXF1ZXN0
U3RhdGUtPmV4ZWMoKSwgdmFsdWUsIGtleUlzRGVmaW5lZCk7CisgICAgICAgIHJldHVybiBkZXNl
cmlhbGl6ZUlEQlZhbHVlQnVmZmVyKHJlcXVlc3RTdGF0ZS0+ZXhlYygpLCBXVEZNb3ZlKHZhbHVl
KSwga2V5SXNEZWZpbmVkKTsKICAgICB9CiAKICAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUocmVxdWVzdFN0YXRlLT5leGVjKCktPnZtKCksIGpzTnVsbCgpKTsKIH0KIAotc3RhdGlj
IEpTVmFsdWUgaWRiVmFsdWVEYXRhVG9KU1ZhbHVlKEpTQzo6RXhlY1N0YXRlJiBleGVjLCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKK3N0YXRpYyBKU1ZhbHVlIGlkYlZhbHVlRGF0YVRv
SlNWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYgZXhlYywgVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyKQog
ewogICAgIGlmIChidWZmZXIuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAK
LSAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkVmFsdWUgPSBTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJlQnl0ZXMoYnVmZmVyKTsKKyAgICBSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkVmFsdWUgPSBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJlQnl0ZXMoV1RGTW92ZShidWZmZXIpKTsKICAgICByZXR1
cm4gc2VyaWFsaXplZFZhbHVlLT5kZXNlcmlhbGl6ZSgmZXhlYywgZXhlYy5sZXhpY2FsR2xvYmFs
T2JqZWN0KCksIDAsIE5vblRocm93aW5nKTsKIH0KIAotRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUg
ZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBidWZmZXIsIGJvb2wga2V5SXNEZWZpbmVkKQorRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
VmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyLCBib29sIGtleUlzRGVmaW5lZCkKIHsKICAgICBBU1NF
UlQoZXhlYyk7CiAKQEAgLTQ5MCw3ICs0OTAsNyBAQCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBk
ZXNlcmlhbGl6ZUlEQlZhbHVlQnVmZmVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBWZQog
ICAgICAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwganNVbmRl
ZmluZWQoKSk7CiAgICAgfQogCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBpZGJWYWx1ZURhdGFUb0pT
VmFsdWUoKmV4ZWMsIGJ1ZmZlcik7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBpZGJWYWx1ZURhdGFU
b0pTVmFsdWUoKmV4ZWMsIFdURk1vdmUoYnVmZmVyKSk7CiAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6
OlNjcmlwdFZhbHVlKGV4ZWMtPnZtKCksIHJlc3VsdCk7CiB9CiAKQEAgLTQ5OSw3ICs0OTksNyBA
QCBKU1ZhbHVlIGlkYlZhbHVlRGF0YVRvSlNWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYgZXhlYywgY29u
c3QgVGhyZWFkU2FmZURhdGFCdWZmZXImCiAgICAgaWYgKCF2YWx1ZURhdGEuZGF0YSgpKQogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAotICAgIHJldHVybiBpZGJWYWx1ZURhdGFUb0pT
VmFsdWUoZXhlYywgKnZhbHVlRGF0YS5kYXRhKCkpOworICAgIHJldHVybiBpZGJWYWx1ZURhdGFU
b0pTVmFsdWUoZXhlYywgVmVjdG9yPHVpbnQ4X3Q+KCp2YWx1ZURhdGEuZGF0YSgpKSk7CiB9CiAK
IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGlkYktleVRvU2NyaXB0VmFsdWUoRE9NUmVxdWVzdFN0
YXRlKiByZXF1ZXN0U3RhdGUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmgKaW5kZXggMTkzYjkxM2Uy
ZjE1YTI3NGU1MTVkMzc1M2E0NTk0MzNlZjc2ODc3Ni4uMDlmNTM0NDdiN2IzM2VlZGNhOWZmZWZi
NjFkMWY2YmFiN2FiZGQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SURCQmluZGluZ1V0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lE
QkJpbmRpbmdVdGlsaXRpZXMuaApAQCAtNjAsNyArNjAsNyBAQCBib29sIGNhbkluamVjdElEQktl
eUludG9TY3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IEpTQzo6SlNWYWx1ZSYsIGNv
bnN0CiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlKERPTVJlcXVl
c3RTdGF0ZSosIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiBEZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlRGF0YShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlRGF0YSk7CiBEZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlQnVmZmVyKERPTVJlcXVlc3RTdGF0ZSos
IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgYm9vbCBrZXlJc0RlZmluZWQpOwotV0VCQ09SRV9F
WFBPUlQgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIGJvb2wga2V5SXNEZWZpbmVk
KTsKK1dFQkNPUkVfRVhQT1JUIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGRlc2VyaWFsaXplSURC
VmFsdWVCdWZmZXIoSlNDOjpFeGVjU3RhdGUqLCBWZWN0b3I8dWludDhfdD4mJiwgYm9vbCBrZXlJ
c0RlZmluZWQpOwogCiBKU0M6OkpTVmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZURhdGFUb0pTVmFs
dWUoSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWVEYXRh
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5jcHAKaW5kZXggMmYzZjEyMTVhMTVjZjU2MDFmOWRmYzE3OTEwMTUyMzhmNjQ3MjFk
Yi4uNzAxNjJiM2UyOTAyZDJhYjJlNjJjNjc3MzI4NzgwOWFmYTNmYjRiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBA
IC0yNTk1LDI3ICsyNTk1LDIyIEBAIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6flNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSgpCiB7CiB9CiAKLVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyKQotICAgIDogbV9kYXRhKGJ1
ZmZlcikKK1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rv
cjx1aW50OF90PiYmIGJ1ZmZlcikKKyAgICA6IG1fZGF0YShXVEZNb3ZlKGJ1ZmZlcikpCiB7CiB9
CiAKLVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1
aW50OF90PiYgYnVmZmVyKQorU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxv
YlVSTHMpCisgICAgOiBtX2RhdGEoV1RGTW92ZShidWZmZXIpKQogewotICAgIG1fZGF0YS5zd2Fw
KGJ1ZmZlcik7Ci19Ci0KLVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlKFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyLCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMpCi17
Ci0gICAgbV9kYXRhLnN3YXAoYnVmZmVyKTsKICAgICBmb3IgKGF1dG8mIHN0cmluZyA6IGJsb2JV
UkxzKQogICAgICAgICBhZGRCbG9iVVJMKHN0cmluZyk7CiB9CiAKLVNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyLCBWZWN0
b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRz
QXJyYXk+IGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkKLSAgICA6IG1fYXJyYXlCdWZmZXJDb250
ZW50c0FycmF5KFdURk1vdmUoYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSkKK1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90PiYmIGJ1ZmZl
ciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlC
dWZmZXJDb250ZW50c0FycmF5PiYmIGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkKKyAgICA6IG1f
ZGF0YShXVEZNb3ZlKGJ1ZmZlcikpCisgICAgLCBtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheShX
VEZNb3ZlKGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkpCiB7Ci0gICAgbV9kYXRhLnN3YXAoYnVm
ZmVyKTsKICAgICBmb3IgKGF1dG8mIHN0cmluZyA6IGJsb2JVUkxzKQogICAgICAgICBhZGRCbG9i
VVJMKHN0cmluZyk7CiB9CkBAIC0yNjY2LDcgKzI2NjEsNyBAQCBSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTVgogICAgIGlmICghc2VyaWFsaXphdGlvbkRpZENvbXBsZXRlU3VjY2Vzc2Z1bGx5KGNvZGUp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIsIGJsb2JVUkxzLCBXVEZNb3ZlKGFycmF5QnVmZmVy
Q29udGVudHNBcnJheSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2Ny
aXB0VmFsdWUoV1RGTW92ZShidWZmZXIpLCBibG9iVVJMcywgV1RGTW92ZShhcnJheUJ1ZmZlckNv
bnRlbnRzQXJyYXkpKSk7CiB9CiAKIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQpAQCAtMjY3NCw3
ICsyNjY5LDcgQEAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcKICAgICBWZWN0b3I8dWludDhfdD4g
YnVmZmVyOwogICAgIGlmICghQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUoc3RyaW5nLCBidWZm
ZXIpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVmZmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1vdmUoYnVmZmVyKSkpOwogfQogCiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCkBAIC0yNjgyLDE0ICsyNjc3LDE0IEBAIFJlZjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVtYmVyVmFsdWUoZG91YmxlIHZh
bHVlKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7CiAgICAgQ2xvbmVTZXJpYWxpemVy
OjpzZXJpYWxpemVOdW1iZXIodmFsdWUsIGJ1ZmZlcik7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGJ1ZmZlcikpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXVEZNb3ZlKGJ1ZmZlcikpKTsKIH0KIAogUmVmPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjp1bmRlZmluZWRWYWx1
ZSgpCiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKICAgICBDbG9uZVNlcmlhbGl6ZXI6
OnNlcmlhbGl6ZVVuZGVmaW5lZChidWZmZXIpOwotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGTW92ZShidWZmZXIpKSk7CiB9CiAjZW5kaWYKIApAQCAt
Mjc0MSw4ICsyNzM2LDcgQEAgSlNWYWx1ZVJlZiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2Vy
aWFsaXplKEpTQ29udGV4dFJlZiBkZXN0aW5hdGlvbkNvbnRleHQsIEoKIAogUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpudWxsVmFsdWUoKQogewotICAg
IFZlY3Rvcjx1aW50OF90PiBidWZmZXI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFs
aXplZFNjcmlwdFZhbHVlKGJ1ZmZlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4oKSkpOwogfQogCiB2b2lkIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6bWF5YmVUaHJvd0V4Y2VwdGlvbklmU2VyaWFsaXphdGlvbkZhaWxlZChF
eGVjU3RhdGUqIGV4ZWMsIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIGNvZGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCmluZGV4IDgx
ZDYwMGY1NmY1MjYyODczMTlkM2MyYjZiODhiNjhlM2VkYTkxM2EuLjY5Zjk1NjQwY2EzZmM3Zjhj
NGYwODY4MjVlYTY3MDQzZDdmMWJmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCkBAIC02OSw5ICs2OSw5IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
Y3JlYXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBNZXNzYWdlUG9ydEFycmF5Kiwg
QXJyYXlCdWZmZXJBcnJheSosIFNlcmlhbGl6YXRpb25FcnJvck1vZGUgPSBUaHJvd2luZyk7CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyBSZWY8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBhZG9wdChWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKKyAgICBzdGF0aWMgUmVmPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGJ1ZmZl
cikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUo
V1RGTW92ZShidWZmZXIpKSk7CiAgICAgfQogCiAgICAgc3RhdGljIFJlZjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG51bGxWYWx1ZSgpOwpAQCAtOTYsOSArOTYsOSBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHVuZGVmaW5lZFZhbHVlKCk7CiAjZW5kaWYK
IAotICAgIHN0YXRpYyBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGVGcm9tV2lyZUJ5
dGVzKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSkKKyAgICBzdGF0aWMgUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlRnJvbVdpcmVCeXRlcyhWZWN0b3I8dWludDhfdD4mJiBkYXRh
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZh
bHVlKGRhdGEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlw
dFZhbHVlKFdURk1vdmUoZGF0YSkpKTsKICAgICB9CiAgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiB0b1dpcmVCeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQogCkBAIC0xMTEsMTAgKzEx
MSw5IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNv
bnRlbnRzQXJyYXk+IHRyYW5zZmVyQXJyYXlCdWZmZXJzKEpTQzo6RXhlY1N0YXRlKiwgQXJyYXlC
dWZmZXJBcnJheSYsIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlJik7CiAgICAgdm9pZCBhZGRCbG9i
VVJMKGNvbnN0IFN0cmluZyYpOwogCi0gICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGNvbnN0IFZl
Y3Rvcjx1bnNpZ25lZCBjaGFyPiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mKTsKLSAgICBTZXJpYWxpemVkU2NyaXB0VmFs
dWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiwgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzKTsKLSAg
ICBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiwgVmVjdG9yPFN0
cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5
Pik7CisgICAgV0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNp
Z25lZCBjaGFyPiYmKTsKKyAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVk
IGNoYXI+JiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcyk7CisgICAgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYmLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+JiYp
OwogCiAgICAgVmVjdG9yPHVuc2lnbmVkIGNoYXI+IG1fZGF0YTsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAzMjlhN2Q4YTJjZDU0MjkxY2Fl
ODdiMWM4M2YxNmZiMDUwNmVlOTAwLi43N2U5OGE4NjNkMGI4ZTgxMDdmZjZhM2MwODNlOTdhYmUx
OGQ3ZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yNDM3LDcgKzI0
MzcsNyBAQCBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBJbnRlcm5hbHM6OmRlc2VyaWFs
aXplQnVmZmVyKFBhc3NSZWZQdHI8QXJyYXlCdWZmZQogewogICAgIFZlY3Rvcjx1aW50OF90PiBi
eXRlczsKICAgICBieXRlcy5hcHBlbmQoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGJ1ZmZl
ci0+ZGF0YSgpKSwgYnVmZmVyLT5ieXRlTGVuZ3RoKCkpOwotICAgIHJldHVybiBTZXJpYWxpemVk
U2NyaXB0VmFsdWU6OmFkb3B0KGJ5dGVzKTsKKyAgICByZXR1cm4gU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjphZG9wdChXVEZNb3ZlKGJ5dGVzKSk7CiB9CiAKIGJvb2wgSW50ZXJuYWxzOjppc0Zyb21D
dXJyZW50V29ybGQoRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgdmFsdWUpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9Vbmlx
dWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9y
ZVNRTGl0ZS5jcHAKaW5kZXggMTlhMTA1MDg5YWFkZDQ5ZWU1YmRmODVkMWVhMGM0YjI1ZjFmODJl
Ny4uZWRjODc1MDAxNmY2MGFmMGY4NGFlNzAxY2U4MjJmYTk4NWY4NDBkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURC
RGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3Jl
U1FMaXRlLmNwcApAQCAtNzc2LDcgKzc3Niw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNr
aW5nU3RvcmVTUUxpdGU6OmNyZWF0ZUluZGV4KGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zCiAg
ICAgICAgIGlmICghbG9ja2VyKQogICAgICAgICAgICAgbG9ja2VyID0gc3RkOjptYWtlX3VuaXF1
ZTxKU0xvY2tIb2xkZXI+KG1fdm0uZ2V0KCkpOwogCi0gICAgICAgIERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihtX2dsb2JhbE9iamVjdC0+
Z2xvYmFsRXhlYygpLCB2YWx1ZUJ1ZmZlciwgdHJ1ZSk7CisgICAgICAgIERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihtX2dsb2JhbE9iamVj
dC0+Z2xvYmFsRXhlYygpLCBWZWN0b3I8dWludDhfdD4odmFsdWVCdWZmZXIpLCB0cnVlKTsKICAg
ICAgICAgVmVjdG9yPElEQktleURhdGE+IGluZGV4S2V5czsKICAgICAgICAgZ2VuZXJhdGVJbmRl
eEtleXNGb3JWYWx1ZShtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBtZXRhZGF0YSwgdmFs
dWUsIGluZGV4S2V5cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQ
SVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCmluZGV4IDkwYTFjYjA4MWJhMzNhYjhhNWVkOWYyZjM2
N2YxOTM1Zjg3ZjI2M2EuLjY1NjlkNGQ0Y2U5MjEyOTE0OWYxOWQ0OGUwNDQ5YmVjYWJhOGE4ZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaApAQCAtNDksOSArNDksOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShzZXJpYWxpemVkVmFsdWUuZ2V0KCkpKTsK
ICAgICB9CiAgICAgCi0gICAgc3RhdGljIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGFkb3B0
KFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyKQorICAgIHN0YXRpYyBSZWY8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBhZG9wdChWZWN0b3I8dWludDhfdD4mJiBidWZmZXIpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV2ViQ29yZTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlOjphZG9wdChidWZmZXIpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmFkb3B0KFdURk1vdmUoYnVmZmVyKSkpKTsKICAgICB9CiAgICAgCiAgICAgSlNWYWx1ZVJl
ZiBkZXNlcmlhbGl6ZShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJEYXRhLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5jcHAKaW5kZXggMGVjM2E4YTE1OTk3Y2QzZDQ2MjBk
Y2MyY2MzNjA1ZjMzNWE0NjMxZC4uNjUzYzQ4YzliMGIxNTQ2NmI4YzIxMTY5YTk2NWJmM2NmYjY4
MGY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuY3BwCkBAIC01MzAsOCArNTMwLDcgQEAg
Ym9vbCBVc2VyRGF0YTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQ
dHI8QVBJOjpPYmplY3Q+JiByZXN1bHQKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRh
UmVmZXJlbmNlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBhdXRvIHZl
Y3RvciA9IGRhdGFSZWZlcmVuY2UudmVjdG9yKCk7Ci0gICAgICAgIHJlc3VsdCA9IEFQSTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdCh2ZWN0b3IpOworICAgICAgICByZXN1bHQgPSBBUEk6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoZGF0YVJlZmVyZW5jZS52ZWN0b3IoKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQ
cm94eS5jcHAKaW5kZXggNGIyYzZkZTMwYzFlZmRmMTQyOTM0YjNmYzM0OTBlOTExYzBiZjY0Yi4u
ZmUzNjEzOTk3ZDI3ZDUzMWQ4OTgzYmE3NDgwYzg0OTkwNzEwOGY2YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwCkBAIC0xNzcsOCArMTc3LDcgQEAgdm9pZCBX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6ZGlkUG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLAogICAgIGlmICghaGFuZGxlcikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgYXV0byBidWZmZXIgPSBkYXRhUmVmZXJlbmNlLnZlY3RvcigpOwotICAgIFJlZlB0cjxXZWJD
b3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gV2ViQ29yZTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlOjphZG9wdChidWZmZXIpOworICAgIFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IHZhbHVlID0gV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9w
dChkYXRhUmVmZXJlbmNlLnZlY3RvcigpKTsKIAogICAgIGhhbmRsZXItPmNsaWVudCgpLmRpZFBv
c3RNZXNzYWdlKCpwYWdlLCAqZnJhbWUsIHNlY3VyaXR5T3JpZ2luLCAqdmFsdWUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBhN2MxYmFiYTJmM2Vl
OTcwZDBiYTRhM2Y3NWM3ZWIzYTYwMjE5Y2Y5Li42ODQzMDI4YWUwMDdjMzJhODI0OTg0NzRhYzlj
Yjg3ZTA5MjkzNjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtNDY4OCwxMSArNDY4OCwxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2NyaXB0VmFsdWVD
YWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UsCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoZGF0YVJlZmVyZW5jZS5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShudWxscHRyLCBo
YWRFeGNlcHRpb24sIGRldGFpbHMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgVmVj
dG9yPHVpbnQ4X3Q+IGRhdGE7CiAgICAgZGF0YS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRhdGFS
ZWZlcmVuY2Uuc2l6ZSgpKTsKICAgICBkYXRhLmFwcGVuZChkYXRhUmVmZXJlbmNlLmRhdGEoKSwg
ZGF0YVJlZmVyZW5jZS5zaXplKCkpOwogCi0gICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dp
dGhSZXR1cm5WYWx1ZShkYXRhLnNpemUoKSA/IEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjph
ZG9wdChkYXRhKS5wdHIoKSA6IG51bGxwdHIsIGhhZEV4Y2VwdGlvbiwgZGV0YWlscyk7CisgICAg
UmVmUHRyPEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiByZXR1cm5WYWx1ZSA9IEFQSTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChXVEZNb3ZlKGRhdGEpKTsKKyAgICBjYWxsYmFjay0+
cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKHJldHVyblZhbHVlLmdldCgpLCBoYWRFeGNl
cHRpb24sIGRldGFpbHMpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0ZWRQYWdlc0Nh
bGxiYWNrKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcGFnZVJlY3RzLCBkb3VibGUgdG90YWxTY2Fs
ZUZhY3RvckZvclByaW50aW5nLCB1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJz
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lv
blN0YXRlQ29udmVyc2lvbi5jcHAKaW5kZXggZTJlMGE3MmYzZjRhNDBkYjhiOTU2NjYwZTdlODA5
MDEyZDc2MWQ3Zi4uMTUxYzkwMDZmYzJiNGY5MDgxMGU2MmQ2ZDMzN2QxODliNzYzNzI1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9u
U3RhdGVDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCkBAIC0xNTQsNyArMTU0LDcgQEAg
c3RhdGljIHZvaWQgYXBwbHlGcmFtZVN0YXRlKEhpc3RvcnlJdGVtJiBoaXN0b3J5SXRlbSwgY29u
c3QgRnJhbWVTdGF0ZSYgZnJhbWVTdGEKIAogICAgIGlmIChmcmFtZVN0YXRlLnN0YXRlT2JqZWN0
RGF0YSkgewogICAgICAgICBWZWN0b3I8dWludDhfdD4gc3RhdGVPYmplY3REYXRhID0gZnJhbWVT
dGF0ZS5zdGF0ZU9iamVjdERhdGEudmFsdWUoKTsKLSAgICAgICAgaGlzdG9yeUl0ZW0uc2V0U3Rh
dGVPYmplY3QoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChzdGF0ZU9iamVjdERhdGEpKTsK
KyAgICAgICAgaGlzdG9yeUl0ZW0uc2V0U3RhdGVPYmplY3QoU2VyaWFsaXplZFNjcmlwdFZhbHVl
OjphZG9wdChXVEZNb3ZlKHN0YXRlT2JqZWN0RGF0YSkpKTsKICAgICB9CiAKICAgICBoaXN0b3J5
SXRlbS5zZXREb2N1bWVudFNlcXVlbmNlTnVtYmVyKGZyYW1lU3RhdGUuZG9jdW1lbnRTZXF1ZW5j
ZU51bWJlcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269231</attachid>
            <date>2016-01-18 10:40:15 -0800</date>
            <delta_ts>2016-01-18 12:26:56 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-142634-20160118103945.patch</filename>
            <type>text/plain</type>
            <size>19629</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1MjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI2NGVjNDMyNDg3NTc0
NTI0NWY3ZjExY2Q1NWQ2ZDZlYWU1NmRlNS4uMGEzNWQxZDE4YjM4ODA5ZmRjM2VkMzJmMzdkNWZh
OTI1YjgzYjYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTAxLTE4ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBTaW5rIHRoZSBWZWN0
b3I8dWludDhfdD4gYnVmZmVyIGludG8gdGhlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBjb25zdHJ1
Y3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
NjM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSGF2ZSB0
aGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGNvbnN0cnVjdG9yIHRha2UgaW4gdGhlIFZlY3Rvcjx1
aW50OF90PiBidWZmZXIKKyAgICAgICAgdGhyb3VnaCBhbiBydmFsdWUgcmVmZXJlbmNlLCBhdm9p
ZGluZyB0aGUgY29weWluZyBpbnRvIHRoZSBtX2RhdGEgbWVtYmVyLiBUaGUKKyAgICAgICAgdGhy
ZWUtcGFyYW1ldGVyIGNvbnN0cnVjdG9yIG5vdyB0YWtlcyBpbiB0aGUgVmVjdG9yPFN0cmluZz4g
YmxvYiBVUkwgb2JqZWN0CisgICAgICAgIHZpYSBjb25zdCByZWZlcmVuY2UsIGFuZCB0aGUgc3Rk
Ojp1bmlxdWVfcHRyPD4gb2JqZWN0IHZpYSBhIHJ2YWx1ZSByZWZlcmVuY2UuCisKKyAgICAgICAg
QWRqdXN0IGFsbCB0aGUgY2FsbCBzaXRlcyBhbmQgYWZmZWN0ZWQgY29kZSB0byBub3cgZWl0aGVy
IG1vdmUgb3IgY29weSBhCisgICAgICAgIG5vbi1tb3ZhYmxlIG9iamVjdCBpbnRvIHRoZSBTZXJp
YWxpemVkU2NyaXB0VmFsdWUgY29uc3RydWN0b3Igb3IgdGhlIGhlbHBlcgorICAgICAgICBtZXRo
b2RzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtLSBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmRlc2VyaWFsaXplSURCVmFsdWVEYXRhVG9KU1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OmRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6aWRi
VmFsdWVEYXRhVG9KU1ZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRp
bGl0aWVzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVtYmVyVmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp1bmRlZmluZWRW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bGxWYWx1
ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpkZXNlcmlhbGl6ZUJ1ZmZlcik6CisKIDIwMTYtMDEtMTggIENzYWJhIE9zenRyb2dvbsOhYyAg
PG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggdGhlIC0tbWluaW1hbCBidWlsZCBkdWUg
dG8gbWlzc2luZyBWTS5oIGluY2x1ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0M2FlMTliNTgwOGJjNDViYzAy
ZmJmYzlhZTlkNjIzOWJlYzIzNWYyLi4wYjI1MjE4NzQ4MmU4OWM4OTc5MDRkYzQxYjM5NWM1ZWU4
YzI5MjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTYtMDEtMTggIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFNpbmsgdGhlIFZlY3Rvcjx1
aW50OF90PiBidWZmZXIgaW50byB0aGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGNvbnN0cnVjdG9y
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2MzQK
KworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBVcGRhdGUgQVBJ
OjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KCkgdG8gdGFrZSBpbiBhIFZlY3Rvcjx1aW50
OF90PgorICAgICAgICBydmFsdWUsIG1vdmluZyBpdCBpbnRvIHRoZSBXZWJDb3JlOjpTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OmFkb3B0KCkgY2FsbC4KKworICAgICAgICBVcGRhdGUgb3RoZXIgcGxh
Y2VzIHRoYXQgYXJlIGFmZmVjdGVkIGJ5IHRoZSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgY2hhbmdl
cy4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlE
QkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VW5pcXVl
SURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmNyZWF0ZUluZGV4KToKKyAgICAgICAgKiBT
aGFyZWQvQVBJL0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOgorICAgICAgICAoQVBJOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KToKKyAgICAgICAgKiBTaGFyZWQvVXNlckRhdGEuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpVc2VyRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6ZGlkUG9zdE1lc3NhZ2Up
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnNjcmlwdFZhbHVlQ2FsbGJhY2spOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OmFwcGx5RnJhbWVTdGF0ZSk6CisKIDIwMTYtMDEtMTggIE9saXZpZXIgQmxpbiAgPG9s
aXZpZXIuYmxpbkBzb2Z0YXRob21lLmNvbT4KIAogICAgICAgICBbRUZMXVtHVEtdW1dLMl0gRml4
IFVJUHJvY2VzcyBidWlsZCB3aXRoIEdTdHJlYW1lciBhbmQgd2l0aG91dCBWSURFTwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAppbmRl
eCAxOTYwOWVhZmFlMTYxNGYzNTY4NjhmY2VlMTQ0NzM2Nzk0Yjg1ODIxLi5mNjc1YzViY2E1M2Fk
NzlmYjJiZjBmZTAyMjY5ZGJjOTA3ZTUzMDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcApAQCAtNDQ4LDcgKzQ0OCw3IEBAIEpT
Qzo6SlNWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlRGF0YVRvSlNWYWx1ZShKU0M6OkV4ZWNTdGF0
ZSYgZXhlYywgY29uc3QgVGhyZWFkCiAgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhID0g
KnZhbHVlRGF0YS5kYXRhKCk7CiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgaWYgKGRhdGEuc2l6
ZSgpKSB7Ci0gICAgICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRW
YWx1ZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdpcmVCeXRlcyhkYXRhKTsK
KyAgICAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFZhbHVlID0g
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGVGcm9tV2lyZUJ5dGVzKFZlY3Rvcjx1aW50OF90
PihkYXRhKSk7CiAKICAgICAgICAgZXhlYy52bSgpLmFwaUxvY2soKS5sb2NrKCk7CiAgICAgICAg
IHJlc3VsdCA9IHNlcmlhbGl6ZWRWYWx1ZS0+ZGVzZXJpYWxpemUoJmV4ZWMsIGV4ZWMubGV4aWNh
bEdsb2JhbE9iamVjdCgpLCAwLCBOb25UaHJvd2luZyk7CkBAIC00NjQsMjIgKzQ2NCwyMiBAQCBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlQnVmZmVyKERPTVJlcXVl
c3RTdGF0ZSogcmVxdWVzdFN0YXRlLAogICAgIGlmIChwcnBCdWZmZXIpIHsKICAgICAgICAgVmVj
dG9yPHVpbnQ4X3Q+IHZhbHVlOwogICAgICAgICB2YWx1ZS5hcHBlbmQocHJwQnVmZmVyLT5kYXRh
KCksIHBycEJ1ZmZlci0+c2l6ZSgpKTsKLSAgICAgICAgcmV0dXJuIGRlc2VyaWFsaXplSURCVmFs
dWVCdWZmZXIocmVxdWVzdFN0YXRlLT5leGVjKCksIHZhbHVlLCBrZXlJc0RlZmluZWQpOworICAg
ICAgICByZXR1cm4gZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihyZXF1ZXN0U3RhdGUtPmV4ZWMo
KSwgV1RGTW92ZSh2YWx1ZSksIGtleUlzRGVmaW5lZCk7CiAgICAgfQogCiAgICAgcmV0dXJuIERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKHJlcXVlc3RTdGF0ZS0+ZXhlYygpLT52bSgpLCBqc051bGwo
KSk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlIGlkYlZhbHVlRGF0YVRvSlNWYWx1ZShKU0M6OkV4ZWNT
dGF0ZSYgZXhlYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCitzdGF0aWMgSlNWYWx1
ZSBpZGJWYWx1ZURhdGFUb0pTVmFsdWUoSlNDOjpFeGVjU3RhdGUmIGV4ZWMsIFZlY3Rvcjx1aW50
OF90PiYmIGJ1ZmZlcikKIHsKICAgICBpZiAoYnVmZmVyLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIGpzTnVsbCgpOwogCi0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFs
aXplZFZhbHVlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGVGcm9tV2lyZUJ5dGVzKGJ1
ZmZlcik7CisgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFZhbHVl
ID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGVGcm9tV2lyZUJ5dGVzKFdURk1vdmUoYnVm
ZmVyKSk7CiAgICAgcmV0dXJuIHNlcmlhbGl6ZWRWYWx1ZS0+ZGVzZXJpYWxpemUoJmV4ZWMsIGV4
ZWMubGV4aWNhbEdsb2JhbE9iamVjdCgpLCAwLCBOb25UaHJvd2luZyk7CiB9CiAKLURlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlIGRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyLCBib29sIGtleUlzRGVmaW5lZCkK
K0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIFZlY3Rvcjx1aW50OF90PiYmIGJ1ZmZlciwgYm9vbCBrZXlJc0RlZmlu
ZWQpCiB7CiAgICAgQVNTRVJUKGV4ZWMpOwogCkBAIC00OTAsNyArNDkwLDcgQEAgRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgVmUKICAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKGV4
ZWMtPnZtKCksIGpzVW5kZWZpbmVkKCkpOwogICAgIH0KIAotICAgIEpTVmFsdWUgcmVzdWx0ID0g
aWRiVmFsdWVEYXRhVG9KU1ZhbHVlKCpleGVjLCBidWZmZXIpOworICAgIEpTVmFsdWUgcmVzdWx0
ID0gaWRiVmFsdWVEYXRhVG9KU1ZhbHVlKCpleGVjLCBXVEZNb3ZlKGJ1ZmZlcikpOwogICAgIHJl
dHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShleGVjLT52bSgpLCByZXN1bHQpOwogfQogCkBA
IC00OTksNyArNDk5LDcgQEAgSlNWYWx1ZSBpZGJWYWx1ZURhdGFUb0pTVmFsdWUoSlNDOjpFeGVj
U3RhdGUmIGV4ZWMsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJgogICAgIGlmICghdmFsdWVE
YXRhLmRhdGEoKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICByZXR1cm4g
aWRiVmFsdWVEYXRhVG9KU1ZhbHVlKGV4ZWMsICp2YWx1ZURhdGEuZGF0YSgpKTsKKyAgICByZXR1
cm4gaWRiVmFsdWVEYXRhVG9KU1ZhbHVlKGV4ZWMsIFZlY3Rvcjx1aW50OF90PigqdmFsdWVEYXRh
LmRhdGEoKSkpOwogfQogCiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBpZGJLZXlUb1NjcmlwdFZh
bHVlKERPTVJlcXVlc3RTdGF0ZSogcmVxdWVzdFN0YXRlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxp
dGllcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5o
CmluZGV4IDE5M2I5MTNlMmYxNWEyNzRlNTE1ZDM3NTNhNDU5NDMzZWY3Njg3NzYuLjA5ZjUzNDQ3
YjdiMzNlZWRjYTlmZmVmYjYxZDFmNmJhYjdhYmRkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmgKQEAgLTYwLDcgKzYwLDcgQEAgYm9v
bCBjYW5JbmplY3RJREJLZXlJbnRvU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBK
U0M6OkpTVmFsdWUmLCBjb25zdAogRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJ
REJWYWx1ZShET01SZXF1ZXN0U3RhdGUqLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4pOwogRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZURhdGEoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZURh
dGEpOwogRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihE
T01SZXF1ZXN0U3RhdGUqLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGJvb2wga2V5SXNEZWZp
bmVkKTsKLVdFQkNPUkVfRVhQT1JUIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGRlc2VyaWFsaXpl
SURCVmFsdWVCdWZmZXIoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBi
b29sIGtleUlzRGVmaW5lZCk7CitXRUJDT1JFX0VYUE9SVCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1
ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlQnVmZmVyKEpTQzo6RXhlY1N0YXRlKiwgVmVjdG9yPHVpbnQ4
X3Q+JiYsIGJvb2wga2V5SXNEZWZpbmVkKTsKIAogSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplSURC
VmFsdWVEYXRhVG9KU1ZhbHVlKEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgVGhyZWFkU2FmZURhdGFC
dWZmZXImIHZhbHVlRGF0YSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IGEwYjllOTMwODJiYzNkYmVjNTc0ZjU5
Njg3ODhjNGRiNzI0YTc2MGQuLmJhNzdmNDlhOTBhYzQ4YTc3NDZjNTgxM2VhM2M4ZTg4ZTJmZTY1
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcApAQCAtMjU5NSwyNyArMjU5NSwyMiBAQCBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6On5TZXJpYWxpemVkU2NyaXB0VmFsdWUoKQogewogfQogCi1TZXJpYWxpemVkU2NyaXB0VmFs
dWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikK
LSAgICA6IG1fZGF0YShidWZmZXIpCitTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4mJiBidWZmZXIpCisgICAgOiBtX2RhdGEoV1RGTW92
ZShidWZmZXIpKQogewogfQogCi1TZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZShWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKK1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90PiYmIGJ1ZmZlciwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGJsb2JVUkxzKQorICAgIDogbV9kYXRhKFdURk1vdmUoYnVmZmVyKSkKIHsK
LSAgICBtX2RhdGEuc3dhcChidWZmZXIpOwotfQotCi1TZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4mIGJ1ZmZlciwgVmVjdG9yPFN0cmlu
Zz4mIGJsb2JVUkxzKQotewotICAgIG1fZGF0YS5zd2FwKGJ1ZmZlcik7CiAgICAgZm9yIChhdXRv
JiBzdHJpbmcgOiBibG9iVVJMcykKICAgICAgICAgYWRkQmxvYlVSTChzdHJpbmcpOwogfQogCi1T
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhf
dD4mIGJ1ZmZlciwgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJy
YXlCdWZmZXJDb250ZW50c0FycmF5PiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpCi0gICAgOiBt
X2FycmF5QnVmZmVyQ29udGVudHNBcnJheShXVEZNb3ZlKGFycmF5QnVmZmVyQ29udGVudHNBcnJh
eSkpCitTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8
dWludDhfdD4mJiBidWZmZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgc3RkOjp1
bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4mJiBhcnJheUJ1ZmZlckNvbnRlbnRz
QXJyYXkpCisgICAgOiBtX2RhdGEoV1RGTW92ZShidWZmZXIpKQorICAgICwgbV9hcnJheUJ1ZmZl
ckNvbnRlbnRzQXJyYXkoV1RGTW92ZShhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKQogewotICAg
IG1fZGF0YS5zd2FwKGJ1ZmZlcik7CiAgICAgZm9yIChhdXRvJiBzdHJpbmcgOiBibG9iVVJMcykK
ICAgICAgICAgYWRkQmxvYlVSTChzdHJpbmcpOwogfQpAQCAtMjY2Niw3ICsyNjYxLDcgQEAgUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUo
RXhlY1N0YXRlKiBleGVjLCBKU1YKICAgICBpZiAoIXNlcmlhbGl6YXRpb25EaWRDb21wbGV0ZVN1
Y2Nlc3NmdWxseShjb2RlKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVmZmVyLCBibG9iVVJMcywgV1RG
TW92ZShhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1vdmUoYnVmZmVyKSwgYmxvYlVSTHMsIFdURk1v
dmUoYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSkpOwogfQogCiBSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHN0
cmluZykKQEAgLTI2NzQsNyArMjY2OSw3IEBAIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nCiAgICAg
VmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKICAgICBpZiAoIUNsb25lU2VyaWFsaXplcjo6c2VyaWFs
aXplKHN0cmluZywgYnVmZmVyKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKGJ1ZmZlcikpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXVEZNb3ZlKGJ1ZmZlcikpKTsK
IH0KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpAQCAtMjY4MiwxNCArMjY3NywxNCBA
QCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bWJl
clZhbHVlKGRvdWJsZSB2YWx1ZSkKIHsKICAgICBWZWN0b3I8dWludDhfdD4gYnVmZmVyOwogICAg
IENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplTnVtYmVyKHZhbHVlLCBidWZmZXIpOwotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGTW92ZShidWZmZXIp
KSk7CiB9CiAKIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6dW5kZWZpbmVkVmFsdWUoKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7CiAgICAg
Q2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemVVbmRlZmluZWQoYnVmZmVyKTsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVmZmVyKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1vdmUoYnVmZmVyKSkpOwog
fQogI2VuZGlmCiAKQEAgLTI3NDEsOCArMjczNiw3IEBAIEpTVmFsdWVSZWYgU2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpkZXNlcmlhbGl6ZShKU0NvbnRleHRSZWYgZGVzdGluYXRpb25Db250ZXh0LCBK
CiAKIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVs
bFZhbHVlKCkKIHsKLSAgICBWZWN0b3I8dWludDhfdD4gYnVmZmVyOwotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShidWZmZXIpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+KCkpKTsKIH0K
IAogdm9pZCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om1heWJlVGhyb3dFeGNlcHRpb25JZlNlcmlh
bGl6YXRpb25GYWlsZWQoRXhlY1N0YXRlKiBleGVjLCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBj
b2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0
VmFsdWUuaAppbmRleCA4MWQ2MDBmNTZmNTI2Mjg3MzE5ZDNjMmI2Yjg4YjY4ZTNlZGE5MTNhLi42
OWY5NTY0MGNhM2ZjN2Y4YzRmMDg2ODI1ZWE2NzA0M2Q3ZjFiZjdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaApAQCAtNjksOSAr
NjksOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgTWVz
c2FnZVBvcnRBcnJheSosIEFycmF5QnVmZmVyQXJyYXkqLCBTZXJpYWxpemF0aW9uRXJyb3JNb2Rl
ID0gVGhyb3dpbmcpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IGNyZWF0ZShjb25zdCBTdHJpbmcmKTsKLSAgICBzdGF0aWMgUmVmPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCisgICAg
c3RhdGljIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGFkb3B0KFZlY3Rvcjx1aW50OF90PiYm
IGJ1ZmZlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZShidWZmZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFs
aXplZFNjcmlwdFZhbHVlKFdURk1vdmUoYnVmZmVyKSkpOwogICAgIH0KIAogICAgIHN0YXRpYyBS
ZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBudWxsVmFsdWUoKTsKQEAgLTk2LDkgKzk2LDkgQEAg
cHVibGljOgogICAgIHN0YXRpYyBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB1bmRlZmluZWRW
YWx1ZSgpOwogI2VuZGlmCiAKLSAgICBzdGF0aWMgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
Y3JlYXRlRnJvbVdpcmVCeXRlcyhjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEpCisgICAgc3Rh
dGljIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZUZyb21XaXJlQnl0ZXMoVmVjdG9y
PHVpbnQ4X3Q+JiYgZGF0YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZShkYXRhKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXVEZNb3ZlKGRhdGEpKSk7CiAgICAgfQogICAgIGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgdG9XaXJlQnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0K
IApAQCAtMTExLDEwICsxMTEsOSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiB0cmFuc2ZlckFycmF5QnVmZmVycyhKU0M6OkV4
ZWNTdGF0ZSosIEFycmF5QnVmZmVyQXJyYXkmLCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSYpOwog
ICAgIHZvaWQgYWRkQmxvYlVSTChjb25zdCBTdHJpbmcmKTsKIAotICAgIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZShjb25zdCBWZWN0b3I8dW5zaWduZWQgY2hhcj4mKTsKLSAgICBXRUJDT1JFX0VYUE9S
VCBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+Jik7Ci0gICAgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYsIFZlY3RvcjxTdHJpbmc+
JiBibG9iVVJMcyk7Ci0gICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBj
aGFyPiYsIFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVm
ZmVyQ29udGVudHNBcnJheT4pOworICAgIFdFQkNPUkVfRVhQT1JUIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJik7CisgICAgU2VyaWFsaXplZFNjcmlwdFZhbHVl
KFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMp
OworICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJiwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJD
b250ZW50c0FycmF5PiYmKTsKIAogICAgIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiBtX2RhdGE7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gbV9hcnJheUJ1ZmZl
ckNvbnRlbnRzQXJyYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMWJl
OTFmYjljYjZhOWMyOGM4NjA4NDZlODhhYTdjM2NkMzRmMzIyYy4uMTNmZmQ0NTBkMjQzMDg1NmZm
NWExZTNjZTg0ZTJlZGFiNjcxNGRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cApAQCAtMjUwMiw3ICsyNTAyLDcgQEAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gSW50
ZXJuYWxzOjpkZXNlcmlhbGl6ZUJ1ZmZlcihQYXNzUmVmUHRyPEFycmF5QnVmZmUKIHsKICAgICBW
ZWN0b3I8dWludDhfdD4gYnl0ZXM7CiAgICAgYnl0ZXMuYXBwZW5kKHN0YXRpY19jYXN0PGNvbnN0
IHVpbnQ4X3QqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKLSAgICBy
ZXR1cm4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChieXRlcyk7CisgICAgcmV0dXJuIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoV1RGTW92ZShieXRlcykpOwogfQogCiBib29sIElu
dGVybmFsczo6aXNGcm9tQ3VycmVudFdvcmxkKERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIHZhbHVl
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4
ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwIGIvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0
YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwCmluZGV4IDE5YTEwNTA4OWFhZGQ0OWVlNWJkZjg1
ZDFlYTBjNGIyNWYxZjgyZTcuLmVkYzg3NTAwMTZmNjBhZjBmODRhZTcwMWNlODIyZmE5ODVmODQw
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIv
c3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRh
YmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAKQEAgLTc3Niw3ICs3NzYsNyBAQCBib29sIFVuaXF1
ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpjcmVhdGVJbmRleChjb25zdCBJREJJZGVu
dGlmaWVyJiB0cmFucwogICAgICAgICBpZiAoIWxvY2tlcikKICAgICAgICAgICAgIGxvY2tlciA9
IHN0ZDo6bWFrZV91bmlxdWU8SlNMb2NrSG9sZGVyPihtX3ZtLmdldCgpKTsKIAotICAgICAgICBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWVCdWZmZXIo
bV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgdmFsdWVCdWZmZXIsIHRydWUpOworICAgICAg
ICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWVCdWZm
ZXIobV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgVmVjdG9yPHVpbnQ4X3Q+KHZhbHVlQnVm
ZmVyKSwgdHJ1ZSk7CiAgICAgICAgIFZlY3RvcjxJREJLZXlEYXRhPiBpbmRleEtleXM7CiAgICAg
ICAgIGdlbmVyYXRlSW5kZXhLZXlzRm9yVmFsdWUobV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMo
KSwgbWV0YWRhdGEsIHZhbHVlLCBpbmRleEtleXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9BUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaAppbmRleCA5MGExY2IwODFi
YTMzYWI4YTVlZDlmMmYzNjdmMTkzNWY4N2YyNjNhLi42NTY5ZDRkNGNlOTIxMjkxNDlmMTlkNDhl
MDQ0OWJlY2FiYThhOGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQ
SVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTQ5LDkgKzQ5LDkgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXpl
ZFZhbHVlLmdldCgpKSk7CiAgICAgfQogICAgIAotICAgIHN0YXRpYyBSZWY8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBhZG9wdChWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKKyAgICBzdGF0aWMgUmVm
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVl
KFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoYnVmZmVyKSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChXVEZNb3ZlKGJ1ZmZlcikpKSk7CiAgICAgfQogICAg
IAogICAgIEpTVmFsdWVSZWYgZGVzZXJpYWxpemUoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2Vy
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuY3BwCmluZGV4IDBlYzNh
OGExNTk5N2NkM2Q0NjIwZGNjMmNjMzYwNWYzMzVhNDYzMWQuLjY1M2M0OGM5YjBiMTU0NjZiOGMy
MTE2OWE5NjViZjNjZmI2ODBmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9V
c2VyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJEYXRhLmNwcApAQCAt
NTMwLDggKzUzMCw3IEBAIGJvb2wgVXNlckRhdGE6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgcmVzdWx0CiAgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoZGF0YVJlZmVyZW5jZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICAgICAgYXV0byB2ZWN0b3IgPSBkYXRhUmVmZXJlbmNlLnZlY3RvcigpOwotICAgICAgICBy
ZXN1bHQgPSBBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQodmVjdG9yKTsKKyAgICAg
ICAgcmVzdWx0ID0gQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KGRhdGFSZWZlcmVu
Y2UudmVjdG9yKCkpOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyUHJveHkuY3BwCmluZGV4IDRiMmM2ZGUzMGMxZWZkZjE0MjkzNGIzZmMz
NDkwZTkxMWMwYmY2NGIuLjIwY2QzNjNhZTM5YzU4MWVjZmRhOTcwNThiM2M1NmVlOTkwNGZjNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcApAQCAtMTc3LDEw
ICsxNzcsOCBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpkaWRQb3N0TWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAgICAgaWYgKCFoYW5kbGVyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvIGJ1ZmZlciA9IGRhdGFSZWZlcmVuY2UudmVjdG9yKCk7
Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUgPSBXZWJD
b3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KGJ1ZmZlcik7Ci0KLSAgICBoYW5kbGVy
LT5jbGllbnQoKS5kaWRQb3N0TWVzc2FnZSgqcGFnZSwgKmZyYW1lLCBzZWN1cml0eU9yaWdpbiwg
KnZhbHVlKTsKKyAgICBoYW5kbGVyLT5jbGllbnQoKS5kaWRQb3N0TWVzc2FnZSgqcGFnZSwgKmZy
YW1lLCBzZWN1cml0eU9yaWdpbiwKKyAgICAgICAgV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlOjphZG9wdChkYXRhUmVmZXJlbmNlLnZlY3RvcigpKSk7CiB9CiAKICNpZiBFTkFCTEUoQ09O
VEVOVF9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCBhZmIzYmY4MTFhN2M3MDMyMjc2MDZjYWM3NjNiM2RkN2I3N2Y1ZmU4Li41N2JlMzdi
ODYyNmE4OWM2M2EyOGQ0MzNlNWRlYzBhNDdjNmI1NGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDcwMywxMSArNDcwMywxNiBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6c2NyaXB0VmFsdWVDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRh
dGFSZWZlcmVuY2UsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoZGF0YVJlZmVy
ZW5jZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhS
ZXR1cm5WYWx1ZShudWxscHRyLCBoYWRFeGNlcHRpb24sIGRldGFpbHMpOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CiAgICAgZGF0YS5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKICAgICBkYXRhLmFwcGVuZChk
YXRhUmVmZXJlbmNlLmRhdGEoKSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOwogCi0gICAgY2FsbGJh
Y2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShkYXRhLnNpemUoKSA/IEFQSTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChkYXRhKS5wdHIoKSA6IG51bGxwdHIsIGhhZEV4Y2Vw
dGlvbiwgZGV0YWlscyk7CisgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5W
YWx1ZShBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoV1RGTW92ZShkYXRhKSkucHRy
KCksIGhhZEV4Y2VwdGlvbiwgZGV0YWlscyk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpjb21w
dXRlZFBhZ2VzQ2FsbGJhY2soY29uc3QgVmVjdG9yPEludFJlY3Q+JiBwYWdlUmVjdHMsIGRvdWJs
ZSB0b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25T
dGF0ZUNvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAppbmRleCBlMmUwYTcyZjNmNGE0MGRiOGI5
NTY2NjBlN2U4MDkwMTJkNzYxZDdmLi4xNTFjOTAwNmZjMmI0ZjkwODEwZTYyZDZkMzM3ZDE4OWI3
NjM3MjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKQEAgLTE1NCw3
ICsxNTQsNyBAQCBzdGF0aWMgdm9pZCBhcHBseUZyYW1lU3RhdGUoSGlzdG9yeUl0ZW0mIGhpc3Rv
cnlJdGVtLCBjb25zdCBGcmFtZVN0YXRlJiBmcmFtZVN0YQogCiAgICAgaWYgKGZyYW1lU3RhdGUu
c3RhdGVPYmplY3REYXRhKSB7CiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBzdGF0ZU9iamVjdERh
dGEgPSBmcmFtZVN0YXRlLnN0YXRlT2JqZWN0RGF0YS52YWx1ZSgpOwotICAgICAgICBoaXN0b3J5
SXRlbS5zZXRTdGF0ZU9iamVjdChTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KHN0YXRlT2Jq
ZWN0RGF0YSkpOworICAgICAgICBoaXN0b3J5SXRlbS5zZXRTdGF0ZU9iamVjdChTZXJpYWxpemVk
U2NyaXB0VmFsdWU6OmFkb3B0KFdURk1vdmUoc3RhdGVPYmplY3REYXRhKSkpOwogICAgIH0KIAog
ICAgIGhpc3RvcnlJdGVtLnNldERvY3VtZW50U2VxdWVuY2VOdW1iZXIoZnJhbWVTdGF0ZS5kb2N1
bWVudFNlcXVlbmNlTnVtYmVyKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>