<?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>186578</bug_id>
          
          <creation_ts>2018-06-12 16:11:53 -0700</creation_ts>
          <short_desc>Supported plugin check should be based on plugin identifier</short_desc>
          <delta_ts>2018-06-13 15:22:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>a.tion.surf</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>jberlin</cc>
    
    <cc>rmondello</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1432513</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-06-12 16:11:53 -0700</bug_when>
    <thetext>Detect WebKit built-in PDF plug-in using a bundle identifier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432514</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-06-12 16:12:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/40523828&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432516</commentid>
    <comment_count>2</comment_count>
      <attachid>342608</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-06-12 16:18:23 -0700</bug_when>
    <thetext>Created attachment 342608
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432599</commentid>
    <comment_count>3</comment_count>
      <attachid>342608</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-06-12 23:39:22 -0700</bug_when>
    <thetext>Comment on attachment 342608
Patch

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

&gt; Source/WebCore/plugins/PluginData.cpp:57
&gt; +    return plugin.bundleIdentifier == &quot;com.apple.webkit.builtInPDFPlugin&quot;;

Seems a little unsafe to have this be a case sensitive check since bundle identifiers are not case sensitive. Could avoid the case sensitivity by using equalLettersIgnoringASCIICase or equalIgnoringASCIICase.

Would also be nice to not risk this getting out of sync if we change the identifier in the future for some reason, but I suppose it’s not that terrible to have it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432790</commentid>
    <comment_count>4</comment_count>
      <attachid>342608</attachid>
    <who name="Zach Li">a.tion.surf</who>
    <bug_when>2018-06-13 13:33:28 -0700</bug_when>
    <thetext>Comment on attachment 342608
Patch

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

&gt; Source/WebKit/UIProcess/Plugins/PluginInfoStore.h:68
&gt;      void addSupportedPlugin(String&amp;&amp; matchingDomain, String&amp;&amp; name, HashSet&lt;String&gt;&amp;&amp; mimeTypes, HashSet&lt;String&gt; extensions);

This should be changed to `identifier` from `name`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432829</commentid>
    <comment_count>5</comment_count>
      <attachid>342696</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-06-13 15:00:41 -0700</bug_when>
    <thetext>Created attachment 342696
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432831</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-06-13 15:02:41 -0700</bug_when>
    <thetext>Thanks for the reviews.

&gt; &gt; Source/WebCore/plugins/PluginData.cpp:57
&gt; &gt; +    return plugin.bundleIdentifier == &quot;com.apple.webkit.builtInPDFPlugin&quot;;
&gt; 
&gt; Seems a little unsafe to have this be a case sensitive check since bundle
&gt; identifiers are not case sensitive. Could avoid the case sensitivity by
&gt; using equalLettersIgnoringASCIICase or equalIgnoringASCIICase.

Done

&gt; Would also be nice to not risk this getting out of sync if we change the
&gt; identifier in the future for some reason, but I suppose it’s not that
&gt; terrible to have it here.

Right, I also thought it was not great but not too bad either.

&gt; &gt; Source/WebKit/UIProcess/Plugins/PluginInfoStore.h:68
&gt; &gt;      void addSupportedPlugin(String&amp;&amp; matchingDomain, String&amp;&amp; name, HashSet&lt;String&gt;&amp;&amp; mimeTypes, HashSet&lt;String&gt; extensions);
&gt; 
&gt; This should be changed to `identifier` from `name`.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432838</commentid>
    <comment_count>7</comment_count>
      <attachid>342696</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-13 15:22:14 -0700</bug_when>
    <thetext>Comment on attachment 342696
Patch for landing

Clearing flags on attachment: 342696

Committed r232815: &lt;https://trac.webkit.org/changeset/232815&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432839</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-13 15:22:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342608</attachid>
            <date>2018-06-12 16:18:23 -0700</date>
            <delta_ts>2018-06-13 15:00:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186578-20180612161822.patch</filename>
            <type>text/plain</type>
            <size>25374</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk2ZjgwZjE5YzIzMmJk
YjEzYTRiNjQ5MTZlYzYyZTE4MzFiMzRjZS4uMTJiZmNlNTFlZTJmNzUwMjc3MDVlOGI3NTBlZWUz
NjBkMzg1N2ExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE4LTA2LTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0ZWQgcGx1Z2lu
IGNoZWNrIHNob3VsZCBiZSBiYXNlZCBvbiBwbHVnaW4gaWRlbnRpZmllcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NTc4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS80MDUyMzgyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWUgU3VwcG9ydGVkUGx1Z2luTmFtZSBpbiBTdXBwb3J0ZWRQbHVn
aW5JZGVudGlmaWVyLgorICAgICAgICBBZGQgY3Jvc3MtcGxhdGZvcm0gc3VwcG9ydCBmb3IgcGx1
Zy1pbiBpZGVudGlmaWVyLgorCisgICAgICAgIFVwZGF0ZSBidWlsdC1pbiBQREYgcGx1Zy1pbiB0
byBjaGVjayBpdHMgaWRlbnRpZmllciBpbnN0ZWFkIG9mIGl0cyBuYW1lLgorICAgICAgICBUaGlz
IGlzIHN0cm9uZ2VyIGFzIHRoZSBuYW1lIG1heSBjaGFuZ2UgYWNjb3JkaW5nIGxvY2FsaXphdGlv
bi4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBsdWdp
bnMvUGx1Z2luRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0J1aWx0SW5QREZQbHVnSW4p
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0YTo6aW5pdFBsdWdpbnMpOgorICAgICAgICAq
IHBsdWdpbnMvUGx1Z2luRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6Cisg
ICAgICAgIChXZWJDb3JlOjppc1N1cHBvcnRlZFBsdWdpbik6CisgICAgICAgIChXZWJDb3JlOjpT
dXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3Vw
cG9ydGVkUGx1Z2luSWRlbnRpZmllcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlN1cHBvcnRlZFBsdWdpbk5hbWU6OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTdXBwb3J0ZWRQbHVnaW5OYW1lOjplbmNvZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IHBsdWdpbnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmg6CisKIDIwMTgtMDYtMTIgIEppYW5qdW4gWmh1
ICA8amlhbmp1bi56aHVAaW50ZWwuY29tPgogCiAgICAgICAgIEhhc2ggZGV2aWNlSWQgYW5kIGdy
b3VwSWQgb2YgTWVkaWFUcmFja0NhcGFiaWxpdGllcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTE3Yjg3YzI5YjNk
ZDYxMjcxYmZjZjNlZjFlOTU5YTI1MThhNTUxZC4uYjdiODgwNGFiMGZhYmYyNzJkY2RhMGYyYTM3
OThhYmJhOTliYzE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxOC0wNi0xMiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydGVkIHBsdWdp
biBjaGVjayBzaG91bGQgYmUgYmFzZWQgb24gcGx1Z2luIGlkZW50aWZpZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjU3OAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDA1MjM4Mjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gbW92ZSBmcm9tIFBsdWdpbiBuYW1lIHRvIFBs
dWdpbiBpZGVudGlmaWVyLgorICAgICAgICBTZXQgYnVpbHQtaW4gcGRmIHBsdWdpbiBpZGVudGlm
aWVyLgorICAgICAgICBUaGlzIGFsbG93cyBtYWtpbmcgc3VyZSB0aGF0IHRoZSBQREYgcGx1Zy1p
biBjaGVjayBtaWdodCBub3QgY2hhbmdlIGFjY29yZGluZyBsb2NhbGl6YXRpb24uCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxQbHVnaW5J
bmZvPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxQbHVnaW5JbmZvPjo6
ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5JbmZvU3RvcmU6OnN1cHBvcnRlZFBsdWdpbklkZW50
aWZpZXJzKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luSW5mb1N0b3JlOjphZGRTdXBwb3J0ZWRQ
bHVnaW4pOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5JbmZvU3RvcmU6OnN1cHBvcnRlZFBsdWdp
bk5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZv
U3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRQbHVnaW5zKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpwbHVnaW5JbmZvKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpwbHVnaW5JbmZvKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjp3ZWJWaXNpYmxlUGx1Z2luSW5mbyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkluZm9Qcm92aWRlcjo6cG9wdWxhdGVQbHVnaW5DYWNo
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5o
OgorCiAyMDE4LTA2LTExICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLiBVcGRhdGUgT3B0aW9uc0dUSy5jbWFrZSBhbmQgTkVX
UyBmb3IgMi4yMS40IHJlbGVhc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggOWNh
NjY2ODdlYmE5YjE3M2M5OTEwZTdhZGZlMzA3NGY0YTgwYjgyZi4uY2VkZjVjZWVjYWU4Zjc1YTE5
OGM2ZjBkOGYwZWI5YTFhZGI1ZGNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDE4LTA2LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBTdXBwb3J0ZWQgcGx1Z2luIGNoZWNrIHNob3VsZCBiZSBiYXNlZCBvbiBw
bHVnaW4gaWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg2NTc4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MDUyMzgyOD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YlBsdWdpbkluZm9Qcm92aWRlci5tbToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6
cGx1Z2luSW5mbyk6CisgICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OndlYlZpc2libGVQ
bHVnaW5JbmZvKToKKwogMjAxOC0wNi0xMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KIAogICAgICAgICBMaW5rIGRyYWcgaW1hZ2UgaXMgaW5jb25zaXN0ZW50bHkgdW5y
ZWFkYWJsZSBpbiBkYXJrIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
aW5kZXggNjA1M2I4NzhiMmYwNDU0MDAzZGYxNDcwMWVhOGNiYTRkMDM5ZGFjNy4uMmI0ZjQ5NTZh
NzI5Y2Q0ZGY1YjQ2MWMyNDA5ZGVjNTczNDFjY2QzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAKQEAgLTMyNiw3ICszMjYsNyBAQCBjbGFzcyBFbXB0eVBheW1lbnRDb29y
ZGluYXRvckNsaWVudCBmaW5hbCA6IHB1YmxpYyBQYXltZW50Q29vcmRpbmF0b3JDbGllbnQgewog
CiBjbGFzcyBFbXB0eVBsdWdpbkluZm9Qcm92aWRlciBmaW5hbCA6IHB1YmxpYyBQbHVnaW5JbmZv
UHJvdmlkZXIgewogICAgIHZvaWQgcmVmcmVzaFBsdWdpbnMoKSBmaW5hbCB7IH07Ci0gICAgVmVj
dG9yPFBsdWdpbkluZm8+IHBsdWdpbkluZm8oUGFnZSYsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN1
cHBvcnRlZFBsdWdpbk5hbWU+PiYpIGZpbmFsIHsgcmV0dXJuIHsgfTsgfQorICAgIFZlY3RvcjxQ
bHVnaW5JbmZvPiBwbHVnaW5JbmZvKFBhZ2UmLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdXBwb3J0
ZWRQbHVnaW5JZGVudGlmaWVyPj4mKSBmaW5hbCB7IHJldHVybiB7IH07IH0KICAgICBWZWN0b3I8
UGx1Z2luSW5mbz4gd2ViVmlzaWJsZVBsdWdpbkluZm8oUGFnZSYsIGNvbnN0IFVSTCYpIGZpbmFs
IHsgcmV0dXJuIHsgfTsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5jcHAK
aW5kZXggYjQ2NjJjYTI1Y2ZmNTE0OTcyNGE0ODNmYTU0NzBmM2IzNDhhZmY0Ni4uMDdhNzExYmVh
NWRjYjVmYmU4ZTViNjE1M2FmYzZmYjE2YzdjMTdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpbkRhdGEuY3BwCkBAIC01Miw5ICs1Miw5IEBAIGNvbnN0IFZlY3RvcjxQbHVnaW5JbmZvPiYg
UGx1Z2luRGF0YTo6d2ViVmlzaWJsZVBsdWdpbnMoKSBjb25zdAogfQogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNCdWlsdEluUERGUGx1Z0luKGNvbnN0IFBsdWdp
bkluZm8mIHBsdWdJbikKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0J1aWx0SW5QREZQbHVnSW4oY29u
c3QgUGx1Z2luSW5mbyYgcGx1Z2luKQogewotICAgIHJldHVybiBwbHVnSW4ubmFtZSA9PSBidWls
dEluUERGUGx1Z2luTmFtZSgpOworICAgIHJldHVybiBwbHVnaW4uYnVuZGxlSWRlbnRpZmllciA9
PSAiY29tLmFwcGxlLndlYmtpdC5idWlsdEluUERGUGx1Z2luIjsKIH0KICNlbHNlCiBzdGF0aWMg
aW5saW5lIGJvb2wgaXNCdWlsdEluUERGUGx1Z0luKGNvbnN0IFBsdWdpbkluZm8mKQpAQCAtMTkw
LDcgKzE5MCw3IEBAIHZvaWQgUGx1Z2luRGF0YTo6aW5pdFBsdWdpbnMoKQogewogICAgIEFTU0VS
VChtX3BsdWdpbnMuaXNFbXB0eSgpKTsKIAotICAgIG1fcGx1Z2lucyA9IG1fcGFnZS5wbHVnaW5J
bmZvUHJvdmlkZXIoKS5wbHVnaW5JbmZvKG1fcGFnZSwgbV9zdXBwb3J0ZWRQbHVnaW5OYW1lcyk7
CisgICAgbV9wbHVnaW5zID0gbV9wYWdlLnBsdWdpbkluZm9Qcm92aWRlcigpLnBsdWdpbkluZm8o
bV9wYWdlLCBtX3N1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaAppbmRleCAxNjc4NTJkMzRk
MmM1MTFlODhmNjBjMzVlOTZmMTJjY2JjODQ4OGIxLi40NDUwMGZhYTM2ZDFkMDFhZDQ5ZjczZmUw
ZDAwMjQ5ZDY3OTc0YjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
bkRhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaApAQCAtNzMs
MjcgKzczLDI3IEBAIHN0cnVjdCBQbHVnaW5JbmZvIHsKIAogICAgIFBsdWdpbkxvYWRDbGllbnRQ
b2xpY3kgY2xpZW50TG9hZFBvbGljeTsKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICBTdHJpbmcg
YnVuZGxlSWRlbnRpZmllcjsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgU3RyaW5nIHZlcnNpb25T
dHJpbmc7CiAjZW5kaWYKIH07CiAKIGlubGluZSBib29sIG9wZXJhdG9yPT0oUGx1Z2luSW5mbyYg
YSwgUGx1Z2luSW5mbyYgYikKIHsKLSAgICBib29sIHJlc3VsdCA9IGEubmFtZSA9PSBiLm5hbWUg
JiYgYS5maWxlID09IGIuZmlsZSAmJiBhLmRlc2MgPT0gYi5kZXNjICYmIGEubWltZXMgPT0gYi5t
aW1lcyAmJiBhLmlzQXBwbGljYXRpb25QbHVnaW4gPT0gYi5pc0FwcGxpY2F0aW9uUGx1Z2luICYm
IGEuY2xpZW50TG9hZFBvbGljeSA9PSBiLmNsaWVudExvYWRQb2xpY3k7CisgICAgYm9vbCByZXN1
bHQgPSBhLm5hbWUgPT0gYi5uYW1lICYmIGEuZmlsZSA9PSBiLmZpbGUgJiYgYS5kZXNjID09IGIu
ZGVzYyAmJiBhLm1pbWVzID09IGIubWltZXMgJiYgYS5pc0FwcGxpY2F0aW9uUGx1Z2luID09IGIu
aXNBcHBsaWNhdGlvblBsdWdpbiAmJiBhLmNsaWVudExvYWRQb2xpY3kgPT0gYi5jbGllbnRMb2Fk
UG9saWN5ICYmIGEuYnVuZGxlSWRlbnRpZmllciA9PSBiLmJ1bmRsZUlkZW50aWZpZXI7CiAjaWYg
UExBVEZPUk0oTUFDKQotICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhLmJ1bmRsZUlkZW50aWZpZXIg
PT0gYi5idW5kbGVJZGVudGlmaWVyICYmIGEudmVyc2lvblN0cmluZyA9PSBiLnZlcnNpb25TdHJp
bmc7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGEudmVyc2lvblN0cmluZyA9PSBiLnZlcnNpb25T
dHJpbmc7CiAjZW5kaWYKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdHJ1Y3QgU3VwcG9ydGVk
UGx1Z2luTmFtZSB7CitzdHJ1Y3QgU3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllciB7CiAgICAgU3Ry
aW5nIG1hdGNoaW5nRG9tYWluOwotICAgIFN0cmluZyBwbHVnaW5OYW1lOworICAgIFN0cmluZyBw
bHVnaW5JZGVudGlmaWVyOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFN1cHBvcnRlZFBsdWdpbk5hbWU+IGRlY29kZShEZWNvZGVyJik7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVkUGx1
Z2luSWRlbnRpZmllcj4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKIC8vIEZJWE1FOiBtZXJnZSB3
aXRoIFBsdWdpbkRhdGFiYXNlIGluIHRoZSBmdXR1cmUKQEAgLTEyOCw3ICsxMjgsNyBAQCBwcml2
YXRlOgogcHJvdGVjdGVkOgogICAgIFBhZ2UmIG1fcGFnZTsKICAgICBWZWN0b3I8UGx1Z2luSW5m
bz4gbV9wbHVnaW5zOwotICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN1cHBvcnRlZFBsdWdpbk5h
bWU+PiBtX3N1cHBvcnRlZFBsdWdpbk5hbWVzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN1
cHBvcnRlZFBsdWdpbklkZW50aWZpZXI+PiBtX3N1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzOwog
CiAgICAgc3RydWN0IENhY2hlZFZpc2libGVQbHVnaW5zIHsKICAgICAgICAgVVJMIHBhZ2VVUkw7
CkBAIC0xMzcsMzIgKzEzNywzMiBAQCBwcm90ZWN0ZWQ6CiAgICAgbXV0YWJsZSBDYWNoZWRWaXNp
YmxlUGx1Z2lucyBtX2NhY2hlZFZpc2libGVQbHVnaW5zOwogfTsKIAotaW5saW5lIGJvb2wgaXNT
dXBwb3J0ZWRQbHVnaW4oY29uc3QgVmVjdG9yPFN1cHBvcnRlZFBsdWdpbk5hbWU+JiBwbHVnaW5O
YW1lcywgY29uc3QgVVJMJiBwYWdlVVJMLCBjb25zdCBTdHJpbmcmIHBsdWdpbk5hbWUpCitpbmxp
bmUgYm9vbCBpc1N1cHBvcnRlZFBsdWdpbihjb25zdCBWZWN0b3I8U3VwcG9ydGVkUGx1Z2luSWRl
bnRpZmllcj4mIHBsdWdpbklkZW50aWZpZXJzLCBjb25zdCBVUkwmIHBhZ2VVUkwsIGNvbnN0IFN0
cmluZyYgcGx1Z2luSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gcGx1Z2luTmFtZXMuZmluZE1h
dGNoaW5nKFsmXSAoYXV0byYmIHBsdWdpbikgewotICAgICAgICByZXR1cm4gcGFnZVVSTC5pc01h
dGNoaW5nRG9tYWluKHBsdWdpbi5tYXRjaGluZ0RvbWFpbikgJiYgcGx1Z2luLnBsdWdpbk5hbWUg
PT0gcGx1Z2luTmFtZTsKKyAgICByZXR1cm4gcGx1Z2luSWRlbnRpZmllcnMuZmluZE1hdGNoaW5n
KFsmXSAoYXV0byYmIHBsdWdpbikgeworICAgICAgICByZXR1cm4gcGFnZVVSTC5pc01hdGNoaW5n
RG9tYWluKHBsdWdpbi5tYXRjaGluZ0RvbWFpbikgJiYgcGx1Z2luLnBsdWdpbklkZW50aWZpZXIg
PT0gcGx1Z2luSWRlbnRpZmllcjsKICAgICB9KSAhPSBub3RGb3VuZDsKIH0KIAotdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIHN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVkUGx1Z2luTmFtZT4g
U3VwcG9ydGVkUGx1Z2luTmFtZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBpbmxpbmUgc3RkOjpvcHRpb25hbDxTdXBwb3J0ZWRQbHVnaW5JZGVudGlm
aWVyPiBTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
IHsKICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbWF0Y2hpbmdEb21haW47CiAgICAgZGVjb2Rl
ciA+PiBtYXRjaGluZ0RvbWFpbjsKICAgICBpZiAoIW1hdGNoaW5nRG9tYWluKQogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHBsdWdpbk5h
bWU7Ci0gICAgZGVjb2RlciA+PiBwbHVnaW5OYW1lOwotICAgIGlmICghcGx1Z2luTmFtZSkKKyAg
ICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gcGx1Z2luSWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+
IHBsdWdpbklkZW50aWZpZXI7CisgICAgaWYgKCFwbHVnaW5JZGVudGlmaWVyKQogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIFN1cHBvcnRlZFBsdWdpbk5hbWUgeyBX
VEZNb3ZlKG1hdGNoaW5nRG9tYWluLnZhbHVlKCkpLCBXVEZNb3ZlKHBsdWdpbk5hbWUudmFsdWUo
KSkgfTsKKyAgICByZXR1cm4gU3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllciB7IFdURk1vdmUobWF0
Y2hpbmdEb21haW4udmFsdWUoKSksIFdURk1vdmUocGx1Z2luSWRlbnRpZmllci52YWx1ZSgpKSB9
OwogfQogCi10ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiBpbmxpbmUgdm9pZCBTdXBwb3J0ZWRQbHVn
aW5OYW1lOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3RlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IGlubGluZSB2b2lkIFN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXI6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgbWF0Y2hpbmdEb21haW47Ci0g
ICAgZW5jb2RlciA8PCBwbHVnaW5OYW1lOworICAgIGVuY29kZXIgPDwgcGx1Z2luSWRlbnRpZmll
cjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5JbmZvUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luSW5mb1Byb3ZpZGVyLmgKaW5kZXggMDcyZjA4M2M1NjRkMGM0YWRhNjFmODc0MDE4ZDM5
NmJlNzY1ZjdiMC4uYjRhYjQ2MjY1MzQ3Mzc3NTFhZjEzZGM0NGRmMGI3NjAxNWFjNzg1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5JbmZvUHJvdmlkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkluZm9Qcm92aWRlci5oCkBAIC0zOSw3ICsz
OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBhZ2UoUGFnZSYpOwogICAgIHZvaWQgcmVtb3Zl
UGFnZShQYWdlJik7CiAKLSAgICB2aXJ0dWFsIFZlY3RvcjxQbHVnaW5JbmZvPiBwbHVnaW5JbmZv
KFBhZ2UmLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW5OYW1lPj4mKSA9IDA7
CisgICAgdmlydHVhbCBWZWN0b3I8UGx1Z2luSW5mbz4gcGx1Z2luSW5mbyhQYWdlJiwgc3RkOjpv
cHRpb25hbDxWZWN0b3I8U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+JikgPSAwOwogICAgIHZp
cnR1YWwgVmVjdG9yPFBsdWdpbkluZm8+IHdlYlZpc2libGVQbHVnaW5JbmZvKFBhZ2UmLCBjb25z
dCBVUkwmKSA9IDA7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQppbmRleCAxNmUyODY3YTliMDgyMGEzYTg1N2Q0MDlhNTFmNjEyNjA3MjFkYmI2Li4y
ODgxZjVmYmNiMzg3NDhkZjZiY2FiZGQ1OGY5OGMwZDI1YjRlN2Q0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTQwOSw3ICs0MDksNyBAQCBkZWYgaGVhZGVy
c19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRl
JzogWyc8V2ViQ29yZS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6U2hvdWxkTm90aWZ5V2hlblJlc29sdmVkJzogWyc8V2ViQ29yZS9TZXJ2aWNl
V29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNob3VsZFNhbXBsZSc6IFsnPFdl
YkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4nXSwKLSAgICAgICAgJ1dlYkNvcmU6OlN1
cHBvcnRlZFBsdWdpbk5hbWUnOiBbJzxXZWJDb3JlL1BsdWdpbkRhdGEuaD4nXSwKKyAgICAgICAg
J1dlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1BsdWdpbkRh
dGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhJzogWyc8
V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2lu
Z1Jlc3VsdCc6IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dl
YkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJzogWyc8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+J10s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCA5NGQzNTkxYjdlYjg5OWQxYTM0MWZhM2VmNTlmMzE5YzQ5MWZhNmVhLi5jOTI2NTA4ZTQ3YzY4
ODE3ZTNkNTcxNzc0ZjM2OGI0OTBlZGViNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTk2Myw4ICs5NjMsOCBAQCB2b2lkIEFyZ3Vt
ZW50Q29kZXI8UGx1Z2luSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQbHVn
aW5JbmZvJiBwbHVnaQogICAgIGVuY29kZXIgPDwgcGx1Z2luSW5mby5taW1lczsKICAgICBlbmNv
ZGVyIDw8IHBsdWdpbkluZm8uaXNBcHBsaWNhdGlvblBsdWdpbjsKICAgICBlbmNvZGVyLmVuY29k
ZUVudW0ocGx1Z2luSW5mby5jbGllbnRMb2FkUG9saWN5KTsKLSNpZiBQTEFURk9STShNQUMpCiAg
ICAgZW5jb2RlciA8PCBwbHVnaW5JbmZvLmJ1bmRsZUlkZW50aWZpZXI7CisjaWYgUExBVEZPUk0o
TUFDKQogICAgIGVuY29kZXIgPDwgcGx1Z2luSW5mby52ZXJzaW9uU3RyaW5nOwogI2VuZGlmCiB9
CkBAIC05ODQsOSArOTg0LDkgQEAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQbHVnaW5JbmZvPiBB
cmd1bWVudENvZGVyPFBsdWdpbkluZm8+OjpkZWNvZGUoRGVjb2RlciYgZGUKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShwbHVnaW5JbmZv
LmNsaWVudExvYWRQb2xpY3kpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2lmIFBM
QVRGT1JNKE1BQykKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBsdWdpbkluZm8uYnVuZGxlSWRl
bnRpZmllcikpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisjaWYgUExBVEZPUk0oTUFD
KQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGx1Z2luSW5mby52ZXJzaW9uU3RyaW5nKSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwCmluZGV4IGQ4NTBmM2IyYzYz
YWYzZGE5MDBiZjIwZTcxMjBjM2Q5NTEzOTgyM2EuLjZlYmI2Y2E4YWU3ODhiZDE3MmVlMWVmMjA2
YTk4Zjg3NTJkNWZlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luSW5mb1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKQEAgLTIyNCwyMiArMjI0LDIyIEBAIGJvb2wgUGx1Z2lu
SW5mb1N0b3JlOjppc1N1cHBvcnRlZFBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25z
dCBVUkwmIHBsdWdpCiAgICAgfSkgIT0gbm90Rm91bmQ7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8VmVj
dG9yPFN1cHBvcnRlZFBsdWdpbk5hbWU+PiBQbHVnaW5JbmZvU3RvcmU6OnN1cHBvcnRlZFBsdWdp
bk5hbWVzKCkKK3N0ZDo6b3B0aW9uYWw8VmVjdG9yPFN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXI+
PiBQbHVnaW5JbmZvU3RvcmU6OnN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKCkKIHsKICAgICBp
ZiAoIW1fc3VwcG9ydGVkUGx1Z2lucykKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAog
ICAgIHJldHVybiBXVEY6Om1hcCgqbV9zdXBwb3J0ZWRQbHVnaW5zLCBbXSAoYXV0byYmIGl0ZW0p
IHsKLSAgICAgICAgcmV0dXJuIFN1cHBvcnRlZFBsdWdpbk5hbWUgeyBpdGVtLm1hdGNoaW5nRG9t
YWluLCBpdGVtLm5hbWUgfTsKKyAgICAgICAgcmV0dXJuIFN1cHBvcnRlZFBsdWdpbklkZW50aWZp
ZXIgeyBpdGVtLm1hdGNoaW5nRG9tYWluLCBpdGVtLmlkZW50aWZpZXIgfTsKICAgICB9KTsKIH0K
IAotdm9pZCBQbHVnaW5JbmZvU3RvcmU6OmFkZFN1cHBvcnRlZFBsdWdpbihTdHJpbmcmJiBkb21h
aW5OYW1lLCBTdHJpbmcmJiBuYW1lLCBIYXNoU2V0PFN0cmluZz4mJiBtaW1lVHlwZXMsIEhhc2hT
ZXQ8U3RyaW5nPiBleHRlbnNpb25zKQordm9pZCBQbHVnaW5JbmZvU3RvcmU6OmFkZFN1cHBvcnRl
ZFBsdWdpbihTdHJpbmcmJiBkb21haW5OYW1lLCBTdHJpbmcmJiBpZGVudGlmaWVyLCBIYXNoU2V0
PFN0cmluZz4mJiBtaW1lVHlwZXMsIEhhc2hTZXQ8U3RyaW5nPiBleHRlbnNpb25zKQogewogICAg
IGlmICghbV9zdXBwb3J0ZWRQbHVnaW5zKQogICAgICAgICBtX3N1cHBvcnRlZFBsdWdpbnMgPSBW
ZWN0b3I8U3VwcG9ydGVkUGx1Z2luPiB7IH07CiAKLSAgICBtX3N1cHBvcnRlZFBsdWdpbnMtPmFw
cGVuZChTdXBwb3J0ZWRQbHVnaW4geyBXVEZNb3ZlKGRvbWFpbk5hbWUpLCBXVEZNb3ZlKG5hbWUp
LCBXVEZNb3ZlKG1pbWVUeXBlcyksIFdURk1vdmUoZXh0ZW5zaW9ucykgfSk7CisgICAgbV9zdXBw
b3J0ZWRQbHVnaW5zLT5hcHBlbmQoU3VwcG9ydGVkUGx1Z2luIHsgV1RGTW92ZShkb21haW5OYW1l
KSwgV1RGTW92ZShpZGVudGlmaWVyKSwgV1RGTW92ZShtaW1lVHlwZXMpLCBXVEZNb3ZlKGV4dGVu
c2lvbnMpIH0pOwogfQogCiBQbHVnaW5Nb2R1bGVJbmZvIFBsdWdpbkluZm9TdG9yZTo6aW5mb0Zv
clBsdWdpbldpdGhQYXRoKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oCmluZGV4IDJk
YTE1NDkyNzVkZTFhNDBlODdjYzZmMTQzNjVjZjJmMmU5M2EyYjUuLjU5YWZiM2Y3MjUwMzUzMTc4
YTZlMjAyZmZiM2IyN2YzMDRjN2NkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgZGVmYXVsdExvYWRQb2xpY3lGb3JQbHVn
aW4oY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYpOwogCiAgICAgYm9vbCBpc1N1cHBvcnRlZFBsdWdp
bihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBXZWJDb3JlOjpVUkwmIHBsdWdpblVSTCwg
Y29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgV2ViQ29yZTo6VVJMJiBwYWdlVVJM
KTsKLSAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1l
Pj4gc3VwcG9ydGVkUGx1Z2luTmFtZXMoKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJD
b3JlOjpTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyPj4gc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmll
cnMoKTsKICAgICB2b2lkIGFkZFN1cHBvcnRlZFBsdWdpbihTdHJpbmcmJiBtYXRjaGluZ0RvbWFp
biwgU3RyaW5nJiYgbmFtZSwgSGFzaFNldDxTdHJpbmc+JiYgbWltZVR5cGVzLCBIYXNoU2V0PFN0
cmluZz4gZXh0ZW5zaW9ucyk7CiAgICAgdm9pZCBjbGVhclN1cHBvcnRlZFBsdWdpbnMoKSB7IG1f
c3VwcG9ydGVkUGx1Z2lucyA9IHN0ZDo6bnVsbG9wdDsgfQogCkBAIC05OCw3ICs5OCw3IEBAIHBy
aXZhdGU6CiAKICAgICBzdHJ1Y3QgU3VwcG9ydGVkUGx1Z2luIHsKICAgICAgICAgU3RyaW5nIG1h
dGNoaW5nRG9tYWluOwotICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgU3RyaW5nIGlkZW50
aWZpZXI7CiAgICAgICAgIEhhc2hTZXQ8U3RyaW5nPiBtaW1lVHlwZXM7CiAgICAgICAgIEhhc2hT
ZXQ8U3RyaW5nPiBleHRlbnNpb25zOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwOTI3NDhiNDMzOWFlZmQxZjcyMWNhNzJlYzU4ZmM0
NjlkMmY2Y2VhLi41NDU3ZWI0N2Y3MmVmYWNmODQyMDVhYmNhYWYzYmRmMmE4ZDNlZjFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTU2MCwxMiAr
NTYwLDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp1cGRhdGVCYWNrRm9yd2FyZEl0ZW0oY29u
c3QgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJiBpdGVtCiB9CiAKICNpZiBFTkFCTEUoTkVUU0NB
UEVfUExVR0lOX0FQSSkKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRQbHVnaW5zKGJvb2wgcmVm
cmVzaCwgVmVjdG9yPFBsdWdpbkluZm8+JiBwbHVnaW5zLCBWZWN0b3I8UGx1Z2luSW5mbz4mIGFw
cGxpY2F0aW9uUGx1Z2lucywgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVk
UGx1Z2luTmFtZT4+JiBzdXBwb3J0ZWRQbHVnaW5OYW1lcykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpnZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCwgVmVjdG9yPFBsdWdpbkluZm8+JiBwbHVnaW5zLCBW
ZWN0b3I8UGx1Z2luSW5mbz4mIGFwcGxpY2F0aW9uUGx1Z2lucywgc3RkOjpvcHRpb25hbDxWZWN0
b3I8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+JiBzdXBwb3J0ZWRQbHVnaW5J
ZGVudGlmaWVycykKIHsKICAgICBpZiAocmVmcmVzaCkKICAgICAgICAgbV9wcm9jZXNzUG9vbC0+
cGx1Z2luSW5mb1N0b3JlKCkucmVmcmVzaCgpOwogCi0gICAgc3VwcG9ydGVkUGx1Z2luTmFtZXMg
PSBtX3Byb2Nlc3NQb29sLT5wbHVnaW5JbmZvU3RvcmUoKS5zdXBwb3J0ZWRQbHVnaW5OYW1lcygp
OworICAgIHN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzID0gbV9wcm9jZXNzUG9vbC0+cGx1Z2lu
SW5mb1N0b3JlKCkuc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMoKTsKIAogICAgIFZlY3RvcjxQ
bHVnaW5Nb2R1bGVJbmZvPiBwbHVnaW5Nb2R1bGVzID0gbV9wcm9jZXNzUG9vbC0+cGx1Z2luSW5m
b1N0b3JlKCkucGx1Z2lucygpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGx1Z2luTW9k
dWxlcy5zaXplKCk7ICsraSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKaW5kZXggN2Q2M2RjNWIyMGE3ZjYyNDEyYjExYmNlYWY2NWM5NDRlOGQwMGM0ZC4uYzQ2ZDI5
MTlmZjI4NWVjNDk1ZTdlMmNlNWExMmFiZDNiMjgwNWU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTI2Nyw3ICsyNjcsNyBAQCBwcml2YXRlOgogCiAg
ICAgLy8gUGx1Z2lucwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIHZvaWQg
Z2V0UGx1Z2lucyhib29sIHJlZnJlc2gsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYgcGx1
Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWU+PiYpOworICAg
IHZvaWQgZ2V0UGx1Z2lucyhib29sIHJlZnJlc2gsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZv
PiYgcGx1Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBhcHBsaWNhdGlvblBsdWdp
bnMsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbklkZW50aWZp
ZXI+PiYpOwogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHZvaWQgZ2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IDllNTM5ZjU4YmJiODU4Mjk5MjlkYTNhMjMyZTgzMTM0NmZkNzc3YzIuLmZjODA4YWYyMGVmOGNk
ZTljNGZjNjBjNzM0YWZlODBkYjVkNjkwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTMzLDcgKzMzLDcgQEAgbWVz
c2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKIAogICAgICMgUGx1Z2lu
IG1lc3NhZ2VzLgogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIEdldFBsdWdp
bnMoYm9vbCByZWZyZXNoKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IHBsdWdpbnMs
IFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0cnVjdCBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lPj4gc3VwcG9y
dGVkUGx1Z2luTmFtZXMpCisgICAgR2V0UGx1Z2lucyhib29sIHJlZnJlc2gpIC0+IChWZWN0b3I8
V2ViQ29yZTo6UGx1Z2luSW5mbz4gcGx1Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+
IGFwcGxpY2F0aW9uUGx1Z2lucywgc3RydWN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6
OlN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXI+PiBzdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVycykK
ICAgICBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9r
ZW4pIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSwgYm9vbCBzdXBwb3J0c0Fz
eW5jaHJvbm91c0luaXRpYWxpemF0aW9uKSBEZWxheWVkCiAjZW5kaWYKICAgICBHZXROZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUp
IERlbGF5ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCmluZGV4IGMxYWM0ZDU4ZTRmN2NjYzRiMjRmNmQxYjk3Nzg4Mjc1NTk4MjU2Nzcu
LjIwZTEyMmE3MDczMjQ1Y2FiOGVkOTRmZDk0Mjg2Y2I5ZTVhZTE1ZjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtNjUxLDYg
KzY1MSw3IEBAIFBsdWdpbkluZm8gUERGUGx1Z2luOjpwbHVnaW5JbmZvKCkKICAgICBpbmZvLm5h
bWUgPSBidWlsdEluUERGUGx1Z2luTmFtZSgpOwogICAgIGluZm8uaXNBcHBsaWNhdGlvblBsdWdp
biA9IHRydWU7CiAgICAgaW5mby5jbGllbnRMb2FkUG9saWN5ID0gUGx1Z2luTG9hZENsaWVudFBv
bGljeVVuZGVmaW5lZDsKKyAgICBpbmZvLmJ1bmRsZUlkZW50aWZpZXIgPSBBU0NJSUxpdGVyYWwo
ImNvbS5hcHBsZS53ZWJraXQuYnVpbHRJblBERlBsdWdpbiIpOwogCiAgICAgTWltZUNsYXNzSW5m
byBwZGZNaW1lQ2xhc3NJbmZvOwogICAgIHBkZk1pbWVDbGFzc0luZm8udHlwZSA9ICJhcHBsaWNh
dGlvbi9wZGYiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAKaW5kZXggNGJkMWRiNjZlYTUzZGI5MDk3Njhk
NTJlOThkZTk2ODE2YWY5NzMyYS4uNTBmOWVhYTk3NTY5YmU3OTNiZmIxZDk5YzNlNDAwMWRiNGY1
NzI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1
Z2luSW5mb1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwCkBAIC05NywyOSArOTcsMjkgQEAgdm9pZCBXZWJQ
bHVnaW5JbmZvUHJvdmlkZXI6OnJlZnJlc2hQbHVnaW5zKCkKICNlbmRpZgogfQogCi1WZWN0b3I8
UGx1Z2luSW5mbz4gV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpwbHVnaW5JbmZvKFBhZ2UmIHBhZ2Us
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN1cHBvcnRlZFBsdWdpbk5hbWU+PiYgc3VwcG9ydGVkUGx1
Z2luTmFtZXMpCitWZWN0b3I8UGx1Z2luSW5mbz4gV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpwbHVn
aW5JbmZvKFBhZ2UmIHBhZ2UsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN1cHBvcnRlZFBsdWdpbklk
ZW50aWZpZXI+PiYgc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpCiB7CiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgcG9wdWxhdGVQbHVnaW5DYWNoZShwYWdlKTsKIAotICAg
IGlmIChtX2NhY2hlZFN1cHBvcnRlZFBsdWdpbk5hbWVzKQotICAgICAgICBzdXBwb3J0ZWRQbHVn
aW5OYW1lcyA9ICptX2NhY2hlZFN1cHBvcnRlZFBsdWdpbk5hbWVzOworICAgIGlmIChtX2NhY2hl
ZFN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKQorICAgICAgICBzdXBwb3J0ZWRQbHVnaW5JZGVu
dGlmaWVycyA9ICptX2NhY2hlZFN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzOwogCiAgICAgcmV0
dXJuIHBhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdp
bnMoKSA/IG1fY2FjaGVkUGx1Z2lucyA6IG1fY2FjaGVkQXBwbGljYXRpb25QbHVnaW5zOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0ocGFnZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHN1cHBvcnRlZFBs
dWdpbk5hbWVzKTsKKyAgICBVTlVTRURfUEFSQU0oc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMp
OwogICAgIHJldHVybiB7IH07CiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
CiB9CiAKIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6
OndlYlZpc2libGVQbHVnaW5JbmZvKFBhZ2UmIHBhZ2UsIGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJs
KQogewotICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5h
bWU+PiBzdXBwb3J0ZWRQbHVnaW5OYW1lczsKLSAgICBhdXRvIHBsdWdpbnMgPSBwbHVnaW5JbmZv
KHBhZ2UsIHN1cHBvcnRlZFBsdWdpbk5hbWVzKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxX
ZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyPj4gc3VwcG9ydGVkUGx1Z2luSWRlbnRp
ZmllcnM7CisgICAgYXV0byBwbHVnaW5zID0gcGx1Z2luSW5mbyhwYWdlLCBzdXBwb3J0ZWRQbHVn
aW5JZGVudGlmaWVycyk7CiAKICAgICBwbHVnaW5zLnJlbW92ZUFsbE1hdGNoaW5nKFsmXSAoYXV0
byYgcGx1Z2luKSB7Ci0gICAgICAgIHJldHVybiBzdXBwb3J0ZWRQbHVnaW5OYW1lcyAmJiAhaXNT
dXBwb3J0ZWRQbHVnaW4oKnN1cHBvcnRlZFBsdWdpbk5hbWVzLCB1cmwsIHBsdWdpbi5uYW1lKTsK
KyAgICAgICAgcmV0dXJuIHN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzICYmICFpc1N1cHBvcnRl
ZFBsdWdpbigqc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMsIHVybCwgcGx1Z2luLmJ1bmRsZUlk
ZW50aWZpZXIpOwogICAgIH0pOwogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTQ3LDcgKzE0Nyw3
IEBAIHZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpwb3B1bGF0ZVBsdWdpbkNhY2hlKGNvbnN0
IFdlYkNvcmU6OlBhZ2UmIHBhZ2UpCiAgICAgICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5n
RGV0ZWN0aW9uRGlzYWJsZXI7CiAKICAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vz
c1Byb3h5OjpHZXRQbHVnaW5zKG1fc2hvdWxkUmVmcmVzaFBsdWdpbnMpLAotICAgICAgICAgICAg
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luczo6UmVwbHkobV9jYWNoZWRQbHVn
aW5zLCBtX2NhY2hlZEFwcGxpY2F0aW9uUGx1Z2lucywgbV9jYWNoZWRTdXBwb3J0ZWRQbHVnaW5O
YW1lcyksIDAsCisgICAgICAgICAgICBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVn
aW5zOjpSZXBseShtX2NhY2hlZFBsdWdpbnMsIG1fY2FjaGVkQXBwbGljYXRpb25QbHVnaW5zLCBt
X2NhY2hlZFN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKSwgMCwKICAgICAgICAgICAgIFNlY29u
ZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkRvTm90UHJvY2Vzc0luY29taW5n
TWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSkpCiAgICAgICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbklu
Zm9Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyLmgKaW5kZXggMmExYmRkMDgyNDY5MjFkYjc0NjVmNGRkMDhmMmQ4Y2RmY2Yx
Mjc2ZC4uMWJiYWQ1YTc5ZmIxMWVjNjgwNzQ5NDdkMDA3YzNjZDU2ZTU4MTlkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1By
b3ZpZGVyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJQbHVn
aW5JbmZvUHJvdmlkZXIoKTsKIAotICAgIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVn
aW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBw
b3J0ZWRQbHVnaW5OYW1lPj4mKSBmaW5hbDsKKyAgICBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5m
bz4gcGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiwgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29y
ZTo6U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+JikgZmluYWw7CiAgICAgVmVjdG9yPFdlYkNv
cmU6OlBsdWdpbkluZm8+IHdlYlZpc2libGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBjb25z
dCBXZWJDb3JlOjpVUkwmKSBmaW5hbDsKICAgICB2b2lkIHJlZnJlc2hQbHVnaW5zKCkgb3ZlcnJp
ZGU7CiAKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkUmVmcmVz
aFBsdWdpbnMgeyBmYWxzZSB9OwogICAgIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBtX2Nh
Y2hlZFBsdWdpbnM7CiAgICAgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IG1fY2FjaGVkQXBw
bGljYXRpb25QbHVnaW5zOwotICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBv
cnRlZFBsdWdpbk5hbWU+PiBtX2NhY2hlZFN1cHBvcnRlZFBsdWdpbk5hbWVzOworICAgIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXI+PiBtX2Nh
Y2hlZFN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJv
dmlkZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdp
bkluZm9Qcm92aWRlci5oCmluZGV4IDgxMzI0NzJiOGIzNWI0ZTAxZWMyNzI5YzE4YjVlMzRhOGJk
Yjc0YWYuLmQxYWI1NTExODRjMGE1ZjY0OTk0MGQ4ZTkyN2JkODRlNTI5YzdmZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Q
cm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlBsdWdpbkluZm9Qcm92aWRlci5oCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICB2b2lkIHJlZnJlc2hQbHVnaW5zKCkgb3ZlcnJpZGU7Ci0gICAgVmVjdG9yPFdlYkNv
cmU6OlBsdWdpbkluZm8+IHBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYsIHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWU+PiYpIGZpbmFsOworICAgIFZlY3Rv
cjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyPj4mKSBmaW5h
bDsKICAgICBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gd2ViVmlzaWJsZVBsdWdpbkluZm8o
V2ViQ29yZTo6UGFnZSYsIGNvbnN0IFdlYkNvcmU6OlVSTCYpIGZpbmFsOwogCiAgICAgV2ViUGx1
Z2luSW5mb1Byb3ZpZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0KaW5kZXggMmVk
ZTE5YWQ4ODlmZTM0YjkxNzUwMjMyMDE3YjVlNGNiOTdkZGM5MC4uZTM0ZWM3M2U1NGZiZDk1NDE2
OGZmY2E1NTJlNGYzNmJjOTVmNTQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5tbQpA
QCAtNTUsNyArNTUsNyBAQCB2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cmVmcmVzaFBsdWdp
bnMoKQogICAgIFtbV2ViUGx1Z2luRGF0YWJhc2Ugc2hhcmVkRGF0YWJhc2VJZkV4aXN0c10gcmVm
cmVzaF07CiB9CiAKLVZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBXZWJQbHVnaW5JbmZvUHJv
dmlkZXI6OnBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYgcGFnZSwgc3RkOjpvcHRpb25hbDxWZWN0
b3I8U3VwcG9ydGVkUGx1Z2luTmFtZT4+JikKK1ZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBX
ZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYgcGFnZSwgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+JikKIHsKICAgICBW
ZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gcGx1Z2luczsKIApAQCAtNzYsNiArNzYsNiBAQCBW
ZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpwbHVnaW5J
bmZvKFdlYkNvcmU6OlBhZ2UmIHBhZwogCiBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyOjp3ZWJWaXNpYmxlUGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBw
YWdlLCBjb25zdCBXZWJDb3JlOjpVUkwmKQogewotICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN1
cHBvcnRlZFBsdWdpbk5hbWU+PiBzdXBwb3J0ZWRQbHVnaW5OYW1lczsKLSAgICByZXR1cm4gcGx1
Z2luSW5mbyhwYWdlLCBzdXBwb3J0ZWRQbHVnaW5OYW1lcyk7CisgICAgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+IHN1cHBvcnRlZFBsdWdpbklkZW50aWZp
ZXJzOworICAgIHJldHVybiBwbHVnaW5JbmZvKHBhZ2UsIHN1cHBvcnRlZFBsdWdpbklkZW50aWZp
ZXJzKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342696</attachid>
            <date>2018-06-13 15:00:41 -0700</date>
            <delta_ts>2018-06-13 15:22:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-186578-20180613150040.patch</filename>
            <type>text/plain</type>
            <size>25561</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTAzMjhmMTg0YTYzMDBj
YTA5NTIxMDUzODdkN2NiYWUxNWRjYWZkNS4uMzdlZTRlYmFjZjczZjZhYjA4ZWJiN2I0ZjM2M2Vj
ZDI0YmZjNTBlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE4LTA2LTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0ZWQgcGx1Z2lu
IGNoZWNrIHNob3VsZCBiZSBiYXNlZCBvbiBwbHVnaW4gaWRlbnRpZmllcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NTc4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS80MDUyMzgyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICBSZW5hbWUgU3VwcG9ydGVkUGx1Z2luTmFtZSBpbiBTdXBwb3J0ZWRQbHVnaW5J
ZGVudGlmaWVyLgorICAgICAgICBBZGQgY3Jvc3MtcGxhdGZvcm0gc3VwcG9ydCBmb3IgcGx1Zy1p
biBpZGVudGlmaWVyLgorCisgICAgICAgIFVwZGF0ZSBidWlsdC1pbiBQREYgcGx1Zy1pbiB0byBj
aGVjayBpdHMgaWRlbnRpZmllciBpbnN0ZWFkIG9mIGl0cyBuYW1lLgorICAgICAgICBUaGlzIGlz
IHN0cm9uZ2VyIGFzIHRoZSBuYW1lIG1heSBjaGFuZ2UgYWNjb3JkaW5nIGxvY2FsaXphdGlvbi4K
KworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBsdWdpbnMv
UGx1Z2luRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0J1aWx0SW5QREZQbHVnSW4pOgor
ICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0YTo6aW5pdFBsdWdpbnMpOgorICAgICAgICAqIHBs
dWdpbnMvUGx1Z2luRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAg
ICAgIChXZWJDb3JlOjppc1N1cHBvcnRlZFBsdWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTdXBw
b3J0ZWRQbHVnaW5JZGVudGlmaWVyOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3VwcG9y
dGVkUGx1Z2luSWRlbnRpZmllcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN1
cHBvcnRlZFBsdWdpbk5hbWU6OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
dXBwb3J0ZWRQbHVnaW5OYW1lOjplbmNvZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBs
dWdpbnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmg6CisKIDIwMTgtMDYtMTMgIFBoaWxpcHBlIE5vcm1h
bmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGJ1aWxk
IGZpeCBmb3IgLS1jbWFrZWFyZ3M9LURVU0VfR1NUUkVBTUVSX0dMPU9GRgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBh
Nzc3ZDc1ZTA2ZGFmYTNmN2RmMGY5YjI5MTFiNmQ3NTNkYWUzMjhmLi40ZjFkY2IwMDgzNGJhYmE3
YmY4Mjg3ODEwOTFjMGM4OTg0ZWIyNDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4
LTA2LTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBw
b3J0ZWQgcGx1Z2luIGNoZWNrIHNob3VsZCBiZSBiYXNlZCBvbiBwbHVnaW4gaWRlbnRpZmllcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NTc4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MDUyMzgyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBSZWZhY3RvcmluZyB0byBtb3ZlIGZyb20gUGx1Z2luIG5h
bWUgdG8gUGx1Z2luIGlkZW50aWZpZXIuCisgICAgICAgIFNldCBidWlsdC1pbiBwZGYgcGx1Z2lu
IGlkZW50aWZpZXIuCisgICAgICAgIFRoaXMgYWxsb3dzIG1ha2luZyBzdXJlIHRoYXQgdGhlIFBE
RiBwbHVnLWluIGNoZWNrIG1pZ2h0IG5vdCBjaGFuZ2UgYWNjb3JkaW5nIGxvY2FsaXphdGlvbi4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PFBsdWdpbkluZm8+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFBsdWdp
bkluZm8+OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9T
dG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkluZm9TdG9yZTo6c3VwcG9ydGVkUGx1
Z2luSWRlbnRpZmllcnMpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5JbmZvU3RvcmU6OmFkZFN1
cHBvcnRlZFBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkluZm9TdG9yZTo6c3VwcG9y
dGVkUGx1Z2luTmFtZXMpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbkluZm9TdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmdldFBsdWdpbnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OnBsdWdpbkluZm8p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBsdWdpbkluZm8pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OndlYlZpc2libGVQbHVnaW5J
bmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpwb3B1bGF0ZVBs
dWdpbkNhY2hlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1By
b3ZpZGVyLmg6CisKIDIwMTgtMDYtMTIgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgVHVybiBDU1MgU3ByaW5nIEFuaW1hdGlvbnMgYW5kIExpbmsgUHJlbG9h
ZCBvZmYgYnkgZGVmYXVsdCBmb3IgcHJvZHVjdGlvbiBidWlsZHMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKaW5kZXggOWNhNjY2ODdlYmE5YjE3M2M5OTEwZTdhZGZlMzA3NGY0YTgwYjgyZi4u
MWRmZjQ5MWY0YjE2ZGY3YTkyNmFhN2FmNTcyYWFkZjYzOWJlZDRkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTA2LTEzICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0ZWQgcGx1Z2luIGNoZWNrIHNo
b3VsZCBiZSBiYXNlZCBvbiBwbHVnaW4gaWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NTc4CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS80MDUyMzgyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5tbToKKyAgICAgICAgKFdlYlBsdWdp
bkluZm9Qcm92aWRlcjo6cGx1Z2luSW5mbyk6CisgICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlk
ZXI6OndlYlZpc2libGVQbHVnaW5JbmZvKToKKwogMjAxOC0wNi0xMSAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBMaW5rIGRyYWcgaW1hZ2UgaXMgaW5j
b25zaXN0ZW50bHkgdW5yZWFkYWJsZSBpbiBkYXJrIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAKaW5kZXggNjA1M2I4NzhiMmYwNDU0MDAzZGYxNDcwMWVhOGNiYTRkMDM5
ZGFjNy4uMmI0ZjQ5NTZhNzI5Y2Q0ZGY1YjQ2MWMyNDA5ZGVjNTczNDFjY2QzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTMyNiw3ICszMjYsNyBAQCBjbGFzcyBF
bXB0eVBheW1lbnRDb29yZGluYXRvckNsaWVudCBmaW5hbCA6IHB1YmxpYyBQYXltZW50Q29vcmRp
bmF0b3JDbGllbnQgewogCiBjbGFzcyBFbXB0eVBsdWdpbkluZm9Qcm92aWRlciBmaW5hbCA6IHB1
YmxpYyBQbHVnaW5JbmZvUHJvdmlkZXIgewogICAgIHZvaWQgcmVmcmVzaFBsdWdpbnMoKSBmaW5h
bCB7IH07Ci0gICAgVmVjdG9yPFBsdWdpbkluZm8+IHBsdWdpbkluZm8oUGFnZSYsIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPFN1cHBvcnRlZFBsdWdpbk5hbWU+PiYpIGZpbmFsIHsgcmV0dXJuIHsgfTsg
fQorICAgIFZlY3RvcjxQbHVnaW5JbmZvPiBwbHVnaW5JbmZvKFBhZ2UmLCBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyPj4mKSBmaW5hbCB7IHJldHVybiB7IH07
IH0KICAgICBWZWN0b3I8UGx1Z2luSW5mbz4gd2ViVmlzaWJsZVBsdWdpbkluZm8oUGFnZSYsIGNv
bnN0IFVSTCYpIGZpbmFsIHsgcmV0dXJuIHsgfTsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luRGF0YS5jcHAKaW5kZXggYjQ2NjJjYTI1Y2ZmNTE0OTcyNGE0ODNmYTU0NzBmM2IzNDhh
ZmY0Ni4uNDZjNGM1N2RmYjg4YTA3OWMxNzhiMDE2MGUxMzc2MTg1ZmRlYjc5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuY3BwCkBAIC01Miw5ICs1Miw5IEBAIGNvbnN0IFZlY3Rv
cjxQbHVnaW5JbmZvPiYgUGx1Z2luRGF0YTo6d2ViVmlzaWJsZVBsdWdpbnMoKSBjb25zdAogfQog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNCdWlsdEluUERGUGx1
Z0luKGNvbnN0IFBsdWdpbkluZm8mIHBsdWdJbikKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0J1aWx0
SW5QREZQbHVnSW4oY29uc3QgUGx1Z2luSW5mbyYgcGx1Z2luKQogewotICAgIHJldHVybiBwbHVn
SW4ubmFtZSA9PSBidWlsdEluUERGUGx1Z2luTmFtZSgpOworICAgIHJldHVybiBlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShwbHVnaW4uYnVuZGxlSWRlbnRpZmllciwgImNvbS5hcHBsZS53
ZWJraXQuYnVpbHRpbnBkZnBsdWdpbiIpOwogfQogI2Vsc2UKIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c0J1aWx0SW5QREZQbHVnSW4oY29uc3QgUGx1Z2luSW5mbyYpCkBAIC0xOTAsNyArMTkwLDcgQEAg
dm9pZCBQbHVnaW5EYXRhOjppbml0UGx1Z2lucygpCiB7CiAgICAgQVNTRVJUKG1fcGx1Z2lucy5p
c0VtcHR5KCkpOwogCi0gICAgbV9wbHVnaW5zID0gbV9wYWdlLnBsdWdpbkluZm9Qcm92aWRlcigp
LnBsdWdpbkluZm8obV9wYWdlLCBtX3N1cHBvcnRlZFBsdWdpbk5hbWVzKTsKKyAgICBtX3BsdWdp
bnMgPSBtX3BhZ2UucGx1Z2luSW5mb1Byb3ZpZGVyKCkucGx1Z2luSW5mbyhtX3BhZ2UsIG1fc3Vw
cG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oCmluZGV4IDE2Nzg1MmQzNGQyYzUxMWU4OGY2MGMz
NWU5NmYxMmNjYmM4NDg4YjEuLjQ0NTAwZmFhMzZkMWQwMWFkNDlmNzNmZTBkMDAyNDlkNjc5NzRi
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oCkBAIC03MywyNyArNzMsMjcgQEAg
c3RydWN0IFBsdWdpbkluZm8gewogCiAgICAgUGx1Z2luTG9hZENsaWVudFBvbGljeSBjbGllbnRM
b2FkUG9saWN5OwogCi0jaWYgUExBVEZPUk0oTUFDKQogICAgIFN0cmluZyBidW5kbGVJZGVudGlm
aWVyOworI2lmIFBMQVRGT1JNKE1BQykKICAgICBTdHJpbmcgdmVyc2lvblN0cmluZzsKICNlbmRp
ZgogfTsKIAogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShQbHVnaW5JbmZvJiBhLCBQbHVnaW5JbmZv
JiBiKQogewotICAgIGJvb2wgcmVzdWx0ID0gYS5uYW1lID09IGIubmFtZSAmJiBhLmZpbGUgPT0g
Yi5maWxlICYmIGEuZGVzYyA9PSBiLmRlc2MgJiYgYS5taW1lcyA9PSBiLm1pbWVzICYmIGEuaXNB
cHBsaWNhdGlvblBsdWdpbiA9PSBiLmlzQXBwbGljYXRpb25QbHVnaW4gJiYgYS5jbGllbnRMb2Fk
UG9saWN5ID09IGIuY2xpZW50TG9hZFBvbGljeTsKKyAgICBib29sIHJlc3VsdCA9IGEubmFtZSA9
PSBiLm5hbWUgJiYgYS5maWxlID09IGIuZmlsZSAmJiBhLmRlc2MgPT0gYi5kZXNjICYmIGEubWlt
ZXMgPT0gYi5taW1lcyAmJiBhLmlzQXBwbGljYXRpb25QbHVnaW4gPT0gYi5pc0FwcGxpY2F0aW9u
UGx1Z2luICYmIGEuY2xpZW50TG9hZFBvbGljeSA9PSBiLmNsaWVudExvYWRQb2xpY3kgJiYgYS5i
dW5kbGVJZGVudGlmaWVyID09IGIuYnVuZGxlSWRlbnRpZmllcjsKICNpZiBQTEFURk9STShNQUMp
Ci0gICAgcmVzdWx0ID0gcmVzdWx0ICYmIGEuYnVuZGxlSWRlbnRpZmllciA9PSBiLmJ1bmRsZUlk
ZW50aWZpZXIgJiYgYS52ZXJzaW9uU3RyaW5nID09IGIudmVyc2lvblN0cmluZzsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgYS52ZXJzaW9uU3RyaW5nID09IGIudmVyc2lvblN0cmluZzsKICNlbmRp
ZgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0cnVjdCBTdXBwb3J0ZWRQbHVnaW5OYW1lIHsK
K3N0cnVjdCBTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyIHsKICAgICBTdHJpbmcgbWF0Y2hpbmdE
b21haW47Ci0gICAgU3RyaW5nIHBsdWdpbk5hbWU7CisgICAgU3RyaW5nIHBsdWdpbklkZW50aWZp
ZXI7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
U3VwcG9ydGVkUGx1Z2luTmFtZT4gZGVjb2RlKERlY29kZXImKTsKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVy
PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAogLy8gRklYTUU6IG1lcmdlIHdpdGggUGx1Z2luRGF0
YWJhc2UgaW4gdGhlIGZ1dHVyZQpAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiBwcm90ZWN0
ZWQ6CiAgICAgUGFnZSYgbV9wYWdlOwogICAgIFZlY3RvcjxQbHVnaW5JbmZvPiBtX3BsdWdpbnM7
Ci0gICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3VwcG9ydGVkUGx1Z2luTmFtZT4+IG1fc3VwcG9y
dGVkUGx1Z2luTmFtZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3VwcG9ydGVkUGx1Z2lu
SWRlbnRpZmllcj4+IG1fc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnM7CiAKICAgICBzdHJ1Y3Qg
Q2FjaGVkVmlzaWJsZVBsdWdpbnMgewogICAgICAgICBVUkwgcGFnZVVSTDsKQEAgLTEzNywzMiAr
MTM3LDMyIEBAIHByb3RlY3RlZDoKICAgICBtdXRhYmxlIENhY2hlZFZpc2libGVQbHVnaW5zIG1f
Y2FjaGVkVmlzaWJsZVBsdWdpbnM7CiB9OwogCi1pbmxpbmUgYm9vbCBpc1N1cHBvcnRlZFBsdWdp
bihjb25zdCBWZWN0b3I8U3VwcG9ydGVkUGx1Z2luTmFtZT4mIHBsdWdpbk5hbWVzLCBjb25zdCBV
UkwmIHBhZ2VVUkwsIGNvbnN0IFN0cmluZyYgcGx1Z2luTmFtZSkKK2lubGluZSBib29sIGlzU3Vw
cG9ydGVkUGx1Z2luKGNvbnN0IFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyPiYgcGx1
Z2luSWRlbnRpZmllcnMsIGNvbnN0IFVSTCYgcGFnZVVSTCwgY29uc3QgU3RyaW5nJiBwbHVnaW5J
ZGVudGlmaWVyKQogewotICAgIHJldHVybiBwbHVnaW5OYW1lcy5maW5kTWF0Y2hpbmcoWyZdIChh
dXRvJiYgcGx1Z2luKSB7Ci0gICAgICAgIHJldHVybiBwYWdlVVJMLmlzTWF0Y2hpbmdEb21haW4o
cGx1Z2luLm1hdGNoaW5nRG9tYWluKSAmJiBwbHVnaW4ucGx1Z2luTmFtZSA9PSBwbHVnaW5OYW1l
OworICAgIHJldHVybiBwbHVnaW5JZGVudGlmaWVycy5maW5kTWF0Y2hpbmcoWyZdIChhdXRvJiYg
cGx1Z2luKSB7CisgICAgICAgIHJldHVybiBwYWdlVVJMLmlzTWF0Y2hpbmdEb21haW4ocGx1Z2lu
Lm1hdGNoaW5nRG9tYWluKSAmJiBwbHVnaW4ucGx1Z2luSWRlbnRpZmllciA9PSBwbHVnaW5JZGVu
dGlmaWVyOwogICAgIH0pICE9IG5vdEZvdW5kOwogfQogCi10ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBpbmxpbmUgc3RkOjpvcHRpb25hbDxTdXBwb3J0ZWRQbHVnaW5OYW1lPiBTdXBwb3J0ZWRQbHVn
aW5OYW1lOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
IGlubGluZSBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXI+IFN1cHBvcnRl
ZFBsdWdpbklkZW50aWZpZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBtYXRjaGluZ0RvbWFpbjsKICAgICBkZWNvZGVyID4+IG1hdGNoaW5n
RG9tYWluOwogICAgIGlmICghbWF0Y2hpbmdEb21haW4pCiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gcGx1Z2luTmFtZTsKLSAgICBkZWNv
ZGVyID4+IHBsdWdpbk5hbWU7Ci0gICAgaWYgKCFwbHVnaW5OYW1lKQorICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBwbHVnaW5JZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gcGx1Z2luSWRlbnRp
ZmllcjsKKyAgICBpZiAoIXBsdWdpbklkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAKLSAgICByZXR1cm4gU3VwcG9ydGVkUGx1Z2luTmFtZSB7IFdURk1vdmUobWF0Y2hp
bmdEb21haW4udmFsdWUoKSksIFdURk1vdmUocGx1Z2luTmFtZS52YWx1ZSgpKSB9OworICAgIHJl
dHVybiBTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyIHsgV1RGTW92ZShtYXRjaGluZ0RvbWFpbi52
YWx1ZSgpKSwgV1RGTW92ZShwbHVnaW5JZGVudGlmaWVyLnZhbHVlKCkpIH07CiB9CiAKLXRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IGlubGluZSB2b2lkIFN1cHBvcnRlZFBsdWdpbk5hbWU6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5saW5l
IHZvaWQgU3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBtYXRjaGluZ0RvbWFpbjsKLSAgICBlbmNvZGVyIDw8
IHBsdWdpbk5hbWU7CisgICAgZW5jb2RlciA8PCBwbHVnaW5JZGVudGlmaWVyOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpbkluZm9Qcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5JbmZvUHJv
dmlkZXIuaAppbmRleCAwNzJmMDgzYzU2NGQwYzRhZGE2MWY4NzQwMThkMzk2YmU3NjVmN2IwLi5i
NGFiNDYyNjUzNDczNzc1MWFmMTNkYzQ0ZGYwYjc2MDE1YWM3ODUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkluZm9Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgYWRkUGFnZShQYWdlJik7CiAgICAgdm9pZCByZW1vdmVQYWdlKFBhZ2UmKTsK
IAotICAgIHZpcnR1YWwgVmVjdG9yPFBsdWdpbkluZm8+IHBsdWdpbkluZm8oUGFnZSYsIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPFN1cHBvcnRlZFBsdWdpbk5hbWU+PiYpID0gMDsKKyAgICB2aXJ0dWFs
IFZlY3RvcjxQbHVnaW5JbmZvPiBwbHVnaW5JbmZvKFBhZ2UmLCBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyPj4mKSA9IDA7CiAgICAgdmlydHVhbCBWZWN0b3I8
UGx1Z2luSW5mbz4gd2ViVmlzaWJsZVBsdWdpbkluZm8oUGFnZSYsIGNvbnN0IFVSTCYpID0gMDsK
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4
IDE2ZTI4NjdhOWIwODIwYTNhODU3ZDQwOWE1MWY2MTI2MDcyMWRiYjYuLjI4ODFmNWZiY2IzODc0
OGRmNmJjYWJkZDU4Zjk4YzBkMjViNGU3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQpAQCAtNDA5LDcgKzQwOSw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5
cGUpOgogICAgICAgICAnV2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGUnOiBbJzxXZWJDb3Jl
L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpT
aG91bGROb3RpZnlXaGVuUmVzb2x2ZWQnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6U2hvdWxkU2FtcGxlJzogWyc8V2ViQ29yZS9EaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oPiddLAotICAgICAgICAnV2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2lu
TmFtZSc6IFsnPFdlYkNvcmUvUGx1Z2luRGF0YS5oPiddLAorICAgICAgICAnV2ViQ29yZTo6U3Vw
cG9ydGVkUGx1Z2luSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvUGx1Z2luRGF0YS5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdERhdGEnOiBbJzxXZWJDb3JlL1RleHRD
aGVja2luZy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0JzogWyc8
V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6VGV4dElu
ZGljYXRvckRhdGEnOiBbJzxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4nXSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDk0ZDM1OTFiN2Vi
ODk5ZDFhMzQxZmEzZWY1OWYzMTljNDkxZmE2ZWEuLmM5MjY1MDhlNDdjNjg4MTdlM2Q1NzE3NzRm
MzY4YjQ5MGVkZWI1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcApAQCAtOTYzLDggKzk2Myw4IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxQbHVn
aW5JbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBsdWdpbkluZm8mIHBsdWdp
CiAgICAgZW5jb2RlciA8PCBwbHVnaW5JbmZvLm1pbWVzOwogICAgIGVuY29kZXIgPDwgcGx1Z2lu
SW5mby5pc0FwcGxpY2F0aW9uUGx1Z2luOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShwbHVnaW5J
bmZvLmNsaWVudExvYWRQb2xpY3kpOwotI2lmIFBMQVRGT1JNKE1BQykKICAgICBlbmNvZGVyIDw8
IHBsdWdpbkluZm8uYnVuZGxlSWRlbnRpZmllcjsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgZW5j
b2RlciA8PCBwbHVnaW5JbmZvLnZlcnNpb25TdHJpbmc7CiAjZW5kaWYKIH0KQEAgLTk4NCw5ICs5
ODQsOSBAQCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBsdWdpbkluZm8+IEFyZ3VtZW50Q29kZXI8
UGx1Z2luSW5mbz46OmRlY29kZShEZWNvZGVyJiBkZQogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHBsdWdpbkluZm8uY2xpZW50TG9hZFBv
bGljeSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0jaWYgUExBVEZPUk0oTUFDKQog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGx1Z2luSW5mby5idW5kbGVJZGVudGlmaWVyKSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwbHVnaW5JbmZvLnZlcnNpb25TdHJpbmcpKQogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKaW5kZXggZDg1MGYzYjJjNjNhZjNkYTkwMGJmMjBl
NzEyMGMzZDk1MTM5ODIzYS4uNmViYjZjYThhZTc4OGJkMTcyZWUxZWYyMDZhOThmODc1MmQ1ZmVk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZv
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5m
b1N0b3JlLmNwcApAQCAtMjI0LDIyICsyMjQsMjIgQEAgYm9vbCBQbHVnaW5JbmZvU3RvcmU6Omlz
U3VwcG9ydGVkUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFVSTCYgcGx1Z2kK
ICAgICB9KSAhPSBub3RGb3VuZDsKIH0KIAotc3RkOjpvcHRpb25hbDxWZWN0b3I8U3VwcG9ydGVk
UGx1Z2luTmFtZT4+IFBsdWdpbkluZm9TdG9yZTo6c3VwcG9ydGVkUGx1Z2luTmFtZXMoKQorc3Rk
OjpvcHRpb25hbDxWZWN0b3I8U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+IFBsdWdpbkluZm9T
dG9yZTo6c3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMoKQogewogICAgIGlmICghbV9zdXBwb3J0
ZWRQbHVnaW5zKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgcmV0dXJuIFdU
Rjo6bWFwKCptX3N1cHBvcnRlZFBsdWdpbnMsIFtdIChhdXRvJiYgaXRlbSkgewotICAgICAgICBy
ZXR1cm4gU3VwcG9ydGVkUGx1Z2luTmFtZSB7IGl0ZW0ubWF0Y2hpbmdEb21haW4sIGl0ZW0ubmFt
ZSB9OworICAgICAgICByZXR1cm4gU3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllciB7IGl0ZW0ubWF0
Y2hpbmdEb21haW4sIGl0ZW0uaWRlbnRpZmllciB9OwogICAgIH0pOwogfQogCi12b2lkIFBsdWdp
bkluZm9TdG9yZTo6YWRkU3VwcG9ydGVkUGx1Z2luKFN0cmluZyYmIGRvbWFpbk5hbWUsIFN0cmlu
ZyYmIG5hbWUsIEhhc2hTZXQ8U3RyaW5nPiYmIG1pbWVUeXBlcywgSGFzaFNldDxTdHJpbmc+IGV4
dGVuc2lvbnMpCit2b2lkIFBsdWdpbkluZm9TdG9yZTo6YWRkU3VwcG9ydGVkUGx1Z2luKFN0cmlu
ZyYmIGRvbWFpbk5hbWUsIFN0cmluZyYmIGlkZW50aWZpZXIsIEhhc2hTZXQ8U3RyaW5nPiYmIG1p
bWVUeXBlcywgSGFzaFNldDxTdHJpbmc+IGV4dGVuc2lvbnMpCiB7CiAgICAgaWYgKCFtX3N1cHBv
cnRlZFBsdWdpbnMpCiAgICAgICAgIG1fc3VwcG9ydGVkUGx1Z2lucyA9IFZlY3RvcjxTdXBwb3J0
ZWRQbHVnaW4+IHsgfTsKIAotICAgIG1fc3VwcG9ydGVkUGx1Z2lucy0+YXBwZW5kKFN1cHBvcnRl
ZFBsdWdpbiB7IFdURk1vdmUoZG9tYWluTmFtZSksIFdURk1vdmUobmFtZSksIFdURk1vdmUobWlt
ZVR5cGVzKSwgV1RGTW92ZShleHRlbnNpb25zKSB9KTsKKyAgICBtX3N1cHBvcnRlZFBsdWdpbnMt
PmFwcGVuZChTdXBwb3J0ZWRQbHVnaW4geyBXVEZNb3ZlKGRvbWFpbk5hbWUpLCBXVEZNb3ZlKGlk
ZW50aWZpZXIpLCBXVEZNb3ZlKG1pbWVUeXBlcyksIFdURk1vdmUoZXh0ZW5zaW9ucykgfSk7CiB9
CiAKIFBsdWdpbk1vZHVsZUluZm8gUGx1Z2luSW5mb1N0b3JlOjppbmZvRm9yUGx1Z2luV2l0aFBh
dGgoY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmgKaW5kZXggMmRhMTU0OTI3NWRlMWE0
MGU4N2NjNmYxNDM2NWNmMmYyZTkzYTJiNS4uOGIyZjA0ZWVlNDBmNTdjN2JmMGExMWNmMTVjNmUz
YzhiZGUxMjJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5JbmZvU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbkluZm9TdG9yZS5oCkBAIC02NCw4ICs2NCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGx1
Z2luTW9kdWxlTG9hZFBvbGljeSBkZWZhdWx0TG9hZFBvbGljeUZvclBsdWdpbihjb25zdCBQbHVn
aW5Nb2R1bGVJbmZvJik7CiAKICAgICBib29sIGlzU3VwcG9ydGVkUGx1Z2luKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIGNvbnN0IFdlYkNvcmU6OlVSTCYgcGx1Z2luVVJMLCBjb25zdCBTdHJpbmcm
IGZyYW1lVVJMU3RyaW5nLCBjb25zdCBXZWJDb3JlOjpVUkwmIHBhZ2VVUkwpOwotICAgIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWU+PiBzdXBwb3J0ZWRQ
bHVnaW5OYW1lcygpOwotICAgIHZvaWQgYWRkU3VwcG9ydGVkUGx1Z2luKFN0cmluZyYmIG1hdGNo
aW5nRG9tYWluLCBTdHJpbmcmJiBuYW1lLCBIYXNoU2V0PFN0cmluZz4mJiBtaW1lVHlwZXMsIEhh
c2hTZXQ8U3RyaW5nPiBleHRlbnNpb25zKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJD
b3JlOjpTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyPj4gc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmll
cnMoKTsKKyAgICB2b2lkIGFkZFN1cHBvcnRlZFBsdWdpbihTdHJpbmcmJiBtYXRjaGluZ0RvbWFp
biwgU3RyaW5nJiYgaWRlbnRpZmllciwgSGFzaFNldDxTdHJpbmc+JiYgbWltZVR5cGVzLCBIYXNo
U2V0PFN0cmluZz4gZXh0ZW5zaW9ucyk7CiAgICAgdm9pZCBjbGVhclN1cHBvcnRlZFBsdWdpbnMo
KSB7IG1fc3VwcG9ydGVkUGx1Z2lucyA9IHN0ZDo6bnVsbG9wdDsgfQogCiBwcml2YXRlOgpAQCAt
OTgsNyArOTgsNyBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0IFN1cHBvcnRlZFBsdWdpbiB7CiAg
ICAgICAgIFN0cmluZyBtYXRjaGluZ0RvbWFpbjsKLSAgICAgICAgU3RyaW5nIG5hbWU7CisgICAg
ICAgIFN0cmluZyBpZGVudGlmaWVyOwogICAgICAgICBIYXNoU2V0PFN0cmluZz4gbWltZVR5cGVz
OwogICAgICAgICBIYXNoU2V0PFN0cmluZz4gZXh0ZW5zaW9uczsKICAgICB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMDkyNzQ4YjQzMzlhZWZk
MWY3MjFjYTcyZWM1OGZjNDY5ZDJmNmNlYS4uNTQ1N2ViNDdmNzJlZmFjZjg0MjA1YWJjYWFmM2Jk
ZjJhOGQzZWYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCkBAIC01NjAsMTIgKzU2MCwxMiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6dXBkYXRlQmFj
a0ZvcndhcmRJdGVtKGNvbnN0IEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSYgaXRlbQogfQogCiAj
aWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0
UGx1Z2lucyhib29sIHJlZnJlc2gsIFZlY3RvcjxQbHVnaW5JbmZvPiYgcGx1Z2lucywgVmVjdG9y
PFBsdWdpbkluZm8+JiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdl
YkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWU+PiYgc3VwcG9ydGVkUGx1Z2luTmFtZXMpCit2b2lk
IFdlYlByb2Nlc3NQcm94eTo6Z2V0UGx1Z2lucyhib29sIHJlZnJlc2gsIFZlY3RvcjxQbHVnaW5J
bmZvPiYgcGx1Z2lucywgVmVjdG9yPFBsdWdpbkluZm8+JiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXI+PiYg
c3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpCiB7CiAgICAgaWYgKHJlZnJlc2gpCiAgICAgICAg
IG1fcHJvY2Vzc1Bvb2wtPnBsdWdpbkluZm9TdG9yZSgpLnJlZnJlc2goKTsKIAotICAgIHN1cHBv
cnRlZFBsdWdpbk5hbWVzID0gbV9wcm9jZXNzUG9vbC0+cGx1Z2luSW5mb1N0b3JlKCkuc3VwcG9y
dGVkUGx1Z2luTmFtZXMoKTsKKyAgICBzdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVycyA9IG1fcHJv
Y2Vzc1Bvb2wtPnBsdWdpbkluZm9TdG9yZSgpLnN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKCk7
CiAKICAgICBWZWN0b3I8UGx1Z2luTW9kdWxlSW5mbz4gcGx1Z2luTW9kdWxlcyA9IG1fcHJvY2Vz
c1Bvb2wtPnBsdWdpbkluZm9TdG9yZSgpLnBsdWdpbnMoKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHBsdWdpbk1vZHVsZXMuc2l6ZSgpOyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDdkNjNkYzViMjBhN2Y2MjQxMmIxMWJjZWFmNjVjOTQ0
ZThkMDBjNGQuLmM0NmQyOTE5ZmYyODVlYzQ5NWU3ZTJjZTVhMTJhYmQzYjI4MDVlNmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yNjcsNyArMjY3LDcg
QEAgcHJpdmF0ZToKIAogICAgIC8vIFBsdWdpbnMKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKLSAgICB2b2lkIGdldFBsdWdpbnMoYm9vbCByZWZyZXNoLCBWZWN0b3I8V2ViQ29yZTo6
UGx1Z2luSW5mbz4mIHBsdWdpbnMsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYgYXBwbGlj
YXRpb25QbHVnaW5zLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVn
aW5OYW1lPj4mKTsKKyAgICB2b2lkIGdldFBsdWdpbnMoYm9vbCByZWZyZXNoLCBWZWN0b3I8V2Vi
Q29yZTo6UGx1Z2luSW5mbz4mIHBsdWdpbnMsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYg
YXBwbGljYXRpb25QbHVnaW5zLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0
ZWRQbHVnaW5JZGVudGlmaWVyPj4mKTsKICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICB2b2lkIGdldFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBs
eSYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCA5ZTUzOWY1OGJiYjg1ODI5OTI5ZGEzYTIzMmU4MzEzNDZmZDc3N2My
Li5mYzgwOGFmMjBlZjhjZGU5YzRmYzYwYzczNGFmZTgwZGI1ZDY5MGY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0z
Myw3ICszMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7
CiAKICAgICAjIFBsdWdpbiBtZXNzYWdlcy4KICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKLSAgICBHZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpQbHVn
aW5JbmZvPiBwbHVnaW5zLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gYXBwbGljYXRpb25Q
bHVnaW5zLCBzdHJ1Y3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVkUGx1
Z2luTmFtZT4+IHN1cHBvcnRlZFBsdWdpbk5hbWVzKQorICAgIEdldFBsdWdpbnMoYm9vbCByZWZy
ZXNoKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IHBsdWdpbnMsIFZlY3RvcjxXZWJD
b3JlOjpQbHVnaW5JbmZvPiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0cnVjdCBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyPj4gc3VwcG9ydGVkUGx1
Z2luSWRlbnRpZmllcnMpCiAgICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3Qg
cGx1Z2luUHJvY2Vzc1Rva2VuKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUs
IGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbikgRGVsYXllZAogI2VuZGlm
CiAgICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBj
b25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCBjMWFjNGQ1OGU0ZjdjY2M0YjI0ZjZkMWI5
Nzc4ODI3NTU5ODI1Njc3Li4yMDNkYjFhNDc0MGY3MzNjZjUxOGM3YjY5YzFiNTdhYzU3ZjU3MzJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW0KQEAgLTY1MSw2ICs2NTEsNyBAQCBQbHVnaW5JbmZvIFBERlBsdWdpbjo6cGx1Z2luSW5m
bygpCiAgICAgaW5mby5uYW1lID0gYnVpbHRJblBERlBsdWdpbk5hbWUoKTsKICAgICBpbmZvLmlz
QXBwbGljYXRpb25QbHVnaW4gPSB0cnVlOwogICAgIGluZm8uY2xpZW50TG9hZFBvbGljeSA9IFBs
dWdpbkxvYWRDbGllbnRQb2xpY3lVbmRlZmluZWQ7CisgICAgaW5mby5idW5kbGVJZGVudGlmaWVy
ID0gQVNDSUlMaXRlcmFsKCJjb20uYXBwbGUud2Via2l0LmJ1aWx0aW5wZGZwbHVnaW4iKTsKIAog
ICAgIE1pbWVDbGFzc0luZm8gcGRmTWltZUNsYXNzSW5mbzsKICAgICBwZGZNaW1lQ2xhc3NJbmZv
LnR5cGUgPSAiYXBwbGljYXRpb24vcGRmIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwCmluZGV4IDRiZDFk
YjY2ZWE1M2RiOTA5NzY4ZDUyZTk4ZGU5NjgxNmFmOTczMmEuLjUwZjllYWE5NzU2OWJlNzkzYmZi
MWQ5OWMzZTQwMDFkYjRmNTcyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcApAQCAtOTcsMjkgKzk3
LDI5IEBAIHZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpyZWZyZXNoUGx1Z2lucygpCiAjZW5k
aWYKIH0KIAotVmVjdG9yPFBsdWdpbkluZm8+IFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cGx1Z2lu
SW5mbyhQYWdlJiBwYWdlLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW5OYW1l
Pj4mIHN1cHBvcnRlZFBsdWdpbk5hbWVzKQorVmVjdG9yPFBsdWdpbkluZm8+IFdlYlBsdWdpbklu
Zm9Qcm92aWRlcjo6cGx1Z2luSW5mbyhQYWdlJiBwYWdlLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxT
dXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyPj4mIHN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKQog
ewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHBvcHVsYXRlUGx1Z2luQ2Fj
aGUocGFnZSk7CiAKLSAgICBpZiAobV9jYWNoZWRTdXBwb3J0ZWRQbHVnaW5OYW1lcykKLSAgICAg
ICAgc3VwcG9ydGVkUGx1Z2luTmFtZXMgPSAqbV9jYWNoZWRTdXBwb3J0ZWRQbHVnaW5OYW1lczsK
KyAgICBpZiAobV9jYWNoZWRTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVycykKKyAgICAgICAgc3Vw
cG9ydGVkUGx1Z2luSWRlbnRpZmllcnMgPSAqbV9jYWNoZWRTdXBwb3J0ZWRQbHVnaW5JZGVudGlm
aWVyczsKIAogICAgIHJldHVybiBwYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLnN1YmZyYW1lTG9h
ZGVyKCkuYWxsb3dQbHVnaW5zKCkgPyBtX2NhY2hlZFBsdWdpbnMgOiBtX2NhY2hlZEFwcGxpY2F0
aW9uUGx1Z2luczsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwotICAgIFVOVVNFRF9Q
QVJBTShzdXBwb3J0ZWRQbHVnaW5OYW1lcyk7CisgICAgVU5VU0VEX1BBUkFNKHN1cHBvcnRlZFBs
dWdpbklkZW50aWZpZXJzKTsKICAgICByZXR1cm4geyB9OwogI2VuZGlmIC8vIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQogfQogCiBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gV2ViUGx1
Z2luSW5mb1Byb3ZpZGVyOjp3ZWJWaXNpYmxlUGx1Z2luSW5mbyhQYWdlJiBwYWdlLCBjb25zdCBX
ZWJDb3JlOjpVUkwmIHVybCkKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpT
dXBwb3J0ZWRQbHVnaW5OYW1lPj4gc3VwcG9ydGVkUGx1Z2luTmFtZXM7Ci0gICAgYXV0byBwbHVn
aW5zID0gcGx1Z2luSW5mbyhwYWdlLCBzdXBwb3J0ZWRQbHVnaW5OYW1lcyk7CisgICAgc3RkOjpv
cHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+IHN1cHBv
cnRlZFBsdWdpbklkZW50aWZpZXJzOworICAgIGF1dG8gcGx1Z2lucyA9IHBsdWdpbkluZm8ocGFn
ZSwgc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpOwogCiAgICAgcGx1Z2lucy5yZW1vdmVBbGxN
YXRjaGluZyhbJl0gKGF1dG8mIHBsdWdpbikgewotICAgICAgICByZXR1cm4gc3VwcG9ydGVkUGx1
Z2luTmFtZXMgJiYgIWlzU3VwcG9ydGVkUGx1Z2luKCpzdXBwb3J0ZWRQbHVnaW5OYW1lcywgdXJs
LCBwbHVnaW4ubmFtZSk7CisgICAgICAgIHJldHVybiBzdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVy
cyAmJiAhaXNTdXBwb3J0ZWRQbHVnaW4oKnN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzLCB1cmws
IHBsdWdpbi5idW5kbGVJZGVudGlmaWVyKTsKICAgICB9KTsKIAogI2lmIFBMQVRGT1JNKE1BQykK
QEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cG9wdWxhdGVQ
bHVnaW5DYWNoZShjb25zdCBXZWJDb3JlOjpQYWdlJiBwYWdlKQogICAgICAgICBIYW5nRGV0ZWN0
aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlvbkRpc2FibGVyOwogCiAgICAgICAgIGlmICghV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2lucyhtX3Nob3VsZFJlZnJlc2hQbHVnaW5z
KSwKLSAgICAgICAgICAgIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpbnM6OlJl
cGx5KG1fY2FjaGVkUGx1Z2lucywgbV9jYWNoZWRBcHBsaWNhdGlvblBsdWdpbnMsIG1fY2FjaGVk
U3VwcG9ydGVkUGx1Z2luTmFtZXMpLCAwLAorICAgICAgICAgICAgTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6R2V0UGx1Z2luczo6UmVwbHkobV9jYWNoZWRQbHVnaW5zLCBtX2NhY2hlZEFwcGxp
Y2F0aW9uUGx1Z2lucywgbV9jYWNoZWRTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVycyksIDAsCiAg
ICAgICAgICAgICBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpEb05v
dFByb2Nlc3NJbmNvbWluZ01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpKQogICAgICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5oCmluZGV4IDJhMWJkZDA4MjQ2OTIxZGI3NDY1
ZjRkZDA4ZjJkOGNkZmNmMTI3NmQuLjFiYmFkNWE3OWZiMTFlYzY4MDc0OTQ3ZDAwN2MzY2Q1NmU1
ODE5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBs
dWdpbkluZm9Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyKCk7CiAKLSAgICBWZWN0b3I8V2ViQ29yZTo6
UGx1Z2luSW5mbz4gcGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiwgc3RkOjpvcHRpb25hbDxWZWN0
b3I8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZT4+JikgZmluYWw7CisgICAgVmVjdG9yPFdl
YkNvcmU6OlBsdWdpbkluZm8+IHBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYsIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXI+PiYpIGZpbmFsOwog
ICAgIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiB3ZWJWaXNpYmxlUGx1Z2luSW5mbyhXZWJD
b3JlOjpQYWdlJiwgY29uc3QgV2ViQ29yZTo6VVJMJikgZmluYWw7CiAgICAgdm9pZCByZWZyZXNo
UGx1Z2lucygpIG92ZXJyaWRlOwogCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3Nob3VsZFJlZnJlc2hQbHVnaW5zIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8V2ViQ29yZTo6
UGx1Z2luSW5mbz4gbV9jYWNoZWRQbHVnaW5zOwogICAgIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5J
bmZvPiBtX2NhY2hlZEFwcGxpY2F0aW9uUGx1Z2luczsKLSAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lPj4gbV9jYWNoZWRTdXBwb3J0ZWRQbHVnaW5O
YW1lczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5J
ZGVudGlmaWVyPj4gbV9jYWNoZWRTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyczsKICNlbmRpZgog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaAppbmRleCA4MTMyNDcyYjhiMzViNGUwMWVj
MjcyOWMxOGI1ZTM0YThiZGI3NGFmLi5kMWFiNTUxMTg0YzBhNWY2NDk5NDBkOGU5MjdiZDg0ZTUy
OWM3ZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaApAQCAtMzQsNyArMzQsNyBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZWZyZXNoUGx1Z2lucygpIG92ZXJyaWRlOwot
ICAgIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2Um
LCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lPj4mKSBm
aW5hbDsKKyAgICBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gcGx1Z2luSW5mbyhXZWJDb3Jl
OjpQYWdlJiwgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luSWRl
bnRpZmllcj4+JikgZmluYWw7CiAgICAgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IHdlYlZp
c2libGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBjb25zdCBXZWJDb3JlOjpVUkwmKSBmaW5h
bDsKIAogICAgIFdlYlBsdWdpbkluZm9Qcm92aWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3Zp
ZGVyLm1tCmluZGV4IDJlZGUxOWFkODg5ZmUzNGI5MTc1MDIzMjAxN2I1ZTRjYjk3ZGRjOTAuLmUz
NGVjNzNlNTRmYmQ5NTQxNjhmZmNhNTUyZTRmMzZiYzk1ZjU0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5J
bmZvUHJvdmlkZXIubW0KQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlk
ZXI6OnJlZnJlc2hQbHVnaW5zKCkKICAgICBbW1dlYlBsdWdpbkRhdGFiYXNlIHNoYXJlZERhdGFi
YXNlSWZFeGlzdHNdIHJlZnJlc2hdOwogfQogCi1WZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4g
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpwbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmIHBhZ2UsIHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPFN1cHBvcnRlZFBsdWdpbk5hbWU+PiYpCitWZWN0b3I8V2ViQ29y
ZTo6UGx1Z2luSW5mbz4gV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpwbHVnaW5JbmZvKFdlYkNvcmU6
OlBhZ2UmIHBhZ2UsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN1cHBvcnRlZFBsdWdpbklkZW50aWZp
ZXI+PiYpCiB7CiAgICAgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IHBsdWdpbnM7CiAKQEAg
LTc2LDYgKzc2LDYgQEAgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IFdlYlBsdWdpbkluZm9Q
cm92aWRlcjo6cGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBwYWcKIAogVmVjdG9yPFdlYkNvcmU6
OlBsdWdpbkluZm8+IFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6d2ViVmlzaWJsZVBsdWdpbkluZm8o
V2ViQ29yZTo6UGFnZSYgcGFnZSwgY29uc3QgV2ViQ29yZTo6VVJMJikKIHsKLSAgICBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW5OYW1lPj4gc3VwcG9ydGVkUGx1Z2luTmFtZXM7
Ci0gICAgcmV0dXJuIHBsdWdpbkluZm8ocGFnZSwgc3VwcG9ydGVkUGx1Z2luTmFtZXMpOworICAg
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXI+PiBzdXBwb3J0
ZWRQbHVnaW5JZGVudGlmaWVyczsKKyAgICByZXR1cm4gcGx1Z2luSW5mbyhwYWdlLCBzdXBwb3J0
ZWRQbHVnaW5JZGVudGlmaWVycyk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>