<?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>272063</bug_id>
          
          <creation_ts>2024-04-02 17:19:44 -0700</creation_ts>
          <short_desc>AX: createObjectFromRenderer and accessibleNameForNode can take their arguments by reference rather than pointer</short_desc>
          <delta_ts>2024-04-04 23:16:47 -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>Accessibility</component>
          <version>Other</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="Tyler Wilcock">tyler_w</reporter>
          <assigned_to name="Tyler Wilcock">tyler_w</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jcraig</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youssefdevelops</cc>
    
    <cc>y_soliman</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2025562</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-04-02 17:19:44 -0700</bug_when>
    <thetext>Doing this saves null checks and makes intent more clear, as these functions or ones downstream from them either ASSERT non-null, or directly dereference the pointer without null checking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2025563</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-04-02 17:19:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/125813277&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2025567</commentid>
    <comment_count>2</comment_count>
      <attachid>470736</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-04-02 17:27:12 -0700</bug_when>
    <thetext>Created attachment 470736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2025592</commentid>
    <comment_count>3</comment_count>
      <attachid>470738</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-04-02 20:53:54 -0700</bug_when>
    <thetext>Created attachment 470738
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2026195</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-04-04 23:16:44 -0700</bug_when>
    <thetext>Committed 277096@main (7fe8ad6a3315): &lt;https://commits.webkit.org/277096@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 470738.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470736</attachid>
            <date>2024-04-02 17:27:12 -0700</date>
            <delta_ts>2024-04-02 20:53:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-272063-20240402172711.patch</filename>
            <type>text/plain</type>
            <size>66236</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBlYWQzMmE1MDBiZTllYTRjOWI2MWU2NzUwYjlhNzVlOWRmOTJmODcwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogVHVlLCAyIEFwciAyMDI0IDE3OjE5OjU0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQVg6IGNy
ZWF0ZU9iamVjdEZyb21SZW5kZXJlciBhbmQgYWNjZXNzaWJsZU5hbWVGb3JOb2RlIGNhbgogdGFr
ZSB0aGVpciBhcmd1bWVudHMgYnkgcmVmZXJlbmNlIHJhdGhlciB0aGFuIHBvaW50ZXIKIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzIwNjMgcmRhcjovL3Byb2JsZW0v
MTI1ODEzMjc3CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkRvaW5nIHRoaXMgc2F2ZXMg
bnVsbCBjaGVja3Mgb24gaG90IGNvZGVwYXRocyBhbmQgbWFrZXMgaW50ZW50IG1vcmUgY2xlYXIs
IGFzIHRoZXNlIGZ1bmN0aW9ucyBvciBvbmVzIGRvd25zdHJlYW0KZnJvbSB0aGVtIHdvdWxkIGVp
dGhlciBBU1NFUlQgbm9uLW51bGwsIG9yIGRpcmVjdGx5IGRlcmVmZXJlbmNlIHRoZSBwb2ludGVy
IHdpdGhvdXQgbnVsbCBjaGVja2luZy4KCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WEltYWdlLmNwcDoKKFdlYkNvcmU6OkFYSW1hZ2U6OkFYSW1hZ2UpOgooV2ViQ29yZTo6QVhJbWFn
ZTo6Y3JlYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuaDoKKiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6
dG9TaW1wbGVJbWFnZSk6CihXZWJDb3JlOjppc0FjY2Vzc2liaWxpdHlMaXN0KToKKFdlYkNvcmU6
OmlzQWNjZXNzaWJpbGl0eVRyZWUpOgooV2ViQ29yZTo6aXNBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0p
OgooV2ViQ29yZTo6aXNBY2Nlc3NpYmlsaXR5QVJJQVRhYmxlKToKKFdlYkNvcmU6OmlzQWNjZXNz
aWJpbGl0eUFSSUFHcmlkUm93KToKKFdlYkNvcmU6OmlzQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2Vs
bCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpjcmVhdGVPYmplY3RGcm9tUmVuZGVyZXIpOgoo
V2ViQ29yZTo6Y3JlYXRlRnJvbU5vZGUpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Z2V0T3JD
cmVhdGUpOgooV2ViQ29yZTo6aXNTaW1wbGVJbWFnZSk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlBUklBR3JpZENlbGw6OkFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwpOgooV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6Y3JlYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaDoKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHA6CihXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5QVJJQUdyaWRSb3c6OkFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdyk6CihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OmNyZWF0ZSk6CiogU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaDoKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBVGFibGUuY3BwOgooV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eUFSSUFUYWJsZTo6QWNjZXNzaWJpbGl0eUFSSUFUYWJsZSk6CihXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5QVJJQVRhYmxlOjpjcmVhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUFSSUFUYWJsZS5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUF0
dGFjaG1lbnQ6OkFjY2Vzc2liaWxpdHlBdHRhY2htZW50KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlBdHRhY2htZW50OjpjcmVhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUF0dGFjaG1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlMYWJlbC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFiZWw6OkFjY2Vz
c2liaWxpdHlMYWJlbCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFiZWw6OmNyZWF0ZSk6Ciog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcDoKKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlMaXN0OjpBY2Nlc3NpYmlsaXR5TGlzdCk6CihXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5TGlzdDo6Y3JlYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlMaXN0Lmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TGlzdEJveC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdEJveDo6QWNjZXNzaWJp
bGl0eUxpc3RCb3gpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3g6OmNyZWF0ZSk6Ciog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5oOgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQuY3Bw
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQ6OkFjY2Vzc2liaWxpdHlNYXRo
TUxFbGVtZW50KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50OjpjcmVhdGUp
OgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1l
bnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9i
amVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OkFjY2Vzc2liaWxp
dHlNZWRpYU9iamVjdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OmNyZWF0
ZSk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6Om1lZGlhU2Vlayk6CihXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OmluY3JlbWVudCk6CihXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5TWVkaWFPYmplY3Q6OmRlY3JlbWVudCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5TWVudUxpc3Q6OkFjY2Vzc2liaWxpdHlNZW51TGlzdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5TWVudUxpc3Q6OmNyZWF0ZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TWVudUxpc3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojp0ZXh0QXNMYWJlbEZvciBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6dGV4dEZvckxhYmVsRWxlbWVudHMgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmFsdGVybmF0aXZlVGV4dCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCBjb25zdCk6CihXZWJDb3JlOjphY2Nlc3NpYmxl
TmFtZUZvck5vZGUpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2li
aWxpdHlEZXNjcmlwdGlvbkZvckNoaWxkcmVuIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjpkZXNjcmlwdGlvbkZvckVsZW1lbnRzIGNvbnN0KToKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHA6CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OkFjY2Vzc2liaWxpdHlQcm9n
cmVzc0luZGljYXRvcik6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6
OmNyZWF0ZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJv
Z3Jlc3NJbmRpY2F0b3IuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpjcmVhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNWR0VsZW1l
bnQ6OkFjY2Vzc2liaWxpdHlTVkdFbGVtZW50KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTVkdF
bGVtZW50OjpjcmVhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNWR0VsZW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTVkdSb290LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTVkdSb290OjpBY2Nlc3Np
YmlsaXR5U1ZHUm9vdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6Y3JlYXRlKToK
KiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290Lmg6Ciog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcDoKKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlTbGlkZXI6OkFjY2Vzc2liaWxpdHlTbGlkZXIpOgooV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVNsaWRlcjo6Y3JlYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGU6
OkFjY2Vzc2liaWxpdHlUYWJsZSk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGU6OmNyZWF0
ZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaDoK
KiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3Bw
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6QWNjZXNzaWJpbGl0eVRhYmxlQ2Vs
bCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjcmVhdGUpOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5oOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcDoKKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6QWNjZXNzaWJpbGl0eVRhYmxlUm93KToKKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6Y3JlYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRyZWU6
OkFjY2Vzc2liaWxpdHlUcmVlKToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUcmVlOjpjcmVhdGUp
OgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuaDoKKiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlSXRlbS5jcHA6CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OkFjY2Vzc2liaWxpdHlUcmVlSXRlbSk6CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OmNyZWF0ZSk6CiogU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZUl0ZW0uaDoKLS0tCiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oICAgICAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgIHwgMTE0ICsrKysrKysrKy0tLS0tLS0tLQog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggIHwgICAyICstCiAu
Li4vQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgICAgICAgICAgICAgfCAgIDQgKy0KIC4u
Li9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaCB8ICAgNCArLQogLi4u
L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAgICAgICAgICAgICAgIHwgICA0ICstCiAuLi4v
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaCAgfCAgIDQgKy0KIC4uLi9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBVGFibGUuY3BwICB8ICAgNCArLQogLi4uL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFUYWJsZS5oICAgIHwgICA0ICstCiAuLi4vYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5jcHAgfCAgIDQgKy0KIC4uLi9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmggICB8ICAgNSArLQogLi4uL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmNwcCAgICAgIHwgICA0ICstCiAuLi4vYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaCAgICAgICAgfCAgIDQgKy0KIC4uLi9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcCAgICAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oIHwgICA0ICstCiAuLi4vYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAgICAgfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmggICAgICB8ICAgNCArLQogLi4uL0FjY2Vzc2liaWxp
dHlNYXRoTUxFbGVtZW50LmNwcCAgICAgICAgICAgIHwgICA0ICstCiAuLi4vQWNjZXNzaWJpbGl0
eU1hdGhNTEVsZW1lbnQuaCAgICAgICAgICAgICAgfCAgIDQgKy0KIC4uLi9BY2Nlc3NpYmlsaXR5
TWVkaWFPYmplY3QuY3BwICAgICAgICAgICAgICB8ICAxMCArLQogLi4uL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0LmggIHwgICA2ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwICAgfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNZW51TGlzdC5oICAgICB8ICAgNCArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIHwgIDMzICsrKy0tCiAuLi4vQWNjZXNzaWJpbGl0eVBy
b2dyZXNzSW5kaWNhdG9yLmNwcCAgICAgICAgfCAgIDYgKy0KIC4uLi9BY2Nlc3NpYmlsaXR5UHJv
Z3Jlc3NJbmRpY2F0b3IuaCAgICAgICAgICB8ICAgNCArLQogLi4uL0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuY3BwICAgICAgICAgICAgIHwgICA4ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTVkdFbGVtZW50LmNwcCB8ICAgNSArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNWR0VsZW1lbnQuaCAgIHwgICA0ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U1ZHUm9vdC5jcHAgICAgfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTVkdSb290LmggICAgICB8ICAgNCArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNsaWRlci5jcHAgICAgIHwgICA0ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U2xpZGVyLmggICAgICAgfCAgIDcgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZS5jcHAgICAgICB8ICAgNCArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlLmggICAgICAgIHwgICA0ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVDZWxsLmNwcCAgfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZUNlbGwuaCAgICB8ICAgNCArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlUm93LmNwcCAgIHwgICA0ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGVSb3cuaCAgICAgfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVl
LmNwcCAgICAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VHJlZS5oIHwgICA0ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZUl0
ZW0uY3BwICAgfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlSXRl
bS5oICAgICB8ICAgNCArLQogNDUgZmlsZXMgY2hhbmdlZCwgMTY1IGluc2VydGlvbnMoKyksIDE3
MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcApp
bmRleCA3N2Y3Yzc5YmUwYWYuLjY2ZGZiNWQ4MjU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYSW1hZ2UuY3BwCkBAIC0zNywxMiArMzcsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1BWEltYWdlOjpBWEltYWdlKFJlbmRlckltYWdlKiByZW5kZXJlcikKK0FYSW1hZ2U6
OkFYSW1hZ2UoUmVuZGVySW1hZ2UmIHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdChyZW5kZXJlcikKIHsKIH0KIAotUmVmPEFYSW1hZ2U+IEFYSW1hZ2U6OmNyZWF0ZShS
ZW5kZXJJbWFnZSogcmVuZGVyZXIpCitSZWY8QVhJbWFnZT4gQVhJbWFnZTo6Y3JlYXRlKFJlbmRl
ckltYWdlJiByZW5kZXJlcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBWEltYWdlKHJl
bmRlcmVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oCmluZGV4IDJm
OGVmMDFlNTM3MS4uYjZlMWEwY2Q1NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuaApAQCAtMzUsMTEgKzM1LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
QVhJbWFnZSA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPEFYSW1hZ2U+IGNyZWF0ZShSZW5kZXJJbWFnZSopOworICAgIHN0YXRpYyBS
ZWY8QVhJbWFnZT4gY3JlYXRlKFJlbmRlckltYWdlJik7CiAgICAgdmlydHVhbCB+QVhJbWFnZSgp
ID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBBWEltYWdlKFJlbmRlckltYWdl
Kik7CisgICAgZXhwbGljaXQgQVhJbWFnZShSZW5kZXJJbWFnZSYpOwogCiAgICAgQWNjZXNzaWJp
bGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKSBmaW5hbDsKICAgICBzdGQ6Om9w
dGlvbmFsPEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcj4gaW1hZ2VPdmVybGF5RWxlbWVudHMo
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCmluZGV4IGJkODFmZmNiYzlmYi4uNDliYTNlNTNmMGIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTYzOCw0OSArNjM4LDQ5
IEBAIGJvb2wgbm9kZUhhc0NlbGxSb2xlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIG5vZGUgJiYg
KG5vZGVIYXNSb2xlKG5vZGUsICJncmlkY2VsbCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNl
bGwiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1bW5oZWFkZXIiX3MpIHx8IG5vZGVIYXNS
b2xlKG5vZGUsICJyb3doZWFkZXIiX3MpKTsKIH0KIAotc3RhdGljIGJvb2wgaXNTaW1wbGVJbWFn
ZShjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQorc3RhdGljIFJlbmRlckltYWdlKiB0b1Np
bXBsZUltYWdlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgQ2hlY2tlZFB0ciByZW5k
ZXJJbWFnZSA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpOwogICAgIGlm
ICghcmVuZGVySW1hZ2UpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICAvLyBFeGNsdWRlIEltYWdlQnV0dG9ucyBiZWNhdXNlIHRoZXkgYXJlIHRy
ZWF0ZWQgYXMgYnV0dG9ucywgbm90IGFzIGltYWdlcy4KICAgICBSZWZQdHIgbm9kZSA9IHJlbmRl
cmVyLm5vZGUoKTsKICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4obm9kZSkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBJbWFnZU1h
cHMgYXJlIG5vdCBzaW1wbGUgaW1hZ2VzLgogICAgIGlmIChyZW5kZXJJbWFnZS0+aW1hZ2VNYXAo
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IGlmIChSZWZQdHIgaW1nRWxlbWVudCA9IGR5bmFtaWNEb3duY2FzdDxIVE1MSW1hZ2VFbGVtZW50
Pihub2RlKTsgaW1nRWxlbWVudCAmJiBpbWdFbGVtZW50LT5oYXNBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKHVzZW1hcEF0dHIpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIC8vIEV4Y2x1ZGUgdmlk
ZW8gYW5kIGF1ZGlvIGVsZW1lbnRzLgogICAgIGlmIChpczxIVE1MTWVkaWFFbGVtZW50Pihub2Rl
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRp
ZiAvLyBFTkFCTEUoVklERU8pCiAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcmVuZGVy
SW1hZ2UuZ2V0KCk7CiB9CiAKLXN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eUxpc3QoTm9kZSog
bm9kZSkKK3N0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eUxpc3QoTm9kZSYgbm9kZSkKIHsKICAg
ICAvLyBJZiB0aGUgbm9kZSBpcyBhcmlhIHJvbGU9Imxpc3QiIG9yIHRoZSBhcmlhIHJvbGUgaXMg
ZW1wdHkgYW5kIGl0J3MgYQogICAgIC8vIHVsL29sL2RsIHR5cGUgKGl0IHNob3VsZG4ndCBiZSBh
IGxpc3QgaWYgYXJpYSBzYXlzIG90aGVyd2lzZSkuCi0gICAgcmV0dXJuIChub2RlICYmICgobm9k
ZUhhc1JvbGUobm9kZSwgImxpc3QiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJkaXJlY3Rvcnki
X3MpKQotICAgICAgICB8fCAobm9kZUhhc1JvbGUobm9kZSwgbnVsbEF0b20oKSkgJiYgKG5vZGUt
Pmhhc1RhZ05hbWUodWxUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUob2xUYWcpIHx8IG5vZGUtPmhh
c1RhZ05hbWUoZGxUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUobWVudVRhZykpKSkpOworICAgIHJl
dHVybiAoKG5vZGVIYXNSb2xlKCZub2RlLCAibGlzdCJfcykgfHwgbm9kZUhhc1JvbGUoJm5vZGUs
ICJkaXJlY3RvcnkiX3MpKQorICAgICAgICB8fCAobm9kZUhhc1JvbGUoJm5vZGUsIG51bGxBdG9t
KCkpICYmIChub2RlLmhhc1RhZ05hbWUodWxUYWcpIHx8IG5vZGUuaGFzVGFnTmFtZShvbFRhZykg
fHwgbm9kZS5oYXNUYWdOYW1lKGRsVGFnKSB8fCBub2RlLmhhc1RhZ05hbWUobWVudVRhZykpKSk7
CiB9CiAKLXN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eVRyZWUoTm9kZSogbm9kZSkKK3N0YXRp
YyBib29sIGlzQWNjZXNzaWJpbGl0eVRyZWUoTm9kZSYgbm9kZSkKIHsKLSAgICByZXR1cm4gbm9k
ZUhhc1JvbGUobm9kZSwgInRyZWUiX3MpOworICAgIHJldHVybiBub2RlSGFzUm9sZSgmbm9kZSwg
InRyZWUiX3MpOwogfQogCi1zdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlUcmVlSXRlbShOb2Rl
KiBub2RlKQorc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0oTm9kZSYgbm9kZSkK
IHsKLSAgICByZXR1cm4gbm9kZUhhc1JvbGUobm9kZSwgInRyZWVpdGVtIl9zKTsKKyAgICByZXR1
cm4gbm9kZUhhc1JvbGUoJm5vZGUsICJ0cmVlaXRlbSJfcyk7CiB9CiAKIHN0YXRpYyBib29sIGlz
QWNjZXNzaWJpbGl0eVRhYmxlKE5vZGUqIG5vZGUpCkBAIC02OTgsNjUgKzY5OCw2MyBAQCBzdGF0
aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwoTm9kZSogbm9kZSkKICAgICByZXR1cm4g
aXM8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+KG5vZGUpOwogfQogCi1zdGF0aWMgYm9vbCBpc0FjY2Vz
c2liaWxpdHlBUklBVGFibGUoTm9kZSogbm9kZSkKK3N0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0
eUFSSUFUYWJsZShOb2RlJiBub2RlKQogewotICAgIHJldHVybiBub2RlSGFzVGFibGVSb2xlKG5v
ZGUpOworICAgIHJldHVybiBub2RlSGFzVGFibGVSb2xlKCZub2RlKTsKIH0KIAotc3RhdGljIGJv
b2wgaXNBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3coTm9kZSogbm9kZSkKK3N0YXRpYyBib29sIGlz
QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93KE5vZGUmIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGVI
YXNSb2xlKG5vZGUsICJyb3ciX3MpOworICAgIHJldHVybiBub2RlSGFzUm9sZSgmbm9kZSwgInJv
dyJfcyk7CiB9CiAKLXN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbChOb2Rl
KiBub2RlKQorc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsKE5vZGUmIG5v
ZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGVIYXNDZWxsUm9sZShub2RlKTsKKyAgICByZXR1cm4gbm9k
ZUhhc0NlbGxSb2xlKCZub2RlKTsKIH0KIAotLy8gRklYTUU6IFRoaXMgY2FuIHRha2UgYSByZWZl
cmVuY2UsIGFuZCB0aGVyZWZvcmUgYWxsICo6OmNyZWF0ZSBtZXRob2RzIHdpdGhpbiBjYW4gdG9v
LgotUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZU9iamVjdEZy
b21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlPYmpl
Y3Q+IEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZU9iamVjdEZyb21SZW5kZXJlcihSZW5kZXJPYmplY3Qm
IHJlbmRlcmVyKQogewotICAgIC8vIEZJWE1FOiBIb3cgY291bGQgcmVuZGVyZXItPm5vZGUoKSBl
dmVyIG5vdCBiZSBhbiBFbGVtZW50PwotICAgIE5vZGUqIG5vZGUgPSByZW5kZXJlci0+bm9kZSgp
OwotCi0gICAgaWYgKGlzQWNjZXNzaWJpbGl0eUxpc3Qobm9kZSkpCi0gICAgICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKHJlbmRlcmVyKTsKKyAgICBSZWZQdHIgbm9kZSA9IHJl
bmRlcmVyLm5vZGUoKTsKKyAgICBpZiAobm9kZSkgeworICAgICAgICBpZiAoaXNBY2Nlc3NpYmls
aXR5TGlzdCgqbm9kZSkpCisgICAgICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNy
ZWF0ZShyZW5kZXJlcik7CiAKLSAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5QVJJQVRhYmxlKG5vZGUp
KQotICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUFSSUFUYWJsZTo6Y3JlYXRlKHJlbmRlcmVy
KTsKLSAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cobm9kZSkpCi0gICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgaWYg
KGlzQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbChub2RlKSkKLSAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlBUklBR3JpZENlbGw6OmNyZWF0ZShyZW5kZXJlcik7CisgICAgICAgIGlmIChpc0Fj
Y2Vzc2liaWxpdHlBUklBVGFibGUoKm5vZGUpKQorICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2li
aWxpdHlBUklBVGFibGU6OmNyZWF0ZShyZW5kZXJlcik7CisgICAgICAgIGlmIChpc0FjY2Vzc2li
aWxpdHlBUklBR3JpZFJvdygqbm9kZSkpCisgICAgICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eUFSSUFHcmlkUm93OjpjcmVhdGUocmVuZGVyZXIpOworICAgICAgICBpZiAoaXNBY2Nlc3NpYmls
aXR5QVJJQUdyaWRDZWxsKCpub2RlKSkKKyAgICAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
QVJJQUdyaWRDZWxsOjpjcmVhdGUocmVuZGVyZXIpOwogCi0gICAgLy8gYXJpYSB0cmVlCi0gICAg
aWYgKGlzQWNjZXNzaWJpbGl0eVRyZWUobm9kZSkpCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5VHJlZTo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5VHJlZUl0
ZW0obm9kZSkpCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OmNyZWF0ZShy
ZW5kZXJlcik7CisgICAgICAgIGlmIChpc0FjY2Vzc2liaWxpdHlUcmVlKCpub2RlKSkKKyAgICAg
ICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VHJlZTo6Y3JlYXRlKHJlbmRlcmVyKTsKKyAgICAg
ICAgaWYgKGlzQWNjZXNzaWJpbGl0eVRyZWVJdGVtKCpub2RlKSkKKyAgICAgICAgICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OmNyZWF0ZShyZW5kZXJlcik7CiAKLSAgICBpZiAobm9k
ZSAmJiBpczxIVE1MTGFiZWxFbGVtZW50Pihub2RlKSAmJiBub2RlSGFzUm9sZShub2RlLCBudWxs
QXRvbSgpKSkKLSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlMYWJlbDo6Y3JlYXRlKHJlbmRl
cmVyKTsKKyAgICAgICAgaWYgKGlzPEhUTUxMYWJlbEVsZW1lbnQ+KCpub2RlKSAmJiBub2RlSGFz
Um9sZShub2RlLmdldCgpLCBudWxsQXRvbSgpKSkKKyAgICAgICAgICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5TGFiZWw6OmNyZWF0ZShyZW5kZXJlcik7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIGlmIChpczxIVE1MTWVkaWFFbGVtZW50Pihub2RlKSAmJiBub2RlSGFzUm9sZShub2Rl
LCBudWxsQXRvbSgpKSkKLSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdDo6
Y3JlYXRlKHJlbmRlcmVyKTsKKyAgICAgICAgaWYgKGlzPEhUTUxNZWRpYUVsZW1lbnQ+KCpub2Rl
KSAmJiBub2RlSGFzUm9sZShub2RlLmdldCgpLCBudWxsQXRvbSgpKSkKKyAgICAgICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OmNyZWF0ZShyZW5kZXJlcik7CiAjZW5kaWYK
KyAgICB9CiAKLSAgICBpZiAocmVuZGVyZXItPmlzUmVuZGVyT3JMZWdhY3lSZW5kZXJTVkdSb290
KCkpCisgICAgaWYgKHJlbmRlcmVyLmlzUmVuZGVyT3JMZWdhY3lSZW5kZXJTVkdSb290KCkpCiAg
ICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6Y3JlYXRlKHJlbmRlcmVyLCB0aGlz
KTsKIAogICAgIGlmIChpczxTVkdFbGVtZW50Pihub2RlKSkKICAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlTVkdFbGVtZW50OjpjcmVhdGUocmVuZGVyZXIsIHRoaXMpOwogCi0gICAgaWYgKGlz
U2ltcGxlSW1hZ2UoKnJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuIEFYSW1hZ2U6OmNyZWF0ZShk
b3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKTsKKyAgICBpZiAoYXV0byogcmVuZGVySW1h
Z2UgPSB0b1NpbXBsZUltYWdlKHJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuIEFYSW1hZ2U6OmNy
ZWF0ZSgqcmVuZGVySW1hZ2UpOwogCiAjaWYgRU5BQkxFKE1BVEhNTCkKICAgICAvLyBUaGUgbWZl
bmNlZCBlbGVtZW50IGNyZWF0ZXMgYW5vbnltb3VzIFJlbmRlck1hdGhNTE9wZXJhdG9ycyB3aGlj
aCBzaG91bGQgYmUgdHJlYXRlZAogICAgIC8vIGFzIE1hdGhNTCBlbGVtZW50cyBhbmQgYXNzaWdu
ZWQgdGhlIE1hdGhFbGVtZW50Um9sZSBzbyB0aGF0IHBsYXRmb3JtIGxvZ2ljIHJlZ2FyZGluZwog
ICAgIC8vIGluY2x1c2lvbiBhbmQgcm9sZSBtYXBwaW5nIGlzIG5vdCBieXBhc3NlZC4KLSAgICBi
b29sIGlzQW5vbnltb3VzT3BlcmF0b3IgPSByZW5kZXJlci0+aXNBbm9ueW1vdXMoKSAmJiBpczxS
ZW5kZXJNYXRoTUxPcGVyYXRvcj4oKnJlbmRlcmVyKTsKKyAgICBib29sIGlzQW5vbnltb3VzT3Bl
cmF0b3IgPSByZW5kZXJlci5pc0Fub255bW91cygpICYmIGlzPFJlbmRlck1hdGhNTE9wZXJhdG9y
PihyZW5kZXJlcik7CiAgICAgaWYgKGlzQW5vbnltb3VzT3BlcmF0b3IgfHwgaXM8TWF0aE1MRWxl
bWVudD4obm9kZSkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudDo6
Y3JlYXRlKHJlbmRlcmVyLCBpc0Fub255bW91c09wZXJhdG9yKTsKICNlbmRpZgpAQCAtNzY0LDE0
ICs3NjIsMTQgQEAgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFYT2JqZWN0Q2FjaGU6OmNyZWF0
ZU9iamVjdEZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHIKICAgICBpZiAoaXM8UmVuZGVyTGlz
dEJveD4ocmVuZGVyZXIpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUxpc3RCb3g6OmNy
ZWF0ZShyZW5kZXJlcik7CiAgICAgaWYgKGF1dG8qIHJlbmRlck1lbnVMaXN0ID0gZHluYW1pY0Rv
d25jYXN0PFJlbmRlck1lbnVMaXN0PihyZW5kZXJlcikpCi0gICAgICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5TWVudUxpc3Q6OmNyZWF0ZShyZW5kZXJNZW51TGlzdCk7CisgICAgICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmNyZWF0ZSgqcmVuZGVyTWVudUxpc3QpOwogCiAgICAgLy8g
c3RhbmRhcmQgdGFibGVzCi0gICAgaWYgKChpczxSZW5kZXJUYWJsZT4ocmVuZGVyZXIpICYmICFy
ZW5kZXJlci0+aXNBbm9ueW1vdXMoKSkgfHwgaXNBY2Nlc3NpYmlsaXR5VGFibGUobm9kZSkpCisg
ICAgaWYgKChpczxSZW5kZXJUYWJsZT4ocmVuZGVyZXIpICYmICFyZW5kZXJlci5pc0Fub255bW91
cygpKSB8fCBpc0FjY2Vzc2liaWxpdHlUYWJsZShub2RlLmdldCgpKSkKICAgICAgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlUYWJsZTo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAoKGlzPFJlbmRl
clRhYmxlUm93PihyZW5kZXJlcikgJiYgIXJlbmRlcmVyLT5pc0Fub255bW91cygpKSB8fCBpc0Fj
Y2Vzc2liaWxpdHlUYWJsZVJvdyhub2RlKSkKKyAgICBpZiAoKGlzPFJlbmRlclRhYmxlUm93Pihy
ZW5kZXJlcikgJiYgIXJlbmRlcmVyLmlzQW5vbnltb3VzKCkpIHx8IGlzQWNjZXNzaWJpbGl0eVRh
YmxlUm93KG5vZGUuZ2V0KCkpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRhYmxlUm93
OjpjcmVhdGUocmVuZGVyZXIpOwotICAgIGlmICgoaXM8UmVuZGVyVGFibGVDZWxsPihyZW5kZXJl
cikgJiYgIXJlbmRlcmVyLT5pc0Fub255bW91cygpKSB8fCBpc0FjY2Vzc2liaWxpdHlUYWJsZUNl
bGwobm9kZSkpCisgICAgaWYgKChpczxSZW5kZXJUYWJsZUNlbGw+KHJlbmRlcmVyKSAmJiAhcmVu
ZGVyZXIuaXNBbm9ueW1vdXMoKSkgfHwgaXNBY2Nlc3NpYmlsaXR5VGFibGVDZWxsKG5vZGUuZ2V0
KCkpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y3JlYXRlKHJlbmRl
cmVyKTsKIAogICAgIC8vIFByb2dyZXNzIGluZGljYXRvci4KQEAgLTc4MSw3ICs3NzksNyBAQCBS
ZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gQVhPYmplY3RDYWNoZTo6Y3JlYXRlT2JqZWN0RnJvbVJl
bmRlcmVyKFJlbmRlck9iamVjdCogcgogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkK
ICAgICBpZiAoYXV0byogcmVuZGVyQXR0YWNobWVudCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJB
dHRhY2htZW50PihyZW5kZXJlcikpCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5QXR0YWNo
bWVudDo6Y3JlYXRlKHJlbmRlckF0dGFjaG1lbnQpOworICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eUF0dGFjaG1lbnQ6OmNyZWF0ZSgqcmVuZGVyQXR0YWNobWVudCk7CiAjZW5kaWYKIAogICAg
IC8vIGlucHV0IHR5cGU9cmFuZ2UKQEAgLTc5Myw3ICs3OTEsNyBAQCBSZWY8QWNjZXNzaWJpbGl0
eU9iamVjdD4gQVhPYmplY3RDYWNoZTo6Y3JlYXRlT2JqZWN0RnJvbVJlbmRlcmVyKFJlbmRlck9i
amVjdCogcgogCiBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21Ob2Rl
KE5vZGUmIG5vZGUpCiB7Ci0gICAgaWYgKGlzQWNjZXNzaWJpbGl0eUxpc3QoJm5vZGUpKQorICAg
IGlmIChpc0FjY2Vzc2liaWxpdHlMaXN0KG5vZGUpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eUxpc3Q6OmNyZWF0ZShub2RlKTsKICAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5VGFibGUoJm5v
ZGUpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRhYmxlOjpjcmVhdGUobm9kZSk7CkBA
IC04MDEsMTUgKzc5OSwxNSBAQCBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0
ZUZyb21Ob2RlKE5vZGUmIG5vZGUpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGFibGVS
b3c6OmNyZWF0ZShub2RlKTsKICAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5VGFibGVDZWxsKCZub2Rl
KSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNyZWF0ZShub2RlKTsK
LSAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5VHJlZSgmbm9kZSkpCisgICAgaWYgKGlzQWNjZXNzaWJp
bGl0eVRyZWUobm9kZSkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VHJlZTo6Y3JlYXRl
KG5vZGUpOwotICAgIGlmIChpc0FjY2Vzc2liaWxpdHlUcmVlSXRlbSgmbm9kZSkpCisgICAgaWYg
KGlzQWNjZXNzaWJpbGl0eVRyZWVJdGVtKG5vZGUpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eVRyZWVJdGVtOjpjcmVhdGUobm9kZSk7Ci0gICAgaWYgKGlzQWNjZXNzaWJpbGl0eUFSSUFU
YWJsZSgmbm9kZSkpCisgICAgaWYgKGlzQWNjZXNzaWJpbGl0eUFSSUFUYWJsZShub2RlKSkKICAg
ICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlBUklBVGFibGU6OmNyZWF0ZShub2RlKTsKLSAgICBp
ZiAoaXNBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3coJm5vZGUpKQorICAgIGlmIChpc0FjY2Vzc2li
aWxpdHlBUklBR3JpZFJvdyhub2RlKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlBUklB
R3JpZFJvdzo6Y3JlYXRlKG5vZGUpOwotICAgIGlmIChpc0FjY2Vzc2liaWxpdHlBUklBR3JpZENl
bGwoJm5vZGUpKQorICAgIGlmIChpc0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwobm9kZSkpCiAg
ICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpjcmVhdGUobm9kZSk7CiAg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjcmVhdGUobm9kZSk7CiB9CkBAIC05
MzksNyArOTM3LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0T3JD
cmVhdGUoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKICAgICBpZiAocmVuZGVyZXIuYmVpbmdEZXN0
cm95ZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWYgb2JqZWN0ID0gY3Jl
YXRlT2JqZWN0RnJvbVJlbmRlcmVyKCZyZW5kZXJlcik7CisgICAgUmVmIG9iamVjdCA9IGNyZWF0
ZU9iamVjdEZyb21SZW5kZXJlcihyZW5kZXJlcik7CiAKICAgICAvLyBXaWxsIGNyYXNoIGxhdGVy
IGlmIHdlIGhhdmUgdHdvIG9iamVjdHMgZm9yIHRoZSBzYW1lIHJlbmRlcmVyLgogICAgIEFTU0VS
VCghZ2V0KHJlbmRlcmVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oCmluZGV4IDY3OTg5NTNmMDQxZC4uZDkwMWE4ZjEwNWNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtNzM1LDcgKzczNSw3IEBA
IHByaXZhdGU6CiAjZW5kaWYKIAogICAgIC8vIE9iamVjdCBjcmVhdGlvbi4KLSAgICBSZWY8QWNj
ZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlT2JqZWN0RnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCop
OworICAgIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVPYmplY3RGcm9tUmVuZGVyZXIo
UmVuZGVyT2JqZWN0Jik7CiAKICAgICBXZWFrUmVmPERvY3VtZW50LCBXZWFrUHRySW1wbFdpdGhF
dmVudFRhcmdldERhdGE+IG1fZG9jdW1lbnQ7CiAgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gbV9wYWdlSUQ7IC8vIGNvbnN0YW50IGZvciBvYmplY3QncyBsaWZldGltZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFS
SUFHcmlkQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlBUklBR3JpZENlbGwuY3BwCmluZGV4IDBmNDY1MjA4OWIwNi4uOGY5MDMxM2M0YWJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3Jp
ZENlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUFSSUFHcmlkQ2VsbC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotQWNjZXNzaWJpbGl0eUFSSUFHcmlk
Q2VsbDo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQor
QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbChSZW5k
ZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbChyZW5kZXJl
cikKIHsKIH0KQEAgLTQ5LDcgKzQ5LDcgQEAgQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6QWNj
ZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbChOb2RlJiBub2RlKQogCiBBY2Nlc3NpYmlsaXR5QVJJQUdy
aWRDZWxsOjp+QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbCgpID0gZGVmYXVsdDsKIAotUmVmPEFj
Y2Vzc2liaWxpdHlBUklBR3JpZENlbGw+IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OmNyZWF0
ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw+
IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OmNyZWF0ZShSZW5kZXJPYmplY3QmIHJlbmRlcmVy
KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwo
cmVuZGVyZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmgKaW5kZXggN2NlMzA1MmE2NDI3Li45NmUwZjYz
ZGJmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUFSSUFHcmlkQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oCkBAIC0zNCwxMiArMzQsMTIgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIAogY2xhc3MgQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbCBmaW5hbCA6IHB1
YmxpYyBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFj
Y2Vzc2liaWxpdHlBUklBR3JpZENlbGw+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw+IGNyZWF0ZShSZW5kZXJPYmplY3QmKTsK
ICAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw+IGNyZWF0ZShOb2RlJik7
CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbCgpOwogCiBwcml2YXRlOgot
ICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwoUmVuZGVyT2JqZWN0Kik7Cisg
ICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbChSZW5kZXJPYmplY3QmKTsKICAg
ICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsKE5vZGUmKTsKICAgICBib29sIGlz
QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbEluc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAKaW5kZXggMmI5NjQyODMxZTQ4Li5kZjE3N2U1
MjI1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUFSSUFHcmlkUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIAotQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93OjpBY2Nlc3NpYmlsaXR5
QVJJQUdyaWRSb3coUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlBUklBR3Jp
ZFJvdzo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93KFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiAg
ICAgOiBBY2Nlc3NpYmlsaXR5VGFibGVSb3cocmVuZGVyZXIpCiB7CiB9CkBAIC00Niw3ICs0Niw3
IEBAIEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93KE5v
ZGUmIG5vZGUpCiAKIEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6fkFjY2Vzc2liaWxpdHlBUklB
R3JpZFJvdygpID0gZGVmYXVsdDsKIAotUmVmPEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdz4gQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkUm93OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1Jl
ZjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c+IEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6Y3Jl
YXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93KHJlbmRlcmVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaAppbmRl
eCBkMzIxMDdlYWNiN2MuLjU0ZmZkOWY1OTMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oCkBAIC0zNiw3ICsz
Niw3IEBAIGNsYXNzIEFjY2Vzc2liaWxpdHlUYWJsZTsKICAgICAKIGNsYXNzIEFjY2Vzc2liaWxp
dHlBUklBR3JpZFJvdyBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5VGFibGVSb3cgewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93PiBjcmVhdGUoUmVu
ZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c+IGNy
ZWF0ZShSZW5kZXJPYmplY3QmKTsKICAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBR3Jp
ZFJvdz4gY3JlYXRlKE5vZGUmKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5QVJJQUdyaWRS
b3coKTsKIApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgQVhDb3JlT2JqZWN0KiByb3dI
ZWFkZXIoKSBmaW5hbDsKICAgICAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0
eUFSSUFHcmlkUm93KFJlbmRlck9iamVjdCopOworICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlB
UklBR3JpZFJvdyhSZW5kZXJPYmplY3QmKTsKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5QVJJ
QUdyaWRSb3coTm9kZSYpOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3dJbnN0
YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQVRhYmxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFUYWJsZS5jcHAKaW5k
ZXggZTkwZGEyMjA3NmVlLi4wOTU0Yjg2Y2RlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFUYWJsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQVRhYmxlLmNwcApAQCAtMzUsNyAr
MzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlck9iamVjdDsKIAotQWNj
ZXNzaWJpbGl0eUFSSUFUYWJsZTo6QWNjZXNzaWJpbGl0eUFSSUFUYWJsZShSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKQorQWNjZXNzaWJpbGl0eUFSSUFUYWJsZTo6QWNjZXNzaWJpbGl0eUFSSUFUYWJs
ZShSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eVRhYmxlKHJlbmRl
cmVyKQogewogfQpAQCAtNDcsNyArNDcsNyBAQCBBY2Nlc3NpYmlsaXR5QVJJQVRhYmxlOjpBY2Nl
c3NpYmlsaXR5QVJJQVRhYmxlKE5vZGUmIG5vZGUpCiAKIEFjY2Vzc2liaWxpdHlBUklBVGFibGU6
On5BY2Nlc3NpYmlsaXR5QVJJQVRhYmxlKCkgPSBkZWZhdWx0OwogCi1SZWY8QWNjZXNzaWJpbGl0
eUFSSUFUYWJsZT4gQWNjZXNzaWJpbGl0eUFSSUFUYWJsZTo6Y3JlYXRlKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eUFSSUFUYWJsZT4gQWNjZXNzaWJpbGl0eUFSSUFU
YWJsZTo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUFSSUFUYWJsZShyZW5kZXJlcikpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQVRhYmxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBVGFibGUuaApp
bmRleCA1MjU0MTI0Y2UzYTIuLmRlZTMxYTZkZDM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQVRhYmxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQVRhYmxlLmgKQEAgLTM1LDEyICsz
NSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlBUklBVGFi
bGUgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVRhYmxlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBVGFibGU+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAg
ICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBVGFibGU+IGNyZWF0ZShSZW5kZXJPYmplY3Qm
KTsKICAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBVGFibGU+IGNyZWF0ZShOb2RlJik7
CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eUFSSUFUYWJsZSgpOwogCiBwcml2YXRlOgotICAg
IGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlBUklBVGFibGUoUmVuZGVyT2JqZWN0Kik7CisgICAgZXhw
bGljaXQgQWNjZXNzaWJpbGl0eUFSSUFUYWJsZShSZW5kZXJPYmplY3QmKTsKICAgICBleHBsaWNp
dCBBY2Nlc3NpYmlsaXR5QVJJQVRhYmxlKE5vZGUmKTsKIAogICAgIC8vIEFSSUEgdHJlZWdyaWRz
IGFuZCBncmlkcyBzdXBwb3J0IHNlbGVjdGVkIHJvd3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQuY3BwCmluZGV4IGM4
ODgyODEyNzA2My4uMzQ2NTM2ZDExMGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmNwcApAQCAtMzgsMTIgKzM4
LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKLUFjY2Vzc2liaWxpdHlBdHRhY2htZW50OjpBY2Nlc3NpYmlsaXR5QXR0YWNobWVudChS
ZW5kZXJBdHRhY2htZW50KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlBdHRhY2htZW50OjpBY2Nl
c3NpYmlsaXR5QXR0YWNobWVudChSZW5kZXJBdHRhY2htZW50JiByZW5kZXJlcikKICAgICA6IEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCiB7CiB9CiAKLVJlZjxBY2Nlc3NpYmls
aXR5QXR0YWNobWVudD4gQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQ6OmNyZWF0ZShSZW5kZXJBdHRh
Y2htZW50KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5QXR0YWNobWVudD4gQWNjZXNzaWJp
bGl0eUF0dGFjaG1lbnQ6OmNyZWF0ZShSZW5kZXJBdHRhY2htZW50JiByZW5kZXJlcikKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5QXR0YWNobWVudChyZW5kZXJlcikp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QXR0YWNobWVudC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QXR0YWNobWVudC5oCmluZGV4IGI5YTUyZjViNWUzZC4uMjc0NjBjNmNhNGU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QXR0YWNo
bWVudC5oCkBAIC0zNywxMSArMzcsMTMgQEAgY2xhc3MgUmVuZGVyQXR0YWNobWVudDsKICAgICAK
IGNsYXNzIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eUF0
dGFjaG1lbnQ+IGNyZWF0ZShSZW5kZXJBdHRhY2htZW50Kik7CisgICAgc3RhdGljIFJlZjxBY2Nl
c3NpYmlsaXR5QXR0YWNobWVudD4gY3JlYXRlKFJlbmRlckF0dGFjaG1lbnQmKTsKICAgICBIVE1M
QXR0YWNobWVudEVsZW1lbnQqIGF0dGFjaG1lbnRFbGVtZW50KCkgY29uc3Q7CiAgICAgYm9vbCBo
YXNQcm9ncmVzcyhmbG9hdCogcHJvZ3Jlc3MgPSBudWxscHRyKSBjb25zdDsKICAgICAKIHByaXZh
dGU6CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQoUmVuZGVyQXR0YWNobWVu
dCYpOworCiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUo
KSBmaW5hbCB7IHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6QnV0dG9uOyB9CiAKICAgICBib29s
IGlzQXR0YWNobWVudEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CkBA
IC01MCw3ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgdmFsdWVGb3JSYW5nZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2b2lkIGFjY2Vzc2liaWxpdHlUZXh0KFZlY3RvcjxBY2Nlc3NpYmls
aXR5VGV4dD4mKSBjb25zdCBvdmVycmlkZTsKLSAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5QXR0
YWNobWVudChSZW5kZXJBdHRhY2htZW50Kik7CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TGFiZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGFiZWwuY3BwCmluZGV4IDlhNTk0OGZhNTIxYy4uM2FlOGFjZjVlMWM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuY3BwCkBAIC0z
NiwxNCArMzYsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKIAotQWNjZXNzaWJpbGl0eUxhYmVsOjpBY2Nlc3NpYmlsaXR5TGFiZWwoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlMYWJlbDo6QWNjZXNzaWJpbGl0eUxh
YmVsKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiAgICAgOiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0KHJlbmRlcmVyKQogewogfQogCiBBY2Nlc3NpYmlsaXR5TGFiZWw6On5BY2Nlc3NpYmlsaXR5
TGFiZWwoKSA9IGRlZmF1bHQ7CiAKLVJlZjxBY2Nlc3NpYmlsaXR5TGFiZWw+IEFjY2Vzc2liaWxp
dHlMYWJlbDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0
eUxhYmVsPiBBY2Nlc3NpYmlsaXR5TGFiZWw6OmNyZWF0ZShSZW5kZXJPYmplY3QmIHJlbmRlcmVy
KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlMYWJlbChyZW5kZXJl
cikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TGFiZWwuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUxhYmVsLmgKaW5kZXggZjkxNTFlMmRiOTM5Li5jZjY3NzhhODU1ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaApAQCAtMzQsMTIg
KzM0LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWNjZXNzaWJpbGl0eUxhYmVs
IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eUxhYmVsPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7Cisg
ICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TGFiZWw+IGNyZWF0ZShSZW5kZXJPYmplY3QmKTsK
ICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5TGFiZWwoKTsKIAogICAgIGJvb2wgY29udGFpbnNP
bmx5U3RhdGljVGV4dCgpIGNvbnN0OwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBBY2Nlc3NpYmls
aXR5TGFiZWwoUmVuZGVyT2JqZWN0Kik7CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUxhYmVs
KFJlbmRlck9iamVjdCYpOwogICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQo
KSBjb25zdCBmaW5hbDsKIAogICAgIEFjY2Vzc2liaWxpdHlSb2xlIGRldGVybWluZUFjY2Vzc2li
aWxpdHlSb2xlKCkgZmluYWwgeyByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkxhYmVsOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3Bw
CmluZGV4IDdjYzBhYTM1YzdmOC4uMzMzMjExMzY0MzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcApAQCAtNDEsNyArNDEsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
Ci1BY2Nlc3NpYmlsaXR5TGlzdDo6QWNjZXNzaWJpbGl0eUxpc3QoUmVuZGVyT2JqZWN0KiByZW5k
ZXJlcikKK0FjY2Vzc2liaWxpdHlMaXN0OjpBY2Nlc3NpYmlsaXR5TGlzdChSZW5kZXJPYmplY3Qm
IHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChyZW5kZXJlcikKIHsK
IH0KQEAgLTUzLDcgKzUzLDcgQEAgQWNjZXNzaWJpbGl0eUxpc3Q6OkFjY2Vzc2liaWxpdHlMaXN0
KE5vZGUmIG5vZGUpCiAKIEFjY2Vzc2liaWxpdHlMaXN0Ojp+QWNjZXNzaWJpbGl0eUxpc3QoKSA9
IGRlZmF1bHQ7CiAKLVJlZjxBY2Nlc3NpYmlsaXR5TGlzdD4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNy
ZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBBY2Nl
c3NpYmlsaXR5TGlzdDo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxpc3QocmVuZGVyZXIpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaAppbmRleCA3
NmQ2ZDY2MzIzODQuLmMwNjRlNzkxN2M3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaApAQCAtMzQsMTIgKzM0LDEyIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIEFjY2Vzc2liaWxpdHlMaXN0IGZpbmFsIDogcHVibGlj
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QWNj
ZXNzaWJpbGl0eUxpc3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFj
Y2Vzc2liaWxpdHlMaXN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Jik7CiAgICAgc3RhdGljIFJlZjxB
Y2Nlc3NpYmlsaXR5TGlzdD4gY3JlYXRlKE5vZGUmKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmls
aXR5TGlzdCgpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlMaXN0KFJl
bmRlck9iamVjdCopOworICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlMaXN0KFJlbmRlck9iamVj
dCYpOwogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlMaXN0KE5vZGUmKTsKICAgICBib29sIGlz
TGlzdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGlzVW5vcmRl
cmVkTGlzdCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcAppbmRleCBiODEzYTU1NjZiOGEuLjYz
MzNjOTcxYmVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKQEAgLTQyLDE0ICs0MiwxNCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUFjY2Vzc2liaWxpdHlMaXN0
Qm94OjpBY2Nlc3NpYmlsaXR5TGlzdEJveChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorQWNjZXNz
aWJpbGl0eUxpc3RCb3g6OkFjY2Vzc2liaWxpdHlMaXN0Qm94KFJlbmRlck9iamVjdCYgcmVuZGVy
ZXIpCiAgICAgOiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KHJlbmRlcmVyKQogewogfQogCiBB
Y2Nlc3NpYmlsaXR5TGlzdEJveDo6fkFjY2Vzc2liaWxpdHlMaXN0Qm94KCkgPSBkZWZhdWx0Owog
Ci1SZWY8QWNjZXNzaWJpbGl0eUxpc3RCb3g+IEFjY2Vzc2liaWxpdHlMaXN0Qm94OjpjcmVhdGUo
UmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5TGlzdEJveD4gQWNjZXNz
aWJpbGl0eUxpc3RCb3g6OmNyZWF0ZShSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlMaXN0Qm94KHJlbmRlcmVyKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94
LmgKaW5kZXggYjdkMDQ2NzcxNzgxLi45N2I4OTE1NWJhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmgKQEAgLTM0LDcgKzM0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBY2Nlc3NpYmlsaXR5TGlzdEJveCBm
aW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlMaXN0Qm94PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7Cisg
ICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TGlzdEJveD4gY3JlYXRlKFJlbmRlck9iamVjdCYp
OwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlMaXN0Qm94KCk7CiAKICAgICBib29sIGNhblNl
dFNlbGVjdGVkQ2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZTsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBl
eHBsaWNpdCBBY2Nlc3NpYmlsaXR5TGlzdEJveChSZW5kZXJPYmplY3QqKTsKKyAgICBleHBsaWNp
dCBBY2Nlc3NpYmlsaXR5TGlzdEJveChSZW5kZXJPYmplY3QmKTsKIAogICAgIGJvb2wgaXNBY2Nl
c3NpYmlsaXR5TGlzdEJveEluc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGxpc3RCb3hPcHRpb25BY2Nlc3NpYmlsaXR5T2Jq
ZWN0KEhUTUxFbGVtZW50KikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQuY3BwCmluZGV4IGE2MThk
ODI5NzgxYi4uNTU1NjE1N2I5YzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50LmNwcApAQCAtMzYsNyAr
MzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFjY2Vzc2liaWxpdHlNYXRoTUxFbGVt
ZW50OjpBY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBi
b29sIGlzQW5vbnltb3VzT3BlcmF0b3IpCitBY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudDo6QWNj
ZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQoUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgYm9vbCBpc0Fu
b255bW91c09wZXJhdG9yKQogICAgIDogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChyZW5kZXJl
cikKICAgICAsIG1faXNBbm9ueW1vdXNPcGVyYXRvcihpc0Fub255bW91c09wZXJhdG9yKQogewpA
QCAtNDQsNyArNDQsNyBAQCBBY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudDo6QWNjZXNzaWJpbGl0
eU1hdGhNTEVsZW1lbnQoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgYgogCiBBY2Nlc3NpYmlsaXR5
TWF0aE1MRWxlbWVudDo6fkFjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50KCkgPSBkZWZhdWx0Owog
Ci1SZWY8QWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlNYXRoTUxFbGVt
ZW50OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgYm9vbCBpc0Fub255bW91c09wZXJh
dG9yKQorUmVmPEFjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50PiBBY2Nlc3NpYmlsaXR5TWF0aE1M
RWxlbWVudDo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIGJvb2wgaXNBbm9ueW1vdXNP
cGVyYXRvcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWF0aE1M
RWxlbWVudChyZW5kZXJlciwgaXNBbm9ueW1vdXNPcGVyYXRvcikpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVu
dC5oCmluZGV4IDUxZDg2ZDdhZjE0OC4uMGQzODFhZWEyYzY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudC5o
CkBAIC00MSwxMSArNDEsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWNjZXNzaWJp
bGl0eU1hdGhNTEVsZW1lbnQgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CiAK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50PiBjcmVh
dGUoUmVuZGVyT2JqZWN0KiwgYm9vbCBpc0Fub255bW91c09wZXJhdG9yKTsKKyAgICBzdGF0aWMg
UmVmPEFjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50PiBjcmVhdGUoUmVuZGVyT2JqZWN0JiwgYm9v
bCBpc0Fub255bW91c09wZXJhdG9yKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5TWF0aE1M
RWxlbWVudCgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1hdGhN
TEVsZW1lbnQoUmVuZGVyT2JqZWN0KiwgYm9vbCBpc0Fub255bW91c09wZXJhdG9yKTsKKyAgICBl
eHBsaWNpdCBBY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudChSZW5kZXJPYmplY3QmLCBib29sIGlz
QW5vbnltb3VzT3BlcmF0b3IpOwogCiBwcml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlSb2xlIGRl
dGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9iamVjdC5jcHAKaW5kZXgg
Y2Q3NjIwMDBmMzk4Li40M2Y3MzJmNmM1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9iamVjdC5jcHAKQEAgLTQxLDE0
ICs0MSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogCi1BY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OkFjY2Vzc2liaWxpdHlNZWRpYU9i
amVjdChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0OjpB
Y2Nlc3NpYmlsaXR5TWVkaWFPYmplY3QoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKICAgICA6IEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCiB7CiB9CiAKIEFjY2Vzc2liaWxpdHlN
ZWRpYU9iamVjdDo6fkFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdCgpID0gZGVmYXVsdDsKIAotUmVm
PEFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdD4gQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0OjpjcmVh
dGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q+
IEFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdDo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIp
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0KHJl
bmRlcmVyKSk7CiB9CkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU1lZGlhT2Jq
ZWN0OjptZWRpYVNlZWsoQVhTZWVrRGlyZWN0aW9uIGRpcmVjdGlvbikKICAgICBkb3VibGUgZHVy
YXRpb24gPSBlbGVtZW50LT5kdXJhdGlvbigpOwogICAgIGRvdWJsZSB0aW1lRGVsdGEgPSBjZWls
KGR1cmF0aW9uICogc2Vla1N0ZXApOwogCi0gICAgZG91YmxlIHRpbWUgPSBkaXJlY3Rpb24gPT0g
QVhTZWVrRm9yd2FyZCA/IHN0ZDo6bWluKGN1cnJlbnQgKyB0aW1lRGVsdGEsIGR1cmF0aW9uKSA6
IHN0ZDo6bWF4KGN1cnJlbnQgLSB0aW1lRGVsdGEsIDAuMCk7CisgICAgZG91YmxlIHRpbWUgPSBk
aXJlY3Rpb24gPT0gQVhTZWVrRGlyZWN0aW9uOjpGb3J3YXJkID8gc3RkOjptaW4oY3VycmVudCAr
IHRpbWVEZWx0YSwgZHVyYXRpb24pIDogc3RkOjptYXgoY3VycmVudCAtIHRpbWVEZWx0YSwgMC4w
KTsKICAgICBlbGVtZW50LT5zZXRDdXJyZW50VGltZSh0aW1lKTsKIH0KIApAQCAtMTA0LDEyICsx
MDQsMTIgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OnRvZ2dsZU11dGUoKQogCiB2
b2lkIEFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdDo6aW5jcmVtZW50KCkKIHsKLSAgICBtZWRpYVNl
ZWsoQVhTZWVrRm9yd2FyZCk7CisgICAgbWVkaWFTZWVrKEFYU2Vla0RpcmVjdGlvbjo6Rm9yd2Fy
ZCk7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0OjpkZWNyZW1lbnQoKQogewot
ICAgIG1lZGlhU2VlayhBWFNlZWtCYWNrd2FyZCk7CisgICAgbWVkaWFTZWVrKEFYU2Vla0RpcmVj
dGlvbjo6QmFja3dhcmQpOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdDo6cHJl
c3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TWVkaWFPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lZGlhT2JqZWN0LmgKaW5kZXggODNkY2U2NDkzZjliLi40ODM1ZDYxY2NkZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVk
aWFPYmplY3QuaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBj
bGFzcyBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3QgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TWVk
aWFPYmplY3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2li
aWxpdHlNZWRpYU9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCYpOwogICAgIHZpcnR1YWwgfkFj
Y2Vzc2liaWxpdHlNZWRpYU9iamVjdCgpOwogICAgIAogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVu
KCkgY29uc3Q7CkBAIC00OSw4ICs0OSw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzTXV0ZWQoKSBj
b25zdDsKIAogcHJpdmF0ZToKLSAgICBlbnVtIEFYU2Vla0RpcmVjdGlvbiB7IEFYU2Vla0Zvcndh
cmQsIEFYU2Vla0JhY2t3YXJkIH07Ci0gICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1lZGlhT2Jq
ZWN0KFJlbmRlck9iamVjdCopOworICAgIGVudW0gY2xhc3MgQVhTZWVrRGlyZWN0aW9uIDogYm9v
bCB7IEJhY2t3YXJkLCBGb3J3YXJkIH07CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1lZGlh
T2JqZWN0KFJlbmRlck9iamVjdCYpOwogICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzTWVkaWFPYmplY3QoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAKaW5kZXggMGFmZGRlY2MwZDE0Li40
ZTZkMjU4NDYyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAKQEAgLTMzLDEyICszMywxMiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLUFjY2Vzc2liaWxpdHlNZW51TGlzdDo6QWNjZXNzaWJpbGl0eU1lbnVM
aXN0KFJlbmRlck1lbnVMaXN0KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlNZW51TGlzdDo6QWNj
ZXNzaWJpbGl0eU1lbnVMaXN0KFJlbmRlck1lbnVMaXN0JiByZW5kZXJlcikKICAgICA6IEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCiB7CiB9CiAKLVJlZjxBY2Nlc3NpYmlsaXR5
TWVudUxpc3Q+IEFjY2Vzc2liaWxpdHlNZW51TGlzdDo6Y3JlYXRlKFJlbmRlck1lbnVMaXN0KiBy
ZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5TWVudUxpc3Q+IEFjY2Vzc2liaWxpdHlNZW51TGlz
dDo6Y3JlYXRlKFJlbmRlck1lbnVMaXN0JiByZW5kZXJlcikKIHsKICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWVudUxpc3QocmVuZGVyZXIpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5oCmluZGV4
IDUzOWFhMjE1YWVjOS4uMTBhYjhhNzg4MzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmgKQEAgLTMzLDcgKzMzLDcgQEAg
Y2xhc3MgUmVuZGVyTWVudUxpc3Q7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlNZW51TGlzdCBmaW5h
bCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlNZW51TGlzdD4gY3JlYXRlKFJlbmRlck1lbnVMaXN0KiByZW5k
ZXJlcik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TWVudUxpc3Q+IGNyZWF0ZShSZW5k
ZXJNZW51TGlzdCYpOwogCiAgICAgYm9vbCBpc0NvbGxhcHNlZCgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgcHJlc3MoKSBvdmVycmlkZTsKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKGludCBvcHRpb25JbmRleCk7CiAKIHByaXZhdGU6
Ci0gICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1lbnVMaXN0KFJlbmRlck1lbnVMaXN0Kik7Cisg
ICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1lbnVMaXN0KFJlbmRlck1lbnVMaXN0Jik7CiAKICAg
ICBib29sIGlzTWVudUxpc3QoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgQWNj
ZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKSBmaW5hbCB7IHJldHVy
biBBY2Nlc3NpYmlsaXR5Um9sZTo6UG9wVXBCdXR0b247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXgg
M2NhMTlkZmM2NDdjLi4yZTZmZmZjZGM4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC05Myw3ICs5
Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAotc3RhdGljIFN0cmluZyBhY2Nlc3NpYmxlTmFtZUZvck5vZGUoTm9kZSogbm9kZSwgTm9kZSog
bGFiZWxsZWRieU5vZGUgPSBudWxscHRyKTsKK3N0YXRpYyBTdHJpbmcgYWNjZXNzaWJsZU5hbWVG
b3JOb2RlKE5vZGUmLCBOb2RlKiBsYWJlbGxlZGJ5Tm9kZSA9IG51bGxwdHIpOwogc3RhdGljIHZv
aWQgYXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihTdHJpbmdCdWlsZGVyJiwgU3RyaW5nJiYpOwog
CiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QoTm9kZSog
bm9kZSkKQEAgLTE3MzIsNyArMTczMiw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6dGV4dEFzTGFiZWxGb3IoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdCYgbGFiZWxlCiAKICAg
ICAgICAgICAgIGlmIChjaGlsZC0+aXNMaXN0Qm94KCkpIHsKICAgICAgICAgICAgICAgICBmb3Ig
KGNvbnN0IGF1dG8mIHNlbGVjdGVkR3JhbmRDaGlsZCA6IGNoaWxkLT5zZWxlY3RlZENoaWxkcmVu
KCkpCi0gICAgICAgICAgICAgICAgICAgIGFwcGVuZE5hbWVUb1N0cmluZ0J1aWxkZXIoYnVpbGRl
ciwgYWNjZXNzaWJsZU5hbWVGb3JOb2RlKHNlbGVjdGVkR3JhbmRDaGlsZC0+bm9kZSgpKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGFwcGVuZE5hbWVUb1N0cmluZ0J1aWxkZXIoYnVpbGRlciwgYWNj
ZXNzaWJsZU5hbWVGb3JOb2RlKCpzZWxlY3RlZEdyYW5kQ2hpbGQtPm5vZGUoKSkpOwogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCkBAIC0xNzg5LDcgKzE3ODksNyBA
QCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRGb3JMYWJlbEVsZW1lbnRzKFZl
Y3RvcjxSZWY8SFRNTEVsZW1lbnQ+PiYmCiAgICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdC
dWlsZGVyKHJlc3VsdCwgYXhMYWJlbC0+dGV4dEFzTGFiZWxGb3IoKnRoaXMpKTsKICNlbmRpZgog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKHJlc3Vs
dCwgYWNjZXNzaWJsZU5hbWVGb3JOb2RlKGxhYmVsRWxlbWVudC5wdHIoKSkpOworICAgICAgICAg
ICAgYXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihyZXN1bHQsIGFjY2Vzc2libGVOYW1lRm9yTm9k
ZShsYWJlbEVsZW1lbnQuZ2V0KCkpKTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CkBAIC0xODg5LDE5ICsxODg5LDE5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmFsdGVybmF0aXZlVGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JiB0ZXh0T3JkCiAg
ICAgaWYgKFJlZlB0ciBmaWVsZHNldCA9IGR5bmFtaWNEb3duY2FzdDxIVE1MRmllbGRTZXRFbGVt
ZW50Pigqbm9kZSk7IGZpZWxkc2V0ICYmIG9iamVjdENhY2hlKSB7CiAgICAgICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iamVjdCA9IG9iamVjdENhY2hlLT5nZXRPckNyZWF0ZShmaWVsZHNldC0+
bGVnZW5kKCkpOwogICAgICAgICBpZiAob2JqZWN0ICYmICFvYmplY3QtPmlzSGlkZGVuKCkpCi0g
ICAgICAgICAgICB0ZXh0T3JkZXIuYXBwZW5kKEFjY2Vzc2liaWxpdHlUZXh0KGFjY2Vzc2libGVO
YW1lRm9yTm9kZShvYmplY3QtPm5vZGUoKSksIEFjY2Vzc2liaWxpdHlUZXh0U291cmNlOjpBbHRl
cm5hdGl2ZSkpOworICAgICAgICAgICAgdGV4dE9yZGVyLmFwcGVuZChBY2Nlc3NpYmlsaXR5VGV4
dChhY2Nlc3NpYmxlTmFtZUZvck5vZGUoKm9iamVjdC0+bm9kZSgpKSwgQWNjZXNzaWJpbGl0eVRl
eHRTb3VyY2U6OkFsdGVybmF0aXZlKSk7CiAgICAgfQogCiAgICAgLy8gVGhlIGZpZ3VyZSBlbGVt
ZW50IGRlcml2ZXMgaXRzIGFsdGVybmF0aXZlIHRleHQgZnJvbSB0aGUgZmlyc3QgYXNzb2NpYXRl
ZCBmaWdjYXB0aW9uIGVsZW1lbnQgaWYgb25lIGlzIGF2YWlsYWJsZS4KICAgICBpZiAoaXNGaWd1
cmVFbGVtZW50KCkpIHsKICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogY2FwdGlvbkZvckZp
Z3VyZSA9IHRoaXMtPmNhcHRpb25Gb3JGaWd1cmUoKTsKICAgICAgICAgaWYgKGNhcHRpb25Gb3JG
aWd1cmUgJiYgIWNhcHRpb25Gb3JGaWd1cmUtPmlzSGlkZGVuKCkpCi0gICAgICAgICAgICB0ZXh0
T3JkZXIuYXBwZW5kKEFjY2Vzc2liaWxpdHlUZXh0KGFjY2Vzc2libGVOYW1lRm9yTm9kZShjYXB0
aW9uRm9yRmlndXJlLT5ub2RlKCkpLCBBY2Nlc3NpYmlsaXR5VGV4dFNvdXJjZTo6QWx0ZXJuYXRp
dmUpKTsKKyAgICAgICAgICAgIHRleHRPcmRlci5hcHBlbmQoQWNjZXNzaWJpbGl0eVRleHQoYWNj
ZXNzaWJsZU5hbWVGb3JOb2RlKCpjYXB0aW9uRm9yRmlndXJlLT5ub2RlKCkpLCBBY2Nlc3NpYmls
aXR5VGV4dFNvdXJjZTo6QWx0ZXJuYXRpdmUpKTsKICAgICB9CiAKICAgICAvLyBUcmVlIGl0ZW1z
IG1pc3NpbmcgYSBsYWJlbCBhcmUgbGFiZWxlZCBieSBhbGwgY2hpbGQgZWxlbWVudHMuCiAgICAg
aWYgKGlzVHJlZUl0ZW0oKSAmJiBhcmlhTGFiZWwuaXNFbXB0eSgpICYmIGFyaWFMYWJlbGVkQnlB
dHRyaWJ1dGUoKS5pc0VtcHR5KCkpCi0gICAgICAgIHRleHRPcmRlci5hcHBlbmQoQWNjZXNzaWJp
bGl0eVRleHQoYWNjZXNzaWJsZU5hbWVGb3JOb2RlKG5vZGUpLCBBY2Nlc3NpYmlsaXR5VGV4dFNv
dXJjZTo6QWx0ZXJuYXRpdmUpKTsKKyAgICAgICAgdGV4dE9yZGVyLmFwcGVuZChBY2Nlc3NpYmls
aXR5VGV4dChhY2Nlc3NpYmxlTmFtZUZvck5vZGUoKm5vZGUpLCBBY2Nlc3NpYmlsaXR5VGV4dFNv
dXJjZTo6QWx0ZXJuYXRpdmUpKTsKIAogI2lmIEVOQUJMRShNQVRITUwpCiAgICAgaWYgKG5vZGUt
PmlzTWF0aE1MRWxlbWVudCgpKQpAQCAtMjI5Miw3ICsyMjkyLDcgQEAgU3RyaW5nIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KFRleHRVbmRlckVsZW1lbnRNb2RlIG1v
ZGUpIGNvbnMKIAogICAgICAgICBib29sIHNob3VsZERlcml2ZU5hbWVGcm9tQXV0aG9yID0gKG1v
ZGUuY2hpbGRyZW5JbmNsdXNpb24gPT0gVGV4dFVuZGVyRWxlbWVudE1vZGU6OkNoaWxkcmVuOjpJ
bmNsdWRlTmFtZUZyb21Db250ZW50c0NoaWxkcmVuICYmICFjaGlsZC0+YWNjZXNzaWJsZU5hbWVE
ZXJpdmVzRnJvbUNvbnRlbnQoKSk7CiAgICAgICAgIGlmIChzaG91bGREZXJpdmVOYW1lRnJvbUF1
dGhvcikgewotICAgICAgICAgICAgYXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihidWlsZGVyLCBh
Y2Nlc3NpYmxlTmFtZUZvck5vZGUoY2hpbGQtPm5vZGUoKSkpOworICAgICAgICAgICAgYXBwZW5k
TmFtZVRvU3RyaW5nQnVpbGRlcihidWlsZGVyLCBhY2Nlc3NpYmxlTmFtZUZvck5vZGUoKmNoaWxk
LT5ub2RlKCkpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTI1MDEs
MTEgKzI1MDEsOCBAQCBTUkdCQTx1aW50OF90PiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y29s
b3JWYWx1ZSgpIGNvbnN0CiAKIC8vIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgQVJJQSBh
Y2Nlc3NpYmxlIG5hbWUgYXMgZGVzY3JpYmVkIGJ5IHRoZSBNb3ppbGxhCiAvLyBBUklBIEltcGxl
bWVudGVyJ3MgR3VpZGUuCi1zdGF0aWMgU3RyaW5nIGFjY2Vzc2libGVOYW1lRm9yTm9kZShOb2Rl
KiBub2RlLCBOb2RlKiBsYWJlbGxlZGJ5Tm9kZSkKK3N0YXRpYyBTdHJpbmcgYWNjZXNzaWJsZU5h
bWVGb3JOb2RlKE5vZGUmIG5vZGUsIE5vZGUqIGxhYmVsbGVkYnlOb2RlKQogewotICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQganVzdCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiB0byBqdXN0IHRha2UgYSBy
ZWZlcmVuY2Ugc2luY2Ugd2UgQVNTRVJUKG5vZGUpIGFuZCBkZXJlZiB3aXRob3V0IGEgbnVsbHB0
ciBjaGVjay4KLSAgICBBU1NFUlQobm9kZSk7Ci0KICAgICBhdXRvKiBlbGVtZW50ID0gZHluYW1p
Y0Rvd25jYXN0PEVsZW1lbnQ+KG5vZGUpOwogICAgIGNvbnN0IEF0b21TdHJpbmcmIGFyaWFMYWJl
bCA9IGVsZW1lbnQgPyBlbGVtZW50LT5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFy
aWFfbGFiZWxBdHRyKSA6IG51bGxBdG9tKCk7CiAgICAgaWYgKCFhcmlhTGFiZWwuaXNFbXB0eSgp
KQpAQCAtMjUxNyw4ICsyNTE0LDggQEAgc3RhdGljIFN0cmluZyBhY2Nlc3NpYmxlTmFtZUZvck5v
ZGUoTm9kZSogbm9kZSwgTm9kZSogbGFiZWxsZWRieU5vZGUpCiAKICAgICAvLyBJZiB0aGUgbm9k
ZSBjYW4gYmUgdHVybmVkIGludG8gYW4gQVggb2JqZWN0LCB3ZSBjYW4gdXNlIHN0YW5kYXJkIG5h
bWUgY29tcHV0YXRpb24gcnVsZXMuCiAgICAgLy8gSWYgaG93ZXZlciwgdGhlIG5vZGUgY2Fubm90
IChiZWNhdXNlIHRoZXJlJ3Mgbm8gcmVuZGVyZXIgZS5nLikgZmFsbGJhY2sgdG8gdXNpbmcgdGhl
IGJhc2ljIHRleHQgdW5kZXJuZWF0aC4KLSAgICBhdXRvKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50
KCkuYXhPYmplY3RDYWNoZSgpOwotICAgIFJlZlB0ciBheE9iamVjdCA9IGNhY2hlID8gY2FjaGUt
PmdldE9yQ3JlYXRlKCpub2RlKSA6IG51bGxwdHI7CisgICAgYXV0byogY2FjaGUgPSBub2RlLmRv
Y3VtZW50KCkuYXhPYmplY3RDYWNoZSgpOworICAgIFJlZlB0ciBheE9iamVjdCA9IGNhY2hlID8g
Y2FjaGUtPmdldE9yQ3JlYXRlKG5vZGUpIDogbnVsbHB0cjsKICAgICBpZiAoYXhPYmplY3QpIHsK
ICAgICAgICAgU3RyaW5nIHZhbHVlRGVzY3JpcHRpb24gPSBheE9iamVjdC0+dmFsdWVEZXNjcmlw
dGlvbigpOwogICAgICAgICBpZiAoIXZhbHVlRGVzY3JpcHRpb24uaXNFbXB0eSgpKQpAQCAtMjU0
MSw3ICsyNTM4LDcgQEAgc3RhdGljIFN0cmluZyBhY2Nlc3NpYmxlTmFtZUZvck5vZGUoTm9kZSog
bm9kZSwgTm9kZSogbGFiZWxsZWRieU5vZGUpCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICAgICAgU3RyaW5nIGNoaWxkVGV4dDsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBj
aGlsZCA6IHNlbGVjdGVkQ2hpbGRyZW4pCi0gICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdC
dWlsZGVyKGJ1aWxkZXIsIGFjY2Vzc2libGVOYW1lRm9yTm9kZShjaGlsZC0+bm9kZSgpKSk7Cisg
ICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKGJ1aWxkZXIsIGFjY2Vzc2libGVO
YW1lRm9yTm9kZSgqY2hpbGQtPm5vZGUoKSkpOwogCiAgICAgICAgIGNoaWxkVGV4dCA9IGJ1aWxk
ZXIudG9TdHJpbmcoKTsKICAgICAgICAgaWYgKCFjaGlsZFRleHQuaXNFbXB0eSgpKQpAQCAtMjU2
Nyw3ICsyNTY0LDcgQEAgc3RhdGljIFN0cmluZyBhY2Nlc3NpYmxlTmFtZUZvck5vZGUoTm9kZSog
bm9kZSwgTm9kZSogbGFiZWxsZWRieU5vZGUpCiAgICAgICAgIGlmIChheE9iamVjdC0+YWNjZXNz
aWJsZU5hbWVEZXJpdmVzRnJvbUNvbnRlbnQoKSkKICAgICAgICAgICAgIHRleHQgPSBheE9iamVj
dC0+dGV4dFVuZGVyRWxlbWVudChUZXh0VW5kZXJFbGVtZW50TW9kZShUZXh0VW5kZXJFbGVtZW50
TW9kZTo6Q2hpbGRyZW46OkluY2x1ZGVOYW1lRnJvbUNvbnRlbnRzQ2hpbGRyZW4sIHRydWUsIGxh
YmVsbGVkYnlOb2RlKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIHRleHQgPSAoZWxlbWVudCA/IGVs
ZW1lbnQtPmlubmVyVGV4dCgpIDogbm9kZS0+dGV4dENvbnRlbnQoKSkuc2ltcGxpZnlXaGl0ZVNw
YWNlKGlzVW5pY29kZVdoaXRlc3BhY2UpOworICAgICAgICB0ZXh0ID0gKGVsZW1lbnQgPyBlbGVt
ZW50LT5pbm5lclRleHQoKSA6IG5vZGUudGV4dENvbnRlbnQoKSkuc2ltcGxpZnlXaGl0ZVNwYWNl
KGlzVW5pY29kZVdoaXRlc3BhY2UpOwogCiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIHRleHQ7CkBAIC0yNTgxLDcgKzI1NzgsNyBAQCBzdGF0aWMgU3RyaW5nIGFjY2Vz
c2libGVOYW1lRm9yTm9kZShOb2RlKiBub2RlLCBOb2RlKiBsYWJlbGxlZGJ5Tm9kZSkKICAgICBp
ZiAoYXV0byogYXNzaWduZWROb2RlcyA9IChzbG90RWxlbWVudCAmJiBsYWJlbGxlZGJ5Tm9kZSkg
PyBzbG90RWxlbWVudC0+YXNzaWduZWROb2RlcygpIDogbnVsbHB0cikgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgYXNzaWduZWROb2Rl
IDogKmFzc2lnbmVkTm9kZXMpCi0gICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVy
KGJ1aWxkZXIsIGFjY2Vzc2libGVOYW1lRm9yTm9kZShhc3NpZ25lZE5vZGUuZ2V0KCkpKTsKKyAg
ICAgICAgICAgIGFwcGVuZE5hbWVUb1N0cmluZ0J1aWxkZXIoYnVpbGRlciwgYWNjZXNzaWJsZU5h
bWVGb3JOb2RlKCphc3NpZ25lZE5vZGUpKTsKIAogICAgICAgICBhdXRvIGFzc2lnbmVkTm9kZXNU
ZXh0ID0gYnVpbGRlci50b1N0cmluZygpOwogICAgICAgICBpZiAoIWFzc2lnbmVkTm9kZXNUZXh0
LmlzRW1wdHkoKSkKQEAgLTI2MDksNyArMjYwNiw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uRm9yQ2hpbGRyZW4oKSBjb25zdAogICAg
ICAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCogYXhPYmplY3QgPSBjYWNoZS0+Z2V0T3JDcmVh
dGUoKmNoaWxkKSkgewogICAgICAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uID0gYXhPYmplY3Qt
PmFyaWFMYWJlbGVkQnlBdHRyaWJ1dGUoKTsKICAgICAgICAgICAgIGlmIChkZXNjcmlwdGlvbi5p
c0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBhY2Nlc3NpYmxlTmFtZUZv
ck5vZGUoY2hpbGQpOworICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gYWNjZXNzaWJsZU5h
bWVGb3JOb2RlKCpjaGlsZCk7CiAgICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVy
KGJ1aWxkZXIsIFdURk1vdmUoZGVzY3JpcHRpb24pKTsKICAgICAgICAgfQogICAgIH0KQEAgLTI2
MjEsNyArMjYxOCw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGVzY3JpcHRp
b25Gb3JFbGVtZW50cyhjb25zdCBWZWN0b3I8UmVmPEVsZW1lbnQ+CiB7CiAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGVsZW1lbnRzKQotICAgICAg
ICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKGJ1aWxkZXIsIGFjY2Vzc2libGVOYW1lRm9yTm9k
ZShlbGVtZW50LnB0cigpLCBub2RlKCkpKTsKKyAgICAgICAgYXBwZW5kTmFtZVRvU3RyaW5nQnVp
bGRlcihidWlsZGVyLCBhY2Nlc3NpYmxlTmFtZUZvck5vZGUoZWxlbWVudC5nZXQoKSwgbm9kZSgp
KSk7CiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3IuY3BwCmluZGV4IDYwZjdhNzBjZTU4YS4uNmU5MjNjZWJlYmY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwCkBAIC0zNSwxMyArMzUsMTMgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotQWNjZXNzaWJpbGl0eVBy
b2dyZXNzSW5kaWNhdG9yOjpBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6QWNjZXNzaWJp
bGl0eVByb2dyZXNzSW5kaWNhdG9yKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiAgICAgOiBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0KHJlbmRlcmVyKQogewotICAgIEFTU0VSVChpczxSZW5kZXJQ
cm9ncmVzcz4ocmVuZGVyZXIpIHx8IGlzPFJlbmRlck1ldGVyPihyZW5kZXJlcikgfHwgaXM8SFRN
TFByb2dyZXNzRWxlbWVudD4ocmVuZGVyZXItPm5vZGUoKSkgfHwgaXM8SFRNTE1ldGVyRWxlbWVu
dD4ocmVuZGVyZXItPm5vZGUoKSkpOworICAgIEFTU0VSVChpczxSZW5kZXJQcm9ncmVzcz4ocmVu
ZGVyZXIpIHx8IGlzPFJlbmRlck1ldGVyPihyZW5kZXJlcikgfHwgaXM8SFRNTFByb2dyZXNzRWxl
bWVudD4ocmVuZGVyZXIubm9kZSgpKSB8fCBpczxIVE1MTWV0ZXJFbGVtZW50PihyZW5kZXJlci5u
b2RlKCkpKTsKIH0KIAotUmVmPEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcj4gQWNjZXNz
aWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikK
K1JlZjxBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I+IEFjY2Vzc2liaWxpdHlQcm9ncmVz
c0luZGljYXRvcjo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKHJlbmRlcmVyKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlQcm9ncmVzc0luZGljYXRvci5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaAppbmRleCA4OWUxN2MzNDljOWUuLjI2N2QwYThj
YWRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNz
IFJlbmRlclByb2dyZXNzOwogICAgIAogY2xhc3MgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNh
dG9yIGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yPiBjcmVhdGUoUmVu
ZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0
b3I+IGNyZWF0ZShSZW5kZXJPYmplY3QmKTsKIAogICAgIGJvb2wgaXNJbmRldGVybWluYXRlKCkg
Y29uc3QgZmluYWw7CiAKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtYXhW
YWx1ZUZvclJhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgZmxvYXQgbWluVmFsdWVGb3JSYW5n
ZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVByb2dyZXNz
SW5kaWNhdG9yKFJlbmRlck9iamVjdCopOworICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlQcm9n
cmVzc0luZGljYXRvcihSZW5kZXJPYmplY3QmKTsKICAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBw
cm9ncmVzc0VsZW1lbnQoKSBjb25zdDsKICAgICBIVE1MTWV0ZXJFbGVtZW50KiBtZXRlckVsZW1l
bnQoKSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDA5MjBhODU0NzYzYi4u
MmFjZWNiMTg2MDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTEyNiwxMiArMTI2LDEyIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKQotICAgIDogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QocmVuZGVyZXIt
Pm5vZGUoKSkKK0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKKyAgICA6IEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0KHJlbmRlcmVyLm5vZGUoKSkKICAgICAsIG1fcmVuZGVyZXIocmVuZGVyZXIpCiB7CiAjaWYg
QVNTRVJUX0VOQUJMRUQKLSAgICBtX3JlbmRlcmVyLT5zZXRIYXNBWE9iamVjdCh0cnVlKTsKKyAg
ICBtX3JlbmRlcmVyLnNldEhhc0FYT2JqZWN0KHRydWUpOwogI2VuZGlmCiB9CiAKQEAgLTE0Nyw3
ICsxNDcsNyBAQCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp+QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdCgpCiAgICAgQVNTRVJUKGlzRGV0YWNoZWQoKSk7CiB9CiAKLVJlZjxBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0PiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjcmVhdGUoUmVuZGVy
T2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpjcmVhdGUoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KHJlbmRlcmVy
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IGM4ZTllZmM1NGZiYy4uNDZmOTQ2ODc2ZjVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuaApAQCAtNTQsNyArNTQsNyBAQCBjbGFzcyBWaXNpYmxlU2VsZWN0aW9u
OwogCiBjbGFzcyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IDogcHVibGljIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QmKTsKICAgICB2aXJ0dWFsIH5B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCk7CiAgICAgCiAgICAgRmxvYXRSZWN0IGZyYW1lUmVj
dCgpIGNvbnN0IGZpbmFsOwpAQCAtMTM5LDcgKzEzOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxh
YmVsVGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JikgY29uc3Qgb3ZlcnJpZGU7CiAKIHBy
b3RlY3RlZDoKLSAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KFJlbmRlck9i
amVjdCopOworICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoUmVuZGVyT2Jq
ZWN0Jik7CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChOb2RlJik7CiAg
ICAgdm9pZCBkZXRhY2hSZW1vdGVQYXJ0cyhBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUpIG92
ZXJyaWRlOwogICAgIFNjcm9sbGFibGVBcmVhKiBnZXRTY3JvbGxhYmxlQXJlYUlmU2Nyb2xsYWJs
ZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmNwcAppbmRleCAxMmY2ODg2Y2Q5YWYuLjNi
ZGU3YzJiODMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHAKQEAgLTQ0LDE3ICs0NCwxNiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLUFjY2Vzc2liaWxpdHlTVkdFbGVtZW50OjpBY2Nlc3NpYmlsaXR5
U1ZHRWxlbWVudChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE9iamVjdENhY2hlKiBjYWNoZSkK
K0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50OjpBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudChSZW5kZXJP
YmplY3QmIHJlbmRlcmVyLCBBWE9iamVjdENhY2hlKiBjYWNoZSkKICAgICA6IEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCiAgICAgLCBtX2F4T2JqZWN0Q2FjaGUoY2FjaGUpCiB7
Ci0gICAgQVNTRVJUKHJlbmRlcmVyKTsKICAgICBBU1NFUlQoY2FjaGUpOwogfQogCiBBY2Nlc3Np
YmlsaXR5U1ZHRWxlbWVudDo6fkFjY2Vzc2liaWxpdHlTVkdFbGVtZW50KCkgPSBkZWZhdWx0Owog
Ci1SZWY8QWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQ+IEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50Ojpj
cmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhPYmplY3RDYWNoZSogY2FjaGUpCitSZWY8
QWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQ+IEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50OjpjcmVhdGUo
UmVuZGVyT2JqZWN0JiByZW5kZXJlciwgQVhPYmplY3RDYWNoZSogY2FjaGUpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQocmVuZGVyZXIsIGNhY2hl
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTVkdFbGVtZW50LmgKaW5kZXggNjVhZDc3MDVhMTIzLi4yMTJlYTQ4ZDEyMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdF
bGVtZW50LmgKQEAgLTMzLDExICszMywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50IDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQ+IGNy
ZWF0ZShSZW5kZXJPYmplY3QqLCBBWE9iamVjdENhY2hlKik7CisgICAgc3RhdGljIFJlZjxBY2Nl
c3NpYmlsaXR5U1ZHRWxlbWVudD4gY3JlYXRlKFJlbmRlck9iamVjdCYsIEFYT2JqZWN0Q2FjaGUq
KTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudCgpOwogCiBwcm90ZWN0ZWQ6
Ci0gICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQoUmVuZGVyT2JqZWN0KiwgQVhP
YmplY3RDYWNoZSopOworICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50KFJlbmRl
ck9iamVjdCYsIEFYT2JqZWN0Q2FjaGUqKTsKICAgICBBWE9iamVjdENhY2hlKiBheE9iamVjdENh
Y2hlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9heE9iamVjdENhY2hlLmdldCgpOyB9CiAg
ICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25zdCBm
aW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTVkdSb290LmNwcAppbmRleCBhODlkYTVkMjk1ZDQuLmE3OWUzNWI4ZjQwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9v
dC5jcHAKQEAgLTM5LDE0ICszOSwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFjY2Vz
c2liaWxpdHlTVkdSb290OjpBY2Nlc3NpYmlsaXR5U1ZHUm9vdChSZW5kZXJPYmplY3QqIHJlbmRl
cmVyLCBBWE9iamVjdENhY2hlKiBjYWNoZSkKK0FjY2Vzc2liaWxpdHlTVkdSb290OjpBY2Nlc3Np
YmlsaXR5U1ZHUm9vdChSZW5kZXJPYmplY3QmIHJlbmRlcmVyLCBBWE9iamVjdENhY2hlKiBjYWNo
ZSkKICAgICA6IEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50KHJlbmRlcmVyLCBjYWNoZSkKIHsKIH0K
IAogQWNjZXNzaWJpbGl0eVNWR1Jvb3Q6On5BY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpID0gZGVmYXVs
dDsKIAotUmVmPEFjY2Vzc2liaWxpdHlTVkdSb290PiBBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6Y3Jl
YXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQorUmVmPEFj
Y2Vzc2liaWxpdHlTVkdSb290PiBBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6Y3JlYXRlKFJlbmRlck9i
amVjdCYgcmVuZGVyZXIsIEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogewogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEFjY2Vzc2liaWxpdHlTVkdSb290KHJlbmRlcmVyLCBjYWNoZSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9v
dC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5o
CmluZGV4IDY2MGQ4N2E1ZmI2NS4uZDhiNWUwOTE4MWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5oCkBAIC0zNSwxMyArMzUs
MTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBY2Nlc3NpYmlsaXR5U1ZHUm9vdCBm
aW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxBY2Nlc3NpYmlsaXR5U1ZHUm9vdD4gY3JlYXRlKFJlbmRlck9iamVjdCosIEFYT2Jq
ZWN0Q2FjaGUqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlTVkdSb290PiBjcmVhdGUo
UmVuZGVyT2JqZWN0JiwgQVhPYmplY3RDYWNoZSopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxp
dHlTVkdSb290KCk7CiAKICAgICB2b2lkIHNldFBhcmVudChBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Kik7CiAgICAgYm9vbCBoYXNBY2Nlc3NpYmxlQ29udGVudCgpIGNvbnN0OwogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5U1ZHUm9vdChSZW5kZXJPYmplY3QqLCBBWE9iamVj
dENhY2hlKik7CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNWR1Jvb3QoUmVuZGVyT2JqZWN0
JiwgQVhPYmplY3RDYWNoZSopOwogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2Jq
ZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdSb290KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKaW5kZXggMTEzOTcwNDZiMzI0
Li5hZTY5ZGE3MTRmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcApAQCAtNDIsMTIgKzQyLDEyIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUFjY2Vzc2liaWxp
dHlTbGlkZXI6OkFjY2Vzc2liaWxpdHlTbGlkZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK0Fj
Y2Vzc2liaWxpdHlTbGlkZXI6OkFjY2Vzc2liaWxpdHlTbGlkZXIoUmVuZGVyT2JqZWN0JiByZW5k
ZXJlcikKICAgICA6IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCiB7CiB9CiAK
LVJlZjxBY2Nlc3NpYmlsaXR5U2xpZGVyPiBBY2Nlc3NpYmlsaXR5U2xpZGVyOjpjcmVhdGUoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5U2xpZGVyPiBBY2Nlc3NpYmls
aXR5U2xpZGVyOjpjcmVhdGUoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKIHsKICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5U2xpZGVyKHJlbmRlcmVyKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5oCmluZGV4
IGFhMWFjZTRmN2JjNi4uMmE2Y2YzYzQwZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaApAQCAtMzcsMTMgKzM3LDEyIEBAIGNs
YXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlTbGlkZXIgOiBwdWJs
aWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxB
Y2Nlc3NpYmlsaXR5U2xpZGVyPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJl
ZjxBY2Nlc3NpYmlsaXR5U2xpZGVyPiBjcmVhdGUoUmVuZGVyT2JqZWN0Jik7CiAgICAgdmlydHVh
bCB+QWNjZXNzaWJpbGl0eVNsaWRlcigpID0gZGVmYXVsdDsKIAotcHJvdGVjdGVkOgotICAgIGV4
cGxpY2l0IEFjY2Vzc2liaWxpdHlTbGlkZXIoUmVuZGVyT2JqZWN0Kik7Ci0KIHByaXZhdGU6Cisg
ICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNsaWRlcihSZW5kZXJPYmplY3QmKTsKKwogICAgIEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCgpIGNvbnN0OwogICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIGVsZW1lbnRBY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0
IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZS5jcHAKaW5kZXggNzM1YTk4NDI4NmY0Li4wYjIxYzUyN2JjZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAK
QEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCi1BY2Nlc3NpYmlsaXR5VGFibGU6OkFjY2Vzc2liaWxpdHlUYWJsZShSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKQorQWNjZXNzaWJpbGl0eVRhYmxlOjpBY2Nlc3NpYmlsaXR5VGFi
bGUoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKICAgICA6IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QocmVuZGVyZXIpCiAgICAgLCBtX2hlYWRlckNvbnRhaW5lcihudWxscHRyKQogICAgICwgbV9p
c0V4cG9zYWJsZSh0cnVlKQpAQCAtNzYsNyArNzYsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlUYWJs
ZTo6aW5pdCgpCiAgICAgbV9pc0V4cG9zYWJsZSA9IGNvbXB1dGVJc1RhYmxlRXhwb3NhYmxlVGhy
b3VnaEFjY2Vzc2liaWxpdHkoKTsKIH0KIAotUmVmPEFjY2Vzc2liaWxpdHlUYWJsZT4gQWNjZXNz
aWJpbGl0eVRhYmxlOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3Np
YmlsaXR5VGFibGU+IEFjY2Vzc2liaWxpdHlUYWJsZTo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVu
ZGVyZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVRhYmxlKHJl
bmRlcmVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlUYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGUuaAppbmRleCA2MmI2ZTUwYWI1ZmQuLjAxZGU0MTE0YmE0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCkBAIC0z
OCw3ICszOCw3IEBAIGNsYXNzIEhUTUxUYWJsZUVsZW1lbnQ7CiAKIGNsYXNzIEFjY2Vzc2liaWxp
dHlUYWJsZSA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlUYWJsZT4gY3JlYXRlKFJlbmRlck9iamVjdCopOwor
ICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVRhYmxlPiBjcmVhdGUoUmVuZGVyT2JqZWN0Jik7
CiAgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5VGFibGU+IGNyZWF0ZShOb2RlJik7CiAgICAg
dmlydHVhbCB+QWNjZXNzaWJpbGl0eVRhYmxlKCk7CiAKQEAgLTg5LDcgKzg5LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0Q2VsbFNsb3RzRGlydHkoKTsKIAogcHJvdGVjdGVkOgotICAgIGV4cGxp
Y2l0IEFjY2Vzc2liaWxpdHlUYWJsZShSZW5kZXJPYmplY3QqKTsKKyAgICBleHBsaWNpdCBBY2Nl
c3NpYmlsaXR5VGFibGUoUmVuZGVyT2JqZWN0Jik7CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0
eVRhYmxlKE5vZGUmKTsKIAogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBtX3Jvd3M7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVDZWxsLmNwcAppbmRleCA0ODEzMWMzZjk3OGUuLjY4MTAxYmY4NzZkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNl
bGwuY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIAotQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6QWNjZXNzaWJpbGl0
eVRhYmxlQ2VsbChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorQWNjZXNzaWJpbGl0eVRhYmxlQ2Vs
bDo6QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbChSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIDog
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChyZW5kZXJlcikKIHsKIH0KQEAgLTUyLDcgKzUyLDcg
QEAgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbChOb2RlJiBu
b2RlKQogCiBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjp+QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbCgp
ID0gZGVmYXVsdDsKIAotUmVmPEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw+IEFjY2Vzc2liaWxpdHlU
YWJsZUNlbGw6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxp
dHlUYWJsZUNlbGw+IEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNyZWF0ZShSZW5kZXJPYmplY3Qm
IHJlbmRlcmVyKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlUYWJs
ZUNlbGwocmVuZGVyZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmgKaW5kZXggMWM2MmJmOTNlNzEwLi5mYzg2OWEz
ODZlYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlQ2VsbC5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIEFjY2Vzc2liaWxpdHlU
YWJsZVJvdzsKIAogY2xhc3MgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbCA6IHB1YmxpYyBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxp
dHlUYWJsZUNlbGw+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vz
c2liaWxpdHlUYWJsZUNlbGw+IGNyZWF0ZShSZW5kZXJPYmplY3QmKTsKICAgICBzdGF0aWMgUmVm
PEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw+IGNyZWF0ZShOb2RlJik7CiAgICAgdmlydHVhbCB+QWNj
ZXNzaWJpbGl0eVRhYmxlQ2VsbCgpOwogICAgIGJvb2wgaXNUYWJsZUNlbGwoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBw
cm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbChSZW5kZXJPYmpl
Y3QqKTsKKyAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsKFJlbmRlck9iamVjdCYp
OwogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlUYWJsZUNlbGwoTm9kZSYpOwogCiAgICAgQWNj
ZXNzaWJpbGl0eVRhYmxlUm93KiBwYXJlbnRSb3coKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcAppbmRleCBk
NDI2MWVmMWYxN2YuLjA4YzExNmExNjU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcApAQCAtMzgsNyArMzgsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUFj
Y2Vzc2liaWxpdHlUYWJsZVJvdzo6QWNjZXNzaWJpbGl0eVRhYmxlUm93KFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCitBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OkFjY2Vzc2liaWxpdHlUYWJsZVJvdyhS
ZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChy
ZW5kZXJlcikKIHsKIH0KQEAgLTUwLDcgKzUwLDcgQEAgQWNjZXNzaWJpbGl0eVRhYmxlUm93OjpB
Y2Nlc3NpYmlsaXR5VGFibGVSb3coTm9kZSYgbm9kZSkKIAogQWNjZXNzaWJpbGl0eVRhYmxlUm93
Ojp+QWNjZXNzaWJpbGl0eVRhYmxlUm93KCkgPSBkZWZhdWx0OwogCi1SZWY8QWNjZXNzaWJpbGl0
eVRhYmxlUm93PiBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlUYWJsZVJvdz4gQWNjZXNzaWJpbGl0eVRhYmxlUm93
OjpjcmVhdGUoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBBY2Nlc3NpYmlsaXR5VGFibGVSb3cocmVuZGVyZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oCmluZGV4IDA2
ZDZlODcyYzQ5MC4uN2JmYTdjMWUyOTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xh
c3MgQWNjZXNzaWJpbGl0eVRhYmxlOwogCiBjbGFzcyBBY2Nlc3NpYmlsaXR5VGFibGVSb3cgOiBw
dWJsaWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxBY2Nlc3NpYmlsaXR5VGFibGVSb3c+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlUYWJsZVJvdz4gY3JlYXRlKFJlbmRlck9iamVjdCYpOwogICAg
IHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVRhYmxlUm93PiBjcmVhdGUoTm9kZSYpOwogICAgIHZp
cnR1YWwgfkFjY2Vzc2liaWxpdHlUYWJsZVJvdygpOwogCkBAIC01Nyw3ICs1Nyw3IEBAIHB1Ymxp
YzoKICAgICBpbnQgYXhSb3dJbmRleCgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVRhYmxlUm93KFJlbmRlck9iamVjdCopOworICAgIGV4
cGxpY2l0IEFjY2Vzc2liaWxpdHlUYWJsZVJvdyhSZW5kZXJPYmplY3QmKTsKICAgICBleHBsaWNp
dCBBY2Nlc3NpYmlsaXR5VGFibGVSb3coTm9kZSYpOwogCiAgICAgQWNjZXNzaWJpbGl0eVJvbGUg
ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKaW5kZXggYWY2MWJkYzUyOTlh
Li5kNTAwZGZjMDE1NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRyZWUuY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKICAgICAKLUFjY2Vzc2liaWxpdHlUcmVl
OjpBY2Nlc3NpYmlsaXR5VHJlZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorQWNjZXNzaWJpbGl0
eVRyZWU6OkFjY2Vzc2liaWxpdHlUcmVlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiAgICAgOiBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KHJlbmRlcmVyKQogewogfQpAQCAtNTIsNyArNTIsNyBA
QCBBY2Nlc3NpYmlsaXR5VHJlZTo6QWNjZXNzaWJpbGl0eVRyZWUoTm9kZSYgbm9kZSkKIAogQWNj
ZXNzaWJpbGl0eVRyZWU6On5BY2Nlc3NpYmlsaXR5VHJlZSgpID0gZGVmYXVsdDsKICAgICAKLVJl
ZjxBY2Nlc3NpYmlsaXR5VHJlZT4gQWNjZXNzaWJpbGl0eVRyZWU6OmNyZWF0ZShSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlUcmVlPiBBY2Nlc3NpYmlsaXR5VHJlZTo6
Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQWNjZXNzaWJpbGl0eVRyZWUocmVuZGVyZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuaAppbmRleCBmNjQzMDc2NDhhNGYuLjcx
ZjY2MzRlYjYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRyZWUuaApAQCAtMzUsMTIgKzM1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAKIGNsYXNzIEFjY2Vzc2liaWxpdHlUcmVlIGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVRyZWU+
IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlUcmVl
PiBjcmVhdGUoUmVuZGVyT2JqZWN0Jik7CiAgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5VHJl
ZT4gY3JlYXRlKE5vZGUmKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5VHJlZSgpOwogCiBw
cml2YXRlOgotICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlUcmVlKFJlbmRlck9iamVjdCopOwor
ICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlUcmVlKFJlbmRlck9iamVjdCYpOwogICAgIGV4cGxp
Y2l0IEFjY2Vzc2liaWxpdHlUcmVlKE5vZGUmKTsKICAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0
ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNwcAppbmRleCBkMTk2
Y2NhYjE3YjcuLmFjMWNiYTJjYTJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNwcApAQCAtMzYsNyArMzYsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogICAg
IAotQWNjZXNzaWJpbGl0eVRyZWVJdGVtOjpBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0oUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlUcmVlSXRlbTo6QWNjZXNzaWJpbGl0eVRyZWVJ
dGVtKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiAgICAgOiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0KHJlbmRlcmVyKQogewogfQpAQCAtNDgsNyArNDgsNyBAQCBBY2Nlc3NpYmlsaXR5VHJlZUl0
ZW06OkFjY2Vzc2liaWxpdHlUcmVlSXRlbShOb2RlJiBub2RlKQogCiBBY2Nlc3NpYmlsaXR5VHJl
ZUl0ZW06On5BY2Nlc3NpYmlsaXR5VHJlZUl0ZW0oKSA9IGRlZmF1bHQ7CiAgICAgCi1SZWY8QWNj
ZXNzaWJpbGl0eVRyZWVJdGVtPiBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OmNyZWF0ZShSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlUcmVlSXRlbT4gQWNjZXNzaWJpbGl0
eVRyZWVJdGVtOjpjcmVhdGUoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKIHsKICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0ocmVuZGVyZXIpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWVJdGVt
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlSXRlbS5o
CmluZGV4IDA4NGUyZjFjZjZjZi4uZDQwMmE4MzZjOGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlSXRlbS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmgKQEAgLTM0LDE0ICsz
NCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBBY2Nlc3NpYmlsaXR5VHJl
ZUl0ZW0gZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0+IGNyZWF0ZShSZW5kZXJPYmpl
Y3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlUcmVlSXRlbT4gY3JlYXRlKFJlbmRl
ck9iamVjdCYpOwogICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVRyZWVJdGVtPiBjcmVhdGUo
Tm9kZSYpOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlUcmVlSXRlbSgpOwogCiAgICAgYm9v
bCBzdXBwb3J0c0NoZWNrZWRTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAg
IGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlUcmVlSXRlbShSZW5kZXJPYmplY3QqKTsKKyAgICBleHBs
aWNpdCBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0oUmVuZGVyT2JqZWN0Jik7CiAgICAgZXhwbGljaXQg
QWNjZXNzaWJpbGl0eVRyZWVJdGVtKE5vZGUmKTsKICAgICBib29sIHNob3VsZElnbm9yZUF0dHJp
YnV0ZVJvbGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAhbV9pc1RyZWVJdGVtVmFsaWQ7IH0KICAg
ICBBY2Nlc3NpYmlsaXR5Um9sZSBkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpIG92ZXJyaWRl
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470738</attachid>
            <date>2024-04-02 20:53:54 -0700</date>
            <delta_ts>2024-04-04 23:16:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-272063-20240402205353.patch</filename>
            <type>text/plain</type>
            <size>66234</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBlYjk4MWU0MTg4MjExYmU3NDhmZDE0YTExY2YxNmVkN2UxY2RlNGU5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogVHVlLCAyIEFwciAyMDI0IDE3OjE5OjU0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQVg6IGNy
ZWF0ZU9iamVjdEZyb21SZW5kZXJlciBhbmQgYWNjZXNzaWJsZU5hbWVGb3JOb2RlIGNhbgogdGFr
ZSB0aGVpciBhcmd1bWVudHMgYnkgcmVmZXJlbmNlIHJhdGhlciB0aGFuIHBvaW50ZXIKIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzIwNjMgcmRhcjovL3Byb2JsZW0v
MTI1ODEzMjc3CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkRvaW5nIHRoaXMgc2F2ZXMg
bnVsbCBjaGVja3Mgb24gaG90IGNvZGVwYXRocyBhbmQgbWFrZXMgaW50ZW50IG1vcmUgY2xlYXIs
IGFzIHRoZXNlIGZ1bmN0aW9ucyBvciBvbmVzIGRvd25zdHJlYW0KZnJvbSB0aGVtIHdvdWxkIGVp
dGhlciBBU1NFUlQgbm9uLW51bGwsIG9yIGRpcmVjdGx5IGRlcmVmZXJlbmNlIHRoZSBwb2ludGVy
IHdpdGhvdXQgbnVsbCBjaGVja2luZy4KCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WEltYWdlLmNwcDoKKFdlYkNvcmU6OkFYSW1hZ2U6OkFYSW1hZ2UpOgooV2ViQ29yZTo6QVhJbWFn
ZTo6Y3JlYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuaDoKKiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6
dG9TaW1wbGVJbWFnZSk6CihXZWJDb3JlOjppc0FjY2Vzc2liaWxpdHlMaXN0KToKKFdlYkNvcmU6
OmlzQWNjZXNzaWJpbGl0eVRyZWUpOgooV2ViQ29yZTo6aXNBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0p
OgooV2ViQ29yZTo6aXNBY2Nlc3NpYmlsaXR5QVJJQVRhYmxlKToKKFdlYkNvcmU6OmlzQWNjZXNz
aWJpbGl0eUFSSUFHcmlkUm93KToKKFdlYkNvcmU6OmlzQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2Vs
bCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpjcmVhdGVPYmplY3RGcm9tUmVuZGVyZXIpOgoo
V2ViQ29yZTo6Y3JlYXRlRnJvbU5vZGUpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Z2V0T3JD
cmVhdGUpOgooV2ViQ29yZTo6aXNTaW1wbGVJbWFnZSk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlBUklBR3JpZENlbGw6OkFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwpOgooV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6Y3JlYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaDoKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHA6CihXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5QVJJQUdyaWRSb3c6OkFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdyk6CihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OmNyZWF0ZSk6CiogU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaDoKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBVGFibGUuY3BwOgooV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eUFSSUFUYWJsZTo6QWNjZXNzaWJpbGl0eUFSSUFUYWJsZSk6CihXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5QVJJQVRhYmxlOjpjcmVhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUFSSUFUYWJsZS5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUF0
dGFjaG1lbnQ6OkFjY2Vzc2liaWxpdHlBdHRhY2htZW50KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlBdHRhY2htZW50OjpjcmVhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUF0dGFjaG1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlMYWJlbC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFiZWw6OkFjY2Vz
c2liaWxpdHlMYWJlbCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFiZWw6OmNyZWF0ZSk6Ciog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcDoKKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlMaXN0OjpBY2Nlc3NpYmlsaXR5TGlzdCk6CihXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5TGlzdDo6Y3JlYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlMaXN0Lmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TGlzdEJveC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdEJveDo6QWNjZXNzaWJp
bGl0eUxpc3RCb3gpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3g6OmNyZWF0ZSk6Ciog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5oOgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQuY3Bw
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQ6OkFjY2Vzc2liaWxpdHlNYXRo
TUxFbGVtZW50KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50OjpjcmVhdGUp
OgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1l
bnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9i
amVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OkFjY2Vzc2liaWxp
dHlNZWRpYU9iamVjdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OmNyZWF0
ZSk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6Om1lZGlhU2Vlayk6CihXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OmluY3JlbWVudCk6CihXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5TWVkaWFPYmplY3Q6OmRlY3JlbWVudCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5TWVudUxpc3Q6OkFjY2Vzc2liaWxpdHlNZW51TGlzdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5TWVudUxpc3Q6OmNyZWF0ZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TWVudUxpc3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojp0ZXh0QXNMYWJlbEZvciBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6dGV4dEZvckxhYmVsRWxlbWVudHMgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmFsdGVybmF0aXZlVGV4dCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCBjb25zdCk6CihXZWJDb3JlOjphY2Nlc3NpYmxl
TmFtZUZvck5vZGUpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2li
aWxpdHlEZXNjcmlwdGlvbkZvckNoaWxkcmVuIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjpkZXNjcmlwdGlvbkZvckVsZW1lbnRzIGNvbnN0KToKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHA6CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OkFjY2Vzc2liaWxpdHlQcm9n
cmVzc0luZGljYXRvcik6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6
OmNyZWF0ZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJv
Z3Jlc3NJbmRpY2F0b3IuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpjcmVhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNWR0VsZW1l
bnQ6OkFjY2Vzc2liaWxpdHlTVkdFbGVtZW50KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTVkdF
bGVtZW50OjpjcmVhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNWR0VsZW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTVkdSb290LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTVkdSb290OjpBY2Nlc3Np
YmlsaXR5U1ZHUm9vdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6Y3JlYXRlKToK
KiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290Lmg6Ciog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcDoKKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlTbGlkZXI6OkFjY2Vzc2liaWxpdHlTbGlkZXIpOgooV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVNsaWRlcjo6Y3JlYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGU6
OkFjY2Vzc2liaWxpdHlUYWJsZSk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGU6OmNyZWF0
ZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaDoK
KiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3Bw
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6QWNjZXNzaWJpbGl0eVRhYmxlQ2Vs
bCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjcmVhdGUpOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5oOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcDoKKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6QWNjZXNzaWJpbGl0eVRhYmxlUm93KToKKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6Y3JlYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRyZWU6
OkFjY2Vzc2liaWxpdHlUcmVlKToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUcmVlOjpjcmVhdGUp
OgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuaDoKKiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlSXRlbS5jcHA6CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OkFjY2Vzc2liaWxpdHlUcmVlSXRlbSk6CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OmNyZWF0ZSk6CiogU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZUl0ZW0uaDoKLS0tCiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oICAgICAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgIHwgMTE0ICsrKysrKysrKy0tLS0tLS0tLQog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggIHwgICAyICstCiAu
Li4vQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgICAgICAgICAgICAgfCAgIDQgKy0KIC4u
Li9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaCB8ICAgNCArLQogLi4u
L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAgICAgICAgICAgICAgIHwgICA0ICstCiAuLi4v
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaCAgfCAgIDQgKy0KIC4uLi9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBVGFibGUuY3BwICB8ICAgNCArLQogLi4uL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFUYWJsZS5oICAgIHwgICA0ICstCiAuLi4vYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5jcHAgfCAgIDQgKy0KIC4uLi9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmggICB8ICAgNSArLQogLi4uL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmNwcCAgICAgIHwgICA0ICstCiAuLi4vYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaCAgICAgICAgfCAgIDQgKy0KIC4uLi9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcCAgICAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oIHwgICA0ICstCiAuLi4vYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAgICAgfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmggICAgICB8ICAgNCArLQogLi4uL0FjY2Vzc2liaWxp
dHlNYXRoTUxFbGVtZW50LmNwcCAgICAgICAgICAgIHwgICA0ICstCiAuLi4vQWNjZXNzaWJpbGl0
eU1hdGhNTEVsZW1lbnQuaCAgICAgICAgICAgICAgfCAgIDQgKy0KIC4uLi9BY2Nlc3NpYmlsaXR5
TWVkaWFPYmplY3QuY3BwICAgICAgICAgICAgICB8ICAxMCArLQogLi4uL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0LmggIHwgICA2ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwICAgfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNZW51TGlzdC5oICAgICB8ICAgNCArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIHwgIDMzICsrKy0tCiAuLi4vQWNjZXNzaWJpbGl0eVBy
b2dyZXNzSW5kaWNhdG9yLmNwcCAgICAgICAgfCAgIDYgKy0KIC4uLi9BY2Nlc3NpYmlsaXR5UHJv
Z3Jlc3NJbmRpY2F0b3IuaCAgICAgICAgICB8ICAgNCArLQogLi4uL0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuY3BwICAgICAgICAgICAgIHwgICA4ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTVkdFbGVtZW50LmNwcCB8ICAgNSArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNWR0VsZW1lbnQuaCAgIHwgICA0ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U1ZHUm9vdC5jcHAgICAgfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTVkdSb290LmggICAgICB8ICAgNCArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNsaWRlci5jcHAgICAgIHwgICA0ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U2xpZGVyLmggICAgICAgfCAgIDcgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZS5jcHAgICAgICB8ICAgNCArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlLmggICAgICAgIHwgICA0ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVDZWxsLmNwcCAgfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZUNlbGwuaCAgICB8ICAgNCArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlUm93LmNwcCAgIHwgICA0ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGVSb3cuaCAgICAgfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVl
LmNwcCAgICAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VHJlZS5oIHwgICA0ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZUl0
ZW0uY3BwICAgfCAgIDQgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlSXRl
bS5oICAgICB8ICAgNCArLQogNDUgZmlsZXMgY2hhbmdlZCwgMTY1IGluc2VydGlvbnMoKyksIDE3
MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcApp
bmRleCA3N2Y3Yzc5YmUwYWYuLjY2ZGZiNWQ4MjU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYSW1hZ2UuY3BwCkBAIC0zNywxMiArMzcsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1BWEltYWdlOjpBWEltYWdlKFJlbmRlckltYWdlKiByZW5kZXJlcikKK0FYSW1hZ2U6
OkFYSW1hZ2UoUmVuZGVySW1hZ2UmIHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdChyZW5kZXJlcikKIHsKIH0KIAotUmVmPEFYSW1hZ2U+IEFYSW1hZ2U6OmNyZWF0ZShS
ZW5kZXJJbWFnZSogcmVuZGVyZXIpCitSZWY8QVhJbWFnZT4gQVhJbWFnZTo6Y3JlYXRlKFJlbmRl
ckltYWdlJiByZW5kZXJlcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBWEltYWdlKHJl
bmRlcmVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5oCmluZGV4IDJm
OGVmMDFlNTM3MS4uYjZlMWEwY2Q1NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuaApAQCAtMzUsMTEgKzM1LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
QVhJbWFnZSA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPEFYSW1hZ2U+IGNyZWF0ZShSZW5kZXJJbWFnZSopOworICAgIHN0YXRpYyBS
ZWY8QVhJbWFnZT4gY3JlYXRlKFJlbmRlckltYWdlJik7CiAgICAgdmlydHVhbCB+QVhJbWFnZSgp
ID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBBWEltYWdlKFJlbmRlckltYWdl
Kik7CisgICAgZXhwbGljaXQgQVhJbWFnZShSZW5kZXJJbWFnZSYpOwogCiAgICAgQWNjZXNzaWJp
bGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKSBmaW5hbDsKICAgICBzdGQ6Om9w
dGlvbmFsPEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcj4gaW1hZ2VPdmVybGF5RWxlbWVudHMo
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCmluZGV4IGJkODFmZmNiYzlmYi4uNDliYTNlNTNmMGIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTYzOCw0OSArNjM4LDQ5
IEBAIGJvb2wgbm9kZUhhc0NlbGxSb2xlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIG5vZGUgJiYg
KG5vZGVIYXNSb2xlKG5vZGUsICJncmlkY2VsbCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNl
bGwiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1bW5oZWFkZXIiX3MpIHx8IG5vZGVIYXNS
b2xlKG5vZGUsICJyb3doZWFkZXIiX3MpKTsKIH0KIAotc3RhdGljIGJvb2wgaXNTaW1wbGVJbWFn
ZShjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQorc3RhdGljIFJlbmRlckltYWdlKiB0b1Np
bXBsZUltYWdlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgQ2hlY2tlZFB0ciByZW5k
ZXJJbWFnZSA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpOwogICAgIGlm
ICghcmVuZGVySW1hZ2UpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICAvLyBFeGNsdWRlIEltYWdlQnV0dG9ucyBiZWNhdXNlIHRoZXkgYXJlIHRy
ZWF0ZWQgYXMgYnV0dG9ucywgbm90IGFzIGltYWdlcy4KICAgICBSZWZQdHIgbm9kZSA9IHJlbmRl
cmVyLm5vZGUoKTsKICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4obm9kZSkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBJbWFnZU1h
cHMgYXJlIG5vdCBzaW1wbGUgaW1hZ2VzLgogICAgIGlmIChyZW5kZXJJbWFnZS0+aW1hZ2VNYXAo
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IGlmIChSZWZQdHIgaW1nRWxlbWVudCA9IGR5bmFtaWNEb3duY2FzdDxIVE1MSW1hZ2VFbGVtZW50
Pihub2RlKTsgaW1nRWxlbWVudCAmJiBpbWdFbGVtZW50LT5oYXNBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKHVzZW1hcEF0dHIpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIC8vIEV4Y2x1ZGUgdmlk
ZW8gYW5kIGF1ZGlvIGVsZW1lbnRzLgogICAgIGlmIChpczxIVE1MTWVkaWFFbGVtZW50Pihub2Rl
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRp
ZiAvLyBFTkFCTEUoVklERU8pCiAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcmVuZGVy
SW1hZ2UuZ2V0KCk7CiB9CiAKLXN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eUxpc3QoTm9kZSog
bm9kZSkKK3N0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eUxpc3QoTm9kZSYgbm9kZSkKIHsKICAg
ICAvLyBJZiB0aGUgbm9kZSBpcyBhcmlhIHJvbGU9Imxpc3QiIG9yIHRoZSBhcmlhIHJvbGUgaXMg
ZW1wdHkgYW5kIGl0J3MgYQogICAgIC8vIHVsL29sL2RsIHR5cGUgKGl0IHNob3VsZG4ndCBiZSBh
IGxpc3QgaWYgYXJpYSBzYXlzIG90aGVyd2lzZSkuCi0gICAgcmV0dXJuIChub2RlICYmICgobm9k
ZUhhc1JvbGUobm9kZSwgImxpc3QiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJkaXJlY3Rvcnki
X3MpKQotICAgICAgICB8fCAobm9kZUhhc1JvbGUobm9kZSwgbnVsbEF0b20oKSkgJiYgKG5vZGUt
Pmhhc1RhZ05hbWUodWxUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUob2xUYWcpIHx8IG5vZGUtPmhh
c1RhZ05hbWUoZGxUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUobWVudVRhZykpKSkpOworICAgIHJl
dHVybiAoKG5vZGVIYXNSb2xlKCZub2RlLCAibGlzdCJfcykgfHwgbm9kZUhhc1JvbGUoJm5vZGUs
ICJkaXJlY3RvcnkiX3MpKQorICAgICAgICB8fCAobm9kZUhhc1JvbGUoJm5vZGUsIG51bGxBdG9t
KCkpICYmIChub2RlLmhhc1RhZ05hbWUodWxUYWcpIHx8IG5vZGUuaGFzVGFnTmFtZShvbFRhZykg
fHwgbm9kZS5oYXNUYWdOYW1lKGRsVGFnKSB8fCBub2RlLmhhc1RhZ05hbWUobWVudVRhZykpKSk7
CiB9CiAKLXN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eVRyZWUoTm9kZSogbm9kZSkKK3N0YXRp
YyBib29sIGlzQWNjZXNzaWJpbGl0eVRyZWUoTm9kZSYgbm9kZSkKIHsKLSAgICByZXR1cm4gbm9k
ZUhhc1JvbGUobm9kZSwgInRyZWUiX3MpOworICAgIHJldHVybiBub2RlSGFzUm9sZSgmbm9kZSwg
InRyZWUiX3MpOwogfQogCi1zdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlUcmVlSXRlbShOb2Rl
KiBub2RlKQorc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0oTm9kZSYgbm9kZSkK
IHsKLSAgICByZXR1cm4gbm9kZUhhc1JvbGUobm9kZSwgInRyZWVpdGVtIl9zKTsKKyAgICByZXR1
cm4gbm9kZUhhc1JvbGUoJm5vZGUsICJ0cmVlaXRlbSJfcyk7CiB9CiAKIHN0YXRpYyBib29sIGlz
QWNjZXNzaWJpbGl0eVRhYmxlKE5vZGUqIG5vZGUpCkBAIC02OTgsNjUgKzY5OCw2MyBAQCBzdGF0
aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwoTm9kZSogbm9kZSkKICAgICByZXR1cm4g
aXM8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+KG5vZGUpOwogfQogCi1zdGF0aWMgYm9vbCBpc0FjY2Vz
c2liaWxpdHlBUklBVGFibGUoTm9kZSogbm9kZSkKK3N0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0
eUFSSUFUYWJsZShOb2RlJiBub2RlKQogewotICAgIHJldHVybiBub2RlSGFzVGFibGVSb2xlKG5v
ZGUpOworICAgIHJldHVybiBub2RlSGFzVGFibGVSb2xlKCZub2RlKTsKIH0KIAotc3RhdGljIGJv
b2wgaXNBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3coTm9kZSogbm9kZSkKK3N0YXRpYyBib29sIGlz
QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93KE5vZGUmIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGVI
YXNSb2xlKG5vZGUsICJyb3ciX3MpOworICAgIHJldHVybiBub2RlSGFzUm9sZSgmbm9kZSwgInJv
dyJfcyk7CiB9CiAKLXN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbChOb2Rl
KiBub2RlKQorc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsKE5vZGUmIG5v
ZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGVIYXNDZWxsUm9sZShub2RlKTsKKyAgICByZXR1cm4gbm9k
ZUhhc0NlbGxSb2xlKCZub2RlKTsKIH0KIAotLy8gRklYTUU6IFRoaXMgY2FuIHRha2UgYSByZWZl
cmVuY2UsIGFuZCB0aGVyZWZvcmUgYWxsICo6OmNyZWF0ZSBtZXRob2RzIHdpdGhpbiBjYW4gdG9v
LgotUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZU9iamVjdEZy
b21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlPYmpl
Y3Q+IEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZU9iamVjdEZyb21SZW5kZXJlcihSZW5kZXJPYmplY3Qm
IHJlbmRlcmVyKQogewotICAgIC8vIEZJWE1FOiBIb3cgY291bGQgcmVuZGVyZXItPm5vZGUoKSBl
dmVyIG5vdCBiZSBhbiBFbGVtZW50PwotICAgIE5vZGUqIG5vZGUgPSByZW5kZXJlci0+bm9kZSgp
OwotCi0gICAgaWYgKGlzQWNjZXNzaWJpbGl0eUxpc3Qobm9kZSkpCi0gICAgICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKHJlbmRlcmVyKTsKKyAgICBSZWZQdHIgbm9kZSA9IHJl
bmRlcmVyLm5vZGUoKTsKKyAgICBpZiAobm9kZSkgeworICAgICAgICBpZiAoaXNBY2Nlc3NpYmls
aXR5TGlzdCgqbm9kZSkpCisgICAgICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNy
ZWF0ZShyZW5kZXJlcik7CiAKLSAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5QVJJQVRhYmxlKG5vZGUp
KQotICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUFSSUFUYWJsZTo6Y3JlYXRlKHJlbmRlcmVy
KTsKLSAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cobm9kZSkpCi0gICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgaWYg
KGlzQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbChub2RlKSkKLSAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlBUklBR3JpZENlbGw6OmNyZWF0ZShyZW5kZXJlcik7CisgICAgICAgIGlmIChpc0Fj
Y2Vzc2liaWxpdHlBUklBVGFibGUoKm5vZGUpKQorICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2li
aWxpdHlBUklBVGFibGU6OmNyZWF0ZShyZW5kZXJlcik7CisgICAgICAgIGlmIChpc0FjY2Vzc2li
aWxpdHlBUklBR3JpZFJvdygqbm9kZSkpCisgICAgICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eUFSSUFHcmlkUm93OjpjcmVhdGUocmVuZGVyZXIpOworICAgICAgICBpZiAoaXNBY2Nlc3NpYmls
aXR5QVJJQUdyaWRDZWxsKCpub2RlKSkKKyAgICAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
QVJJQUdyaWRDZWxsOjpjcmVhdGUocmVuZGVyZXIpOwogCi0gICAgLy8gYXJpYSB0cmVlCi0gICAg
aWYgKGlzQWNjZXNzaWJpbGl0eVRyZWUobm9kZSkpCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5VHJlZTo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5VHJlZUl0
ZW0obm9kZSkpCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OmNyZWF0ZShy
ZW5kZXJlcik7CisgICAgICAgIGlmIChpc0FjY2Vzc2liaWxpdHlUcmVlKCpub2RlKSkKKyAgICAg
ICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VHJlZTo6Y3JlYXRlKHJlbmRlcmVyKTsKKyAgICAg
ICAgaWYgKGlzQWNjZXNzaWJpbGl0eVRyZWVJdGVtKCpub2RlKSkKKyAgICAgICAgICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OmNyZWF0ZShyZW5kZXJlcik7CiAKLSAgICBpZiAobm9k
ZSAmJiBpczxIVE1MTGFiZWxFbGVtZW50Pihub2RlKSAmJiBub2RlSGFzUm9sZShub2RlLCBudWxs
QXRvbSgpKSkKLSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlMYWJlbDo6Y3JlYXRlKHJlbmRl
cmVyKTsKKyAgICAgICAgaWYgKGlzPEhUTUxMYWJlbEVsZW1lbnQ+KCpub2RlKSAmJiBub2RlSGFz
Um9sZShub2RlLmdldCgpLCBudWxsQXRvbSgpKSkKKyAgICAgICAgICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5TGFiZWw6OmNyZWF0ZShyZW5kZXJlcik7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIGlmIChpczxIVE1MTWVkaWFFbGVtZW50Pihub2RlKSAmJiBub2RlSGFzUm9sZShub2Rl
LCBudWxsQXRvbSgpKSkKLSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdDo6
Y3JlYXRlKHJlbmRlcmVyKTsKKyAgICAgICAgaWYgKGlzPEhUTUxNZWRpYUVsZW1lbnQ+KCpub2Rl
KSAmJiBub2RlSGFzUm9sZShub2RlLmdldCgpLCBudWxsQXRvbSgpKSkKKyAgICAgICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OmNyZWF0ZShyZW5kZXJlcik7CiAjZW5kaWYK
KyAgICB9CiAKLSAgICBpZiAocmVuZGVyZXItPmlzUmVuZGVyT3JMZWdhY3lSZW5kZXJTVkdSb290
KCkpCisgICAgaWYgKHJlbmRlcmVyLmlzUmVuZGVyT3JMZWdhY3lSZW5kZXJTVkdSb290KCkpCiAg
ICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6Y3JlYXRlKHJlbmRlcmVyLCB0aGlz
KTsKIAogICAgIGlmIChpczxTVkdFbGVtZW50Pihub2RlKSkKICAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlTVkdFbGVtZW50OjpjcmVhdGUocmVuZGVyZXIsIHRoaXMpOwogCi0gICAgaWYgKGlz
U2ltcGxlSW1hZ2UoKnJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuIEFYSW1hZ2U6OmNyZWF0ZShk
b3duY2FzdDxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKTsKKyAgICBpZiAoYXV0byogcmVuZGVySW1h
Z2UgPSB0b1NpbXBsZUltYWdlKHJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuIEFYSW1hZ2U6OmNy
ZWF0ZSgqcmVuZGVySW1hZ2UpOwogCiAjaWYgRU5BQkxFKE1BVEhNTCkKICAgICAvLyBUaGUgbWZl
bmNlZCBlbGVtZW50IGNyZWF0ZXMgYW5vbnltb3VzIFJlbmRlck1hdGhNTE9wZXJhdG9ycyB3aGlj
aCBzaG91bGQgYmUgdHJlYXRlZAogICAgIC8vIGFzIE1hdGhNTCBlbGVtZW50cyBhbmQgYXNzaWdu
ZWQgdGhlIE1hdGhFbGVtZW50Um9sZSBzbyB0aGF0IHBsYXRmb3JtIGxvZ2ljIHJlZ2FyZGluZwog
ICAgIC8vIGluY2x1c2lvbiBhbmQgcm9sZSBtYXBwaW5nIGlzIG5vdCBieXBhc3NlZC4KLSAgICBi
b29sIGlzQW5vbnltb3VzT3BlcmF0b3IgPSByZW5kZXJlci0+aXNBbm9ueW1vdXMoKSAmJiBpczxS
ZW5kZXJNYXRoTUxPcGVyYXRvcj4oKnJlbmRlcmVyKTsKKyAgICBib29sIGlzQW5vbnltb3VzT3Bl
cmF0b3IgPSByZW5kZXJlci5pc0Fub255bW91cygpICYmIGlzPFJlbmRlck1hdGhNTE9wZXJhdG9y
PihyZW5kZXJlcik7CiAgICAgaWYgKGlzQW5vbnltb3VzT3BlcmF0b3IgfHwgaXM8TWF0aE1MRWxl
bWVudD4obm9kZSkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudDo6
Y3JlYXRlKHJlbmRlcmVyLCBpc0Fub255bW91c09wZXJhdG9yKTsKICNlbmRpZgpAQCAtNzY0LDE0
ICs3NjIsMTQgQEAgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFYT2JqZWN0Q2FjaGU6OmNyZWF0
ZU9iamVjdEZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHIKICAgICBpZiAoaXM8UmVuZGVyTGlz
dEJveD4ocmVuZGVyZXIpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUxpc3RCb3g6OmNy
ZWF0ZShyZW5kZXJlcik7CiAgICAgaWYgKGF1dG8qIHJlbmRlck1lbnVMaXN0ID0gZHluYW1pY0Rv
d25jYXN0PFJlbmRlck1lbnVMaXN0PihyZW5kZXJlcikpCi0gICAgICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5TWVudUxpc3Q6OmNyZWF0ZShyZW5kZXJNZW51TGlzdCk7CisgICAgICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmNyZWF0ZSgqcmVuZGVyTWVudUxpc3QpOwogCiAgICAgLy8g
c3RhbmRhcmQgdGFibGVzCi0gICAgaWYgKChpczxSZW5kZXJUYWJsZT4ocmVuZGVyZXIpICYmICFy
ZW5kZXJlci0+aXNBbm9ueW1vdXMoKSkgfHwgaXNBY2Nlc3NpYmlsaXR5VGFibGUobm9kZSkpCisg
ICAgaWYgKChpczxSZW5kZXJUYWJsZT4ocmVuZGVyZXIpICYmICFyZW5kZXJlci5pc0Fub255bW91
cygpKSB8fCBpc0FjY2Vzc2liaWxpdHlUYWJsZShub2RlLmdldCgpKSkKICAgICAgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlUYWJsZTo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAoKGlzPFJlbmRl
clRhYmxlUm93PihyZW5kZXJlcikgJiYgIXJlbmRlcmVyLT5pc0Fub255bW91cygpKSB8fCBpc0Fj
Y2Vzc2liaWxpdHlUYWJsZVJvdyhub2RlKSkKKyAgICBpZiAoKGlzPFJlbmRlclRhYmxlUm93Pihy
ZW5kZXJlcikgJiYgIXJlbmRlcmVyLmlzQW5vbnltb3VzKCkpIHx8IGlzQWNjZXNzaWJpbGl0eVRh
YmxlUm93KG5vZGUuZ2V0KCkpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRhYmxlUm93
OjpjcmVhdGUocmVuZGVyZXIpOwotICAgIGlmICgoaXM8UmVuZGVyVGFibGVDZWxsPihyZW5kZXJl
cikgJiYgIXJlbmRlcmVyLT5pc0Fub255bW91cygpKSB8fCBpc0FjY2Vzc2liaWxpdHlUYWJsZUNl
bGwobm9kZSkpCisgICAgaWYgKChpczxSZW5kZXJUYWJsZUNlbGw+KHJlbmRlcmVyKSAmJiAhcmVu
ZGVyZXIuaXNBbm9ueW1vdXMoKSkgfHwgaXNBY2Nlc3NpYmlsaXR5VGFibGVDZWxsKG5vZGUuZ2V0
KCkpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y3JlYXRlKHJlbmRl
cmVyKTsKIAogICAgIC8vIFByb2dyZXNzIGluZGljYXRvci4KQEAgLTc4MSw3ICs3NzksNyBAQCBS
ZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gQVhPYmplY3RDYWNoZTo6Y3JlYXRlT2JqZWN0RnJvbVJl
bmRlcmVyKFJlbmRlck9iamVjdCogcgogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkK
ICAgICBpZiAoYXV0byogcmVuZGVyQXR0YWNobWVudCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJB
dHRhY2htZW50PihyZW5kZXJlcikpCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5QXR0YWNo
bWVudDo6Y3JlYXRlKHJlbmRlckF0dGFjaG1lbnQpOworICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eUF0dGFjaG1lbnQ6OmNyZWF0ZSgqcmVuZGVyQXR0YWNobWVudCk7CiAjZW5kaWYKIAogICAg
IC8vIGlucHV0IHR5cGU9cmFuZ2UKQEAgLTc5Myw3ICs3OTEsNyBAQCBSZWY8QWNjZXNzaWJpbGl0
eU9iamVjdD4gQVhPYmplY3RDYWNoZTo6Y3JlYXRlT2JqZWN0RnJvbVJlbmRlcmVyKFJlbmRlck9i
amVjdCogcgogCiBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21Ob2Rl
KE5vZGUmIG5vZGUpCiB7Ci0gICAgaWYgKGlzQWNjZXNzaWJpbGl0eUxpc3QoJm5vZGUpKQorICAg
IGlmIChpc0FjY2Vzc2liaWxpdHlMaXN0KG5vZGUpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eUxpc3Q6OmNyZWF0ZShub2RlKTsKICAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5VGFibGUoJm5v
ZGUpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRhYmxlOjpjcmVhdGUobm9kZSk7CkBA
IC04MDEsMTUgKzc5OSwxNSBAQCBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0
ZUZyb21Ob2RlKE5vZGUmIG5vZGUpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGFibGVS
b3c6OmNyZWF0ZShub2RlKTsKICAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5VGFibGVDZWxsKCZub2Rl
KSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNyZWF0ZShub2RlKTsK
LSAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5VHJlZSgmbm9kZSkpCisgICAgaWYgKGlzQWNjZXNzaWJp
bGl0eVRyZWUobm9kZSkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VHJlZTo6Y3JlYXRl
KG5vZGUpOwotICAgIGlmIChpc0FjY2Vzc2liaWxpdHlUcmVlSXRlbSgmbm9kZSkpCisgICAgaWYg
KGlzQWNjZXNzaWJpbGl0eVRyZWVJdGVtKG5vZGUpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eVRyZWVJdGVtOjpjcmVhdGUobm9kZSk7Ci0gICAgaWYgKGlzQWNjZXNzaWJpbGl0eUFSSUFU
YWJsZSgmbm9kZSkpCisgICAgaWYgKGlzQWNjZXNzaWJpbGl0eUFSSUFUYWJsZShub2RlKSkKICAg
ICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlBUklBVGFibGU6OmNyZWF0ZShub2RlKTsKLSAgICBp
ZiAoaXNBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3coJm5vZGUpKQorICAgIGlmIChpc0FjY2Vzc2li
aWxpdHlBUklBR3JpZFJvdyhub2RlKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlBUklB
R3JpZFJvdzo6Y3JlYXRlKG5vZGUpOwotICAgIGlmIChpc0FjY2Vzc2liaWxpdHlBUklBR3JpZENl
bGwoJm5vZGUpKQorICAgIGlmIChpc0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwobm9kZSkpCiAg
ICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpjcmVhdGUobm9kZSk7CiAg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjcmVhdGUobm9kZSk7CiB9CkBAIC05
MzksNyArOTM3LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0T3JD
cmVhdGUoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKICAgICBpZiAocmVuZGVyZXIuYmVpbmdEZXN0
cm95ZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWYgb2JqZWN0ID0gY3Jl
YXRlT2JqZWN0RnJvbVJlbmRlcmVyKCZyZW5kZXJlcik7CisgICAgUmVmIG9iamVjdCA9IGNyZWF0
ZU9iamVjdEZyb21SZW5kZXJlcihyZW5kZXJlcik7CiAKICAgICAvLyBXaWxsIGNyYXNoIGxhdGVy
IGlmIHdlIGhhdmUgdHdvIG9iamVjdHMgZm9yIHRoZSBzYW1lIHJlbmRlcmVyLgogICAgIEFTU0VS
VCghZ2V0KHJlbmRlcmVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oCmluZGV4IDY3OTg5NTNmMDQxZC4uZDkwMWE4ZjEwNWNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtNzM1LDcgKzczNSw3IEBA
IHByaXZhdGU6CiAjZW5kaWYKIAogICAgIC8vIE9iamVjdCBjcmVhdGlvbi4KLSAgICBSZWY8QWNj
ZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlT2JqZWN0RnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCop
OworICAgIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVPYmplY3RGcm9tUmVuZGVyZXIo
UmVuZGVyT2JqZWN0Jik7CiAKICAgICBXZWFrUmVmPERvY3VtZW50LCBXZWFrUHRySW1wbFdpdGhF
dmVudFRhcmdldERhdGE+IG1fZG9jdW1lbnQ7CiAgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gbV9wYWdlSUQ7IC8vIGNvbnN0YW50IGZvciBvYmplY3QncyBsaWZldGltZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFS
SUFHcmlkQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlBUklBR3JpZENlbGwuY3BwCmluZGV4IDBmNDY1MjA4OWIwNi4uOGY5MDMxM2M0YWJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3Jp
ZENlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUFSSUFHcmlkQ2VsbC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotQWNjZXNzaWJpbGl0eUFSSUFHcmlk
Q2VsbDo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQor
QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbChSZW5k
ZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbChyZW5kZXJl
cikKIHsKIH0KQEAgLTQ5LDcgKzQ5LDcgQEAgQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6QWNj
ZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbChOb2RlJiBub2RlKQogCiBBY2Nlc3NpYmlsaXR5QVJJQUdy
aWRDZWxsOjp+QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbCgpID0gZGVmYXVsdDsKIAotUmVmPEFj
Y2Vzc2liaWxpdHlBUklBR3JpZENlbGw+IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OmNyZWF0
ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw+
IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OmNyZWF0ZShSZW5kZXJPYmplY3QmIHJlbmRlcmVy
KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwo
cmVuZGVyZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmgKaW5kZXggN2NlMzA1MmE2NDI3Li45NmUwZjYz
ZGJmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUFSSUFHcmlkQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oCkBAIC0zNCwxMiArMzQsMTIgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIAogY2xhc3MgQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbCBmaW5hbCA6IHB1
YmxpYyBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFj
Y2Vzc2liaWxpdHlBUklBR3JpZENlbGw+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw+IGNyZWF0ZShSZW5kZXJPYmplY3QmKTsK
ICAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw+IGNyZWF0ZShOb2RlJik7
CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbCgpOwogCiBwcml2YXRlOgot
ICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwoUmVuZGVyT2JqZWN0Kik7Cisg
ICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbChSZW5kZXJPYmplY3QmKTsKICAg
ICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsKE5vZGUmKTsKICAgICBib29sIGlz
QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbEluc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAKaW5kZXggMmI5NjQyODMxZTQ4Li5kZjE3N2U1
MjI1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUFSSUFHcmlkUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIAotQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93OjpBY2Nlc3NpYmlsaXR5
QVJJQUdyaWRSb3coUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlBUklBR3Jp
ZFJvdzo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93KFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiAg
ICAgOiBBY2Nlc3NpYmlsaXR5VGFibGVSb3cocmVuZGVyZXIpCiB7CiB9CkBAIC00Niw3ICs0Niw3
IEBAIEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93KE5v
ZGUmIG5vZGUpCiAKIEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6fkFjY2Vzc2liaWxpdHlBUklB
R3JpZFJvdygpID0gZGVmYXVsdDsKIAotUmVmPEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdz4gQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkUm93OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1Jl
ZjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c+IEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6Y3Jl
YXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93KHJlbmRlcmVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaAppbmRl
eCBkMzIxMDdlYWNiN2MuLjU0ZmZkOWY1OTMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oCkBAIC0zNiw3ICsz
Niw3IEBAIGNsYXNzIEFjY2Vzc2liaWxpdHlUYWJsZTsKICAgICAKIGNsYXNzIEFjY2Vzc2liaWxp
dHlBUklBR3JpZFJvdyBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5VGFibGVSb3cgewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93PiBjcmVhdGUoUmVu
ZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c+IGNy
ZWF0ZShSZW5kZXJPYmplY3QmKTsKICAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBR3Jp
ZFJvdz4gY3JlYXRlKE5vZGUmKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5QVJJQUdyaWRS
b3coKTsKIApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgQVhDb3JlT2JqZWN0KiByb3dI
ZWFkZXIoKSBmaW5hbDsKICAgICAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0
eUFSSUFHcmlkUm93KFJlbmRlck9iamVjdCopOworICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlB
UklBR3JpZFJvdyhSZW5kZXJPYmplY3QmKTsKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5QVJJ
QUdyaWRSb3coTm9kZSYpOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3dJbnN0
YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQVRhYmxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFUYWJsZS5jcHAKaW5k
ZXggZTkwZGEyMjA3NmVlLi4wOTU0Yjg2Y2RlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFUYWJsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQVRhYmxlLmNwcApAQCAtMzUsNyAr
MzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlck9iamVjdDsKIAotQWNj
ZXNzaWJpbGl0eUFSSUFUYWJsZTo6QWNjZXNzaWJpbGl0eUFSSUFUYWJsZShSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKQorQWNjZXNzaWJpbGl0eUFSSUFUYWJsZTo6QWNjZXNzaWJpbGl0eUFSSUFUYWJs
ZShSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eVRhYmxlKHJlbmRl
cmVyKQogewogfQpAQCAtNDcsNyArNDcsNyBAQCBBY2Nlc3NpYmlsaXR5QVJJQVRhYmxlOjpBY2Nl
c3NpYmlsaXR5QVJJQVRhYmxlKE5vZGUmIG5vZGUpCiAKIEFjY2Vzc2liaWxpdHlBUklBVGFibGU6
On5BY2Nlc3NpYmlsaXR5QVJJQVRhYmxlKCkgPSBkZWZhdWx0OwogCi1SZWY8QWNjZXNzaWJpbGl0
eUFSSUFUYWJsZT4gQWNjZXNzaWJpbGl0eUFSSUFUYWJsZTo6Y3JlYXRlKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eUFSSUFUYWJsZT4gQWNjZXNzaWJpbGl0eUFSSUFU
YWJsZTo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUFSSUFUYWJsZShyZW5kZXJlcikpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQVRhYmxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBVGFibGUuaApp
bmRleCA1MjU0MTI0Y2UzYTIuLmRlZTMxYTZkZDM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQVRhYmxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQVRhYmxlLmgKQEAgLTM1LDEyICsz
NSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlBUklBVGFi
bGUgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVRhYmxlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBVGFibGU+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAg
ICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBVGFibGU+IGNyZWF0ZShSZW5kZXJPYmplY3Qm
KTsKICAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBVGFibGU+IGNyZWF0ZShOb2RlJik7
CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eUFSSUFUYWJsZSgpOwogCiBwcml2YXRlOgotICAg
IGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlBUklBVGFibGUoUmVuZGVyT2JqZWN0Kik7CisgICAgZXhw
bGljaXQgQWNjZXNzaWJpbGl0eUFSSUFUYWJsZShSZW5kZXJPYmplY3QmKTsKICAgICBleHBsaWNp
dCBBY2Nlc3NpYmlsaXR5QVJJQVRhYmxlKE5vZGUmKTsKIAogICAgIC8vIEFSSUEgdHJlZWdyaWRz
IGFuZCBncmlkcyBzdXBwb3J0IHNlbGVjdGVkIHJvd3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQuY3BwCmluZGV4IGM4
ODgyODEyNzA2My4uMzQ2NTM2ZDExMGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmNwcApAQCAtMzgsMTIgKzM4
LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKLUFjY2Vzc2liaWxpdHlBdHRhY2htZW50OjpBY2Nlc3NpYmlsaXR5QXR0YWNobWVudChS
ZW5kZXJBdHRhY2htZW50KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlBdHRhY2htZW50OjpBY2Nl
c3NpYmlsaXR5QXR0YWNobWVudChSZW5kZXJBdHRhY2htZW50JiByZW5kZXJlcikKICAgICA6IEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCiB7CiB9CiAKLVJlZjxBY2Nlc3NpYmls
aXR5QXR0YWNobWVudD4gQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQ6OmNyZWF0ZShSZW5kZXJBdHRh
Y2htZW50KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5QXR0YWNobWVudD4gQWNjZXNzaWJp
bGl0eUF0dGFjaG1lbnQ6OmNyZWF0ZShSZW5kZXJBdHRhY2htZW50JiByZW5kZXJlcikKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5QXR0YWNobWVudChyZW5kZXJlcikp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QXR0YWNobWVudC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QXR0YWNobWVudC5oCmluZGV4IGI5YTUyZjViNWUzZC4uMjc0NjBjNmNhNGU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QXR0YWNo
bWVudC5oCkBAIC0zNywxMSArMzcsMTMgQEAgY2xhc3MgUmVuZGVyQXR0YWNobWVudDsKICAgICAK
IGNsYXNzIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eUF0
dGFjaG1lbnQ+IGNyZWF0ZShSZW5kZXJBdHRhY2htZW50Kik7CisgICAgc3RhdGljIFJlZjxBY2Nl
c3NpYmlsaXR5QXR0YWNobWVudD4gY3JlYXRlKFJlbmRlckF0dGFjaG1lbnQmKTsKICAgICBIVE1M
QXR0YWNobWVudEVsZW1lbnQqIGF0dGFjaG1lbnRFbGVtZW50KCkgY29uc3Q7CiAgICAgYm9vbCBo
YXNQcm9ncmVzcyhmbG9hdCogcHJvZ3Jlc3MgPSBudWxscHRyKSBjb25zdDsKICAgICAKIHByaXZh
dGU6CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQoUmVuZGVyQXR0YWNobWVu
dCYpOworCiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUo
KSBmaW5hbCB7IHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6QnV0dG9uOyB9CiAKICAgICBib29s
IGlzQXR0YWNobWVudEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CkBA
IC01MCw3ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgdmFsdWVGb3JSYW5nZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2b2lkIGFjY2Vzc2liaWxpdHlUZXh0KFZlY3RvcjxBY2Nlc3NpYmls
aXR5VGV4dD4mKSBjb25zdCBvdmVycmlkZTsKLSAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5QXR0
YWNobWVudChSZW5kZXJBdHRhY2htZW50Kik7CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TGFiZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGFiZWwuY3BwCmluZGV4IDlhNTk0OGZhNTIxYy4uM2FlOGFjZjVlMWM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuY3BwCkBAIC0z
NiwxNCArMzYsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKIAotQWNjZXNzaWJpbGl0eUxhYmVsOjpBY2Nlc3NpYmlsaXR5TGFiZWwoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlMYWJlbDo6QWNjZXNzaWJpbGl0eUxh
YmVsKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiAgICAgOiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0KHJlbmRlcmVyKQogewogfQogCiBBY2Nlc3NpYmlsaXR5TGFiZWw6On5BY2Nlc3NpYmlsaXR5
TGFiZWwoKSA9IGRlZmF1bHQ7CiAKLVJlZjxBY2Nlc3NpYmlsaXR5TGFiZWw+IEFjY2Vzc2liaWxp
dHlMYWJlbDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0
eUxhYmVsPiBBY2Nlc3NpYmlsaXR5TGFiZWw6OmNyZWF0ZShSZW5kZXJPYmplY3QmIHJlbmRlcmVy
KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlMYWJlbChyZW5kZXJl
cikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TGFiZWwuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUxhYmVsLmgKaW5kZXggZjkxNTFlMmRiOTM5Li5jZjY3NzhhODU1ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaApAQCAtMzQsMTIg
KzM0LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWNjZXNzaWJpbGl0eUxhYmVs
IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eUxhYmVsPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7Cisg
ICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TGFiZWw+IGNyZWF0ZShSZW5kZXJPYmplY3QmKTsK
ICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5TGFiZWwoKTsKIAogICAgIGJvb2wgY29udGFpbnNP
bmx5U3RhdGljVGV4dCgpIGNvbnN0OwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBBY2Nlc3NpYmls
aXR5TGFiZWwoUmVuZGVyT2JqZWN0Kik7CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUxhYmVs
KFJlbmRlck9iamVjdCYpOwogICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQo
KSBjb25zdCBmaW5hbDsKIAogICAgIEFjY2Vzc2liaWxpdHlSb2xlIGRldGVybWluZUFjY2Vzc2li
aWxpdHlSb2xlKCkgZmluYWwgeyByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkxhYmVsOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3Bw
CmluZGV4IDdjYzBhYTM1YzdmOC4uMzMzMjExMzY0MzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcApAQCAtNDEsNyArNDEsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
Ci1BY2Nlc3NpYmlsaXR5TGlzdDo6QWNjZXNzaWJpbGl0eUxpc3QoUmVuZGVyT2JqZWN0KiByZW5k
ZXJlcikKK0FjY2Vzc2liaWxpdHlMaXN0OjpBY2Nlc3NpYmlsaXR5TGlzdChSZW5kZXJPYmplY3Qm
IHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChyZW5kZXJlcikKIHsK
IH0KQEAgLTUzLDcgKzUzLDcgQEAgQWNjZXNzaWJpbGl0eUxpc3Q6OkFjY2Vzc2liaWxpdHlMaXN0
KE5vZGUmIG5vZGUpCiAKIEFjY2Vzc2liaWxpdHlMaXN0Ojp+QWNjZXNzaWJpbGl0eUxpc3QoKSA9
IGRlZmF1bHQ7CiAKLVJlZjxBY2Nlc3NpYmlsaXR5TGlzdD4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNy
ZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBBY2Nl
c3NpYmlsaXR5TGlzdDo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxpc3QocmVuZGVyZXIpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaAppbmRleCA3
NmQ2ZDY2MzIzODQuLmMwNjRlNzkxN2M3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaApAQCAtMzQsMTIgKzM0LDEyIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIEFjY2Vzc2liaWxpdHlMaXN0IGZpbmFsIDogcHVibGlj
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QWNj
ZXNzaWJpbGl0eUxpc3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFj
Y2Vzc2liaWxpdHlMaXN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Jik7CiAgICAgc3RhdGljIFJlZjxB
Y2Nlc3NpYmlsaXR5TGlzdD4gY3JlYXRlKE5vZGUmKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmls
aXR5TGlzdCgpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlMaXN0KFJl
bmRlck9iamVjdCopOworICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlMaXN0KFJlbmRlck9iamVj
dCYpOwogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlMaXN0KE5vZGUmKTsKICAgICBib29sIGlz
TGlzdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGlzVW5vcmRl
cmVkTGlzdCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcAppbmRleCBiODEzYTU1NjZiOGEuLjYz
MzNjOTcxYmVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKQEAgLTQyLDE0ICs0MiwxNCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUFjY2Vzc2liaWxpdHlMaXN0
Qm94OjpBY2Nlc3NpYmlsaXR5TGlzdEJveChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorQWNjZXNz
aWJpbGl0eUxpc3RCb3g6OkFjY2Vzc2liaWxpdHlMaXN0Qm94KFJlbmRlck9iamVjdCYgcmVuZGVy
ZXIpCiAgICAgOiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KHJlbmRlcmVyKQogewogfQogCiBB
Y2Nlc3NpYmlsaXR5TGlzdEJveDo6fkFjY2Vzc2liaWxpdHlMaXN0Qm94KCkgPSBkZWZhdWx0Owog
Ci1SZWY8QWNjZXNzaWJpbGl0eUxpc3RCb3g+IEFjY2Vzc2liaWxpdHlMaXN0Qm94OjpjcmVhdGUo
UmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5TGlzdEJveD4gQWNjZXNz
aWJpbGl0eUxpc3RCb3g6OmNyZWF0ZShSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlMaXN0Qm94KHJlbmRlcmVyKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94
LmgKaW5kZXggYjdkMDQ2NzcxNzgxLi45N2I4OTE1NWJhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmgKQEAgLTM0LDcgKzM0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBY2Nlc3NpYmlsaXR5TGlzdEJveCBm
aW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlMaXN0Qm94PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7Cisg
ICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TGlzdEJveD4gY3JlYXRlKFJlbmRlck9iamVjdCYp
OwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlMaXN0Qm94KCk7CiAKICAgICBib29sIGNhblNl
dFNlbGVjdGVkQ2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZTsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBl
eHBsaWNpdCBBY2Nlc3NpYmlsaXR5TGlzdEJveChSZW5kZXJPYmplY3QqKTsKKyAgICBleHBsaWNp
dCBBY2Nlc3NpYmlsaXR5TGlzdEJveChSZW5kZXJPYmplY3QmKTsKIAogICAgIGJvb2wgaXNBY2Nl
c3NpYmlsaXR5TGlzdEJveEluc3RhbmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGxpc3RCb3hPcHRpb25BY2Nlc3NpYmlsaXR5T2Jq
ZWN0KEhUTUxFbGVtZW50KikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQuY3BwCmluZGV4IGE2MThk
ODI5NzgxYi4uNTU1NjE1N2I5YzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50LmNwcApAQCAtMzYsNyAr
MzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFjY2Vzc2liaWxpdHlNYXRoTUxFbGVt
ZW50OjpBY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBi
b29sIGlzQW5vbnltb3VzT3BlcmF0b3IpCitBY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudDo6QWNj
ZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQoUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgYm9vbCBpc0Fu
b255bW91c09wZXJhdG9yKQogICAgIDogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChyZW5kZXJl
cikKICAgICAsIG1faXNBbm9ueW1vdXNPcGVyYXRvcihpc0Fub255bW91c09wZXJhdG9yKQogewpA
QCAtNDQsNyArNDQsNyBAQCBBY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudDo6QWNjZXNzaWJpbGl0
eU1hdGhNTEVsZW1lbnQoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgYgogCiBBY2Nlc3NpYmlsaXR5
TWF0aE1MRWxlbWVudDo6fkFjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50KCkgPSBkZWZhdWx0Owog
Ci1SZWY8QWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlNYXRoTUxFbGVt
ZW50OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgYm9vbCBpc0Fub255bW91c09wZXJh
dG9yKQorUmVmPEFjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50PiBBY2Nlc3NpYmlsaXR5TWF0aE1M
RWxlbWVudDo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIGJvb2wgaXNBbm9ueW1vdXNP
cGVyYXRvcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWF0aE1M
RWxlbWVudChyZW5kZXJlciwgaXNBbm9ueW1vdXNPcGVyYXRvcikpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVu
dC5oCmluZGV4IDUxZDg2ZDdhZjE0OC4uMGQzODFhZWEyYzY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudC5o
CkBAIC00MSwxMSArNDEsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWNjZXNzaWJp
bGl0eU1hdGhNTEVsZW1lbnQgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CiAK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50PiBjcmVh
dGUoUmVuZGVyT2JqZWN0KiwgYm9vbCBpc0Fub255bW91c09wZXJhdG9yKTsKKyAgICBzdGF0aWMg
UmVmPEFjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50PiBjcmVhdGUoUmVuZGVyT2JqZWN0JiwgYm9v
bCBpc0Fub255bW91c09wZXJhdG9yKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5TWF0aE1M
RWxlbWVudCgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1hdGhN
TEVsZW1lbnQoUmVuZGVyT2JqZWN0KiwgYm9vbCBpc0Fub255bW91c09wZXJhdG9yKTsKKyAgICBl
eHBsaWNpdCBBY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudChSZW5kZXJPYmplY3QmLCBib29sIGlz
QW5vbnltb3VzT3BlcmF0b3IpOwogCiBwcml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlSb2xlIGRl
dGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9iamVjdC5jcHAKaW5kZXgg
Y2Q3NjIwMDBmMzk4Li40M2Y3MzJmNmM1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9iamVjdC5jcHAKQEAgLTQxLDE0
ICs0MSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogCi1BY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OkFjY2Vzc2liaWxpdHlNZWRpYU9i
amVjdChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0OjpB
Y2Nlc3NpYmlsaXR5TWVkaWFPYmplY3QoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKICAgICA6IEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCiB7CiB9CiAKIEFjY2Vzc2liaWxpdHlN
ZWRpYU9iamVjdDo6fkFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdCgpID0gZGVmYXVsdDsKIAotUmVm
PEFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdD4gQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0OjpjcmVh
dGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q+
IEFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdDo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIp
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0KHJl
bmRlcmVyKSk7CiB9CkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU1lZGlhT2Jq
ZWN0OjptZWRpYVNlZWsoQVhTZWVrRGlyZWN0aW9uIGRpcmVjdGlvbikKICAgICBkb3VibGUgZHVy
YXRpb24gPSBlbGVtZW50LT5kdXJhdGlvbigpOwogICAgIGRvdWJsZSB0aW1lRGVsdGEgPSBjZWls
KGR1cmF0aW9uICogc2Vla1N0ZXApOwogCi0gICAgZG91YmxlIHRpbWUgPSBkaXJlY3Rpb24gPT0g
QVhTZWVrRm9yd2FyZCA/IHN0ZDo6bWluKGN1cnJlbnQgKyB0aW1lRGVsdGEsIGR1cmF0aW9uKSA6
IHN0ZDo6bWF4KGN1cnJlbnQgLSB0aW1lRGVsdGEsIDAuMCk7CisgICAgZG91YmxlIHRpbWUgPSBk
aXJlY3Rpb24gPT0gQVhTZWVrRGlyZWN0aW9uOjpGb3J3YXJkID8gc3RkOjptaW4oY3VycmVudCAr
IHRpbWVEZWx0YSwgZHVyYXRpb24pIDogc3RkOjptYXgoY3VycmVudCAtIHRpbWVEZWx0YSwgMC4w
KTsKICAgICBlbGVtZW50LT5zZXRDdXJyZW50VGltZSh0aW1lKTsKIH0KIApAQCAtMTA0LDEyICsx
MDQsMTIgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OnRvZ2dsZU11dGUoKQogCiB2
b2lkIEFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdDo6aW5jcmVtZW50KCkKIHsKLSAgICBtZWRpYVNl
ZWsoQVhTZWVrRm9yd2FyZCk7CisgICAgbWVkaWFTZWVrKEFYU2Vla0RpcmVjdGlvbjo6Rm9yd2Fy
ZCk7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0OjpkZWNyZW1lbnQoKQogewot
ICAgIG1lZGlhU2VlayhBWFNlZWtCYWNrd2FyZCk7CisgICAgbWVkaWFTZWVrKEFYU2Vla0RpcmVj
dGlvbjo6QmFja3dhcmQpOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdDo6cHJl
c3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TWVkaWFPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lZGlhT2JqZWN0LmgKaW5kZXggODNkY2U2NDkzZjliLi40ODM1ZDYxY2NkZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVk
aWFPYmplY3QuaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBj
bGFzcyBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3QgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TWVk
aWFPYmplY3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2li
aWxpdHlNZWRpYU9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCYpOwogICAgIHZpcnR1YWwgfkFj
Y2Vzc2liaWxpdHlNZWRpYU9iamVjdCgpOwogICAgIAogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVu
KCkgY29uc3Q7CkBAIC00OSw4ICs0OSw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzTXV0ZWQoKSBj
b25zdDsKIAogcHJpdmF0ZToKLSAgICBlbnVtIEFYU2Vla0RpcmVjdGlvbiB7IEFYU2Vla0Zvcndh
cmQsIEFYU2Vla0JhY2t3YXJkIH07Ci0gICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1lZGlhT2Jq
ZWN0KFJlbmRlck9iamVjdCopOworICAgIGVudW0gY2xhc3MgQVhTZWVrRGlyZWN0aW9uIDogYm9v
bCB7IEJhY2t3YXJkLCBGb3J3YXJkIH07CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1lZGlh
T2JqZWN0KFJlbmRlck9iamVjdCYpOwogICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzTWVkaWFPYmplY3QoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAKaW5kZXggMGFmZGRlY2MwZDE0Li40
ZTZkMjU4NDYyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAKQEAgLTMzLDEyICszMywxMiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLUFjY2Vzc2liaWxpdHlNZW51TGlzdDo6QWNjZXNzaWJpbGl0eU1lbnVM
aXN0KFJlbmRlck1lbnVMaXN0KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlNZW51TGlzdDo6QWNj
ZXNzaWJpbGl0eU1lbnVMaXN0KFJlbmRlck1lbnVMaXN0JiByZW5kZXJlcikKICAgICA6IEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCiB7CiB9CiAKLVJlZjxBY2Nlc3NpYmlsaXR5
TWVudUxpc3Q+IEFjY2Vzc2liaWxpdHlNZW51TGlzdDo6Y3JlYXRlKFJlbmRlck1lbnVMaXN0KiBy
ZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5TWVudUxpc3Q+IEFjY2Vzc2liaWxpdHlNZW51TGlz
dDo6Y3JlYXRlKFJlbmRlck1lbnVMaXN0JiByZW5kZXJlcikKIHsKICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWVudUxpc3QocmVuZGVyZXIpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5oCmluZGV4
IDUzOWFhMjE1YWVjOS4uMTBhYjhhNzg4MzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmgKQEAgLTMzLDcgKzMzLDcgQEAg
Y2xhc3MgUmVuZGVyTWVudUxpc3Q7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlNZW51TGlzdCBmaW5h
bCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlNZW51TGlzdD4gY3JlYXRlKFJlbmRlck1lbnVMaXN0KiByZW5k
ZXJlcik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TWVudUxpc3Q+IGNyZWF0ZShSZW5k
ZXJNZW51TGlzdCYpOwogCiAgICAgYm9vbCBpc0NvbGxhcHNlZCgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgcHJlc3MoKSBvdmVycmlkZTsKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKGludCBvcHRpb25JbmRleCk7CiAKIHByaXZhdGU6
Ci0gICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1lbnVMaXN0KFJlbmRlck1lbnVMaXN0Kik7Cisg
ICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1lbnVMaXN0KFJlbmRlck1lbnVMaXN0Jik7CiAKICAg
ICBib29sIGlzTWVudUxpc3QoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgQWNj
ZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKSBmaW5hbCB7IHJldHVy
biBBY2Nlc3NpYmlsaXR5Um9sZTo6UG9wVXBCdXR0b247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXgg
M2NhMTlkZmM2NDdjLi4yZTZmZmZjZGM4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC05Myw3ICs5
Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAotc3RhdGljIFN0cmluZyBhY2Nlc3NpYmxlTmFtZUZvck5vZGUoTm9kZSogbm9kZSwgTm9kZSog
bGFiZWxsZWRieU5vZGUgPSBudWxscHRyKTsKK3N0YXRpYyBTdHJpbmcgYWNjZXNzaWJsZU5hbWVG
b3JOb2RlKE5vZGUmLCBOb2RlKiBsYWJlbGxlZGJ5Tm9kZSA9IG51bGxwdHIpOwogc3RhdGljIHZv
aWQgYXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihTdHJpbmdCdWlsZGVyJiwgU3RyaW5nJiYpOwog
CiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QoTm9kZSog
bm9kZSkKQEAgLTE3MzIsNyArMTczMiw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6dGV4dEFzTGFiZWxGb3IoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdCYgbGFiZWxlCiAKICAg
ICAgICAgICAgIGlmIChjaGlsZC0+aXNMaXN0Qm94KCkpIHsKICAgICAgICAgICAgICAgICBmb3Ig
KGNvbnN0IGF1dG8mIHNlbGVjdGVkR3JhbmRDaGlsZCA6IGNoaWxkLT5zZWxlY3RlZENoaWxkcmVu
KCkpCi0gICAgICAgICAgICAgICAgICAgIGFwcGVuZE5hbWVUb1N0cmluZ0J1aWxkZXIoYnVpbGRl
ciwgYWNjZXNzaWJsZU5hbWVGb3JOb2RlKHNlbGVjdGVkR3JhbmRDaGlsZC0+bm9kZSgpKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGFwcGVuZE5hbWVUb1N0cmluZ0J1aWxkZXIoYnVpbGRlciwgYWNj
ZXNzaWJsZU5hbWVGb3JOb2RlKCpzZWxlY3RlZEdyYW5kQ2hpbGQtPm5vZGUoKSkpOwogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCkBAIC0xNzg5LDcgKzE3ODksNyBA
QCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRGb3JMYWJlbEVsZW1lbnRzKFZl
Y3RvcjxSZWY8SFRNTEVsZW1lbnQ+PiYmCiAgICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdC
dWlsZGVyKHJlc3VsdCwgYXhMYWJlbC0+dGV4dEFzTGFiZWxGb3IoKnRoaXMpKTsKICNlbmRpZgog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKHJlc3Vs
dCwgYWNjZXNzaWJsZU5hbWVGb3JOb2RlKGxhYmVsRWxlbWVudC5wdHIoKSkpOworICAgICAgICAg
ICAgYXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihyZXN1bHQsIGFjY2Vzc2libGVOYW1lRm9yTm9k
ZShsYWJlbEVsZW1lbnQuZ2V0KCkpKTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CkBAIC0xODg5LDE5ICsxODg5LDE5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmFsdGVybmF0aXZlVGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JiB0ZXh0T3JkCiAg
ICAgaWYgKFJlZlB0ciBmaWVsZHNldCA9IGR5bmFtaWNEb3duY2FzdDxIVE1MRmllbGRTZXRFbGVt
ZW50Pigqbm9kZSk7IGZpZWxkc2V0ICYmIG9iamVjdENhY2hlKSB7CiAgICAgICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iamVjdCA9IG9iamVjdENhY2hlLT5nZXRPckNyZWF0ZShmaWVsZHNldC0+
bGVnZW5kKCkpOwogICAgICAgICBpZiAob2JqZWN0ICYmICFvYmplY3QtPmlzSGlkZGVuKCkpCi0g
ICAgICAgICAgICB0ZXh0T3JkZXIuYXBwZW5kKEFjY2Vzc2liaWxpdHlUZXh0KGFjY2Vzc2libGVO
YW1lRm9yTm9kZShvYmplY3QtPm5vZGUoKSksIEFjY2Vzc2liaWxpdHlUZXh0U291cmNlOjpBbHRl
cm5hdGl2ZSkpOworICAgICAgICAgICAgdGV4dE9yZGVyLmFwcGVuZChBY2Nlc3NpYmlsaXR5VGV4
dChhY2Nlc3NpYmxlTmFtZUZvck5vZGUoKm9iamVjdC0+bm9kZSgpKSwgQWNjZXNzaWJpbGl0eVRl
eHRTb3VyY2U6OkFsdGVybmF0aXZlKSk7CiAgICAgfQogCiAgICAgLy8gVGhlIGZpZ3VyZSBlbGVt
ZW50IGRlcml2ZXMgaXRzIGFsdGVybmF0aXZlIHRleHQgZnJvbSB0aGUgZmlyc3QgYXNzb2NpYXRl
ZCBmaWdjYXB0aW9uIGVsZW1lbnQgaWYgb25lIGlzIGF2YWlsYWJsZS4KICAgICBpZiAoaXNGaWd1
cmVFbGVtZW50KCkpIHsKICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogY2FwdGlvbkZvckZp
Z3VyZSA9IHRoaXMtPmNhcHRpb25Gb3JGaWd1cmUoKTsKICAgICAgICAgaWYgKGNhcHRpb25Gb3JG
aWd1cmUgJiYgIWNhcHRpb25Gb3JGaWd1cmUtPmlzSGlkZGVuKCkpCi0gICAgICAgICAgICB0ZXh0
T3JkZXIuYXBwZW5kKEFjY2Vzc2liaWxpdHlUZXh0KGFjY2Vzc2libGVOYW1lRm9yTm9kZShjYXB0
aW9uRm9yRmlndXJlLT5ub2RlKCkpLCBBY2Nlc3NpYmlsaXR5VGV4dFNvdXJjZTo6QWx0ZXJuYXRp
dmUpKTsKKyAgICAgICAgICAgIHRleHRPcmRlci5hcHBlbmQoQWNjZXNzaWJpbGl0eVRleHQoYWNj
ZXNzaWJsZU5hbWVGb3JOb2RlKCpjYXB0aW9uRm9yRmlndXJlLT5ub2RlKCkpLCBBY2Nlc3NpYmls
aXR5VGV4dFNvdXJjZTo6QWx0ZXJuYXRpdmUpKTsKICAgICB9CiAKICAgICAvLyBUcmVlIGl0ZW1z
IG1pc3NpbmcgYSBsYWJlbCBhcmUgbGFiZWxlZCBieSBhbGwgY2hpbGQgZWxlbWVudHMuCiAgICAg
aWYgKGlzVHJlZUl0ZW0oKSAmJiBhcmlhTGFiZWwuaXNFbXB0eSgpICYmIGFyaWFMYWJlbGVkQnlB
dHRyaWJ1dGUoKS5pc0VtcHR5KCkpCi0gICAgICAgIHRleHRPcmRlci5hcHBlbmQoQWNjZXNzaWJp
bGl0eVRleHQoYWNjZXNzaWJsZU5hbWVGb3JOb2RlKG5vZGUpLCBBY2Nlc3NpYmlsaXR5VGV4dFNv
dXJjZTo6QWx0ZXJuYXRpdmUpKTsKKyAgICAgICAgdGV4dE9yZGVyLmFwcGVuZChBY2Nlc3NpYmls
aXR5VGV4dChhY2Nlc3NpYmxlTmFtZUZvck5vZGUoKm5vZGUpLCBBY2Nlc3NpYmlsaXR5VGV4dFNv
dXJjZTo6QWx0ZXJuYXRpdmUpKTsKIAogI2lmIEVOQUJMRShNQVRITUwpCiAgICAgaWYgKG5vZGUt
PmlzTWF0aE1MRWxlbWVudCgpKQpAQCAtMjI5Miw3ICsyMjkyLDcgQEAgU3RyaW5nIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KFRleHRVbmRlckVsZW1lbnRNb2RlIG1v
ZGUpIGNvbnMKIAogICAgICAgICBib29sIHNob3VsZERlcml2ZU5hbWVGcm9tQXV0aG9yID0gKG1v
ZGUuY2hpbGRyZW5JbmNsdXNpb24gPT0gVGV4dFVuZGVyRWxlbWVudE1vZGU6OkNoaWxkcmVuOjpJ
bmNsdWRlTmFtZUZyb21Db250ZW50c0NoaWxkcmVuICYmICFjaGlsZC0+YWNjZXNzaWJsZU5hbWVE
ZXJpdmVzRnJvbUNvbnRlbnQoKSk7CiAgICAgICAgIGlmIChzaG91bGREZXJpdmVOYW1lRnJvbUF1
dGhvcikgewotICAgICAgICAgICAgYXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihidWlsZGVyLCBh
Y2Nlc3NpYmxlTmFtZUZvck5vZGUoY2hpbGQtPm5vZGUoKSkpOworICAgICAgICAgICAgYXBwZW5k
TmFtZVRvU3RyaW5nQnVpbGRlcihidWlsZGVyLCBhY2Nlc3NpYmxlTmFtZUZvck5vZGUoKmNoaWxk
LT5ub2RlKCkpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTI1MDEs
MTEgKzI1MDEsOCBAQCBTUkdCQTx1aW50OF90PiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y29s
b3JWYWx1ZSgpIGNvbnN0CiAKIC8vIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgQVJJQSBh
Y2Nlc3NpYmxlIG5hbWUgYXMgZGVzY3JpYmVkIGJ5IHRoZSBNb3ppbGxhCiAvLyBBUklBIEltcGxl
bWVudGVyJ3MgR3VpZGUuCi1zdGF0aWMgU3RyaW5nIGFjY2Vzc2libGVOYW1lRm9yTm9kZShOb2Rl
KiBub2RlLCBOb2RlKiBsYWJlbGxlZGJ5Tm9kZSkKK3N0YXRpYyBTdHJpbmcgYWNjZXNzaWJsZU5h
bWVGb3JOb2RlKE5vZGUmIG5vZGUsIE5vZGUqIGxhYmVsbGVkYnlOb2RlKQogewotICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQganVzdCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiB0byBqdXN0IHRha2UgYSBy
ZWZlcmVuY2Ugc2luY2Ugd2UgQVNTRVJUKG5vZGUpIGFuZCBkZXJlZiB3aXRob3V0IGEgbnVsbHB0
ciBjaGVjay4KLSAgICBBU1NFUlQobm9kZSk7Ci0KICAgICBhdXRvKiBlbGVtZW50ID0gZHluYW1p
Y0Rvd25jYXN0PEVsZW1lbnQ+KG5vZGUpOwogICAgIGNvbnN0IEF0b21TdHJpbmcmIGFyaWFMYWJl
bCA9IGVsZW1lbnQgPyBlbGVtZW50LT5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFy
aWFfbGFiZWxBdHRyKSA6IG51bGxBdG9tKCk7CiAgICAgaWYgKCFhcmlhTGFiZWwuaXNFbXB0eSgp
KQpAQCAtMjUxNyw4ICsyNTE0LDggQEAgc3RhdGljIFN0cmluZyBhY2Nlc3NpYmxlTmFtZUZvck5v
ZGUoTm9kZSogbm9kZSwgTm9kZSogbGFiZWxsZWRieU5vZGUpCiAKICAgICAvLyBJZiB0aGUgbm9k
ZSBjYW4gYmUgdHVybmVkIGludG8gYW4gQVggb2JqZWN0LCB3ZSBjYW4gdXNlIHN0YW5kYXJkIG5h
bWUgY29tcHV0YXRpb24gcnVsZXMuCiAgICAgLy8gSWYgaG93ZXZlciwgdGhlIG5vZGUgY2Fubm90
IChiZWNhdXNlIHRoZXJlJ3Mgbm8gcmVuZGVyZXIgZS5nLikgZmFsbGJhY2sgdG8gdXNpbmcgdGhl
IGJhc2ljIHRleHQgdW5kZXJuZWF0aC4KLSAgICBhdXRvKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50
KCkuYXhPYmplY3RDYWNoZSgpOwotICAgIFJlZlB0ciBheE9iamVjdCA9IGNhY2hlID8gY2FjaGUt
PmdldE9yQ3JlYXRlKCpub2RlKSA6IG51bGxwdHI7CisgICAgYXV0byogY2FjaGUgPSBub2RlLmRv
Y3VtZW50KCkuYXhPYmplY3RDYWNoZSgpOworICAgIFJlZlB0ciBheE9iamVjdCA9IGNhY2hlID8g
Y2FjaGUtPmdldE9yQ3JlYXRlKG5vZGUpIDogbnVsbHB0cjsKICAgICBpZiAoYXhPYmplY3QpIHsK
ICAgICAgICAgU3RyaW5nIHZhbHVlRGVzY3JpcHRpb24gPSBheE9iamVjdC0+dmFsdWVEZXNjcmlw
dGlvbigpOwogICAgICAgICBpZiAoIXZhbHVlRGVzY3JpcHRpb24uaXNFbXB0eSgpKQpAQCAtMjU0
MSw3ICsyNTM4LDcgQEAgc3RhdGljIFN0cmluZyBhY2Nlc3NpYmxlTmFtZUZvck5vZGUoTm9kZSog
bm9kZSwgTm9kZSogbGFiZWxsZWRieU5vZGUpCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICAgICAgU3RyaW5nIGNoaWxkVGV4dDsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBj
aGlsZCA6IHNlbGVjdGVkQ2hpbGRyZW4pCi0gICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdC
dWlsZGVyKGJ1aWxkZXIsIGFjY2Vzc2libGVOYW1lRm9yTm9kZShjaGlsZC0+bm9kZSgpKSk7Cisg
ICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKGJ1aWxkZXIsIGFjY2Vzc2libGVO
YW1lRm9yTm9kZSgqY2hpbGQtPm5vZGUoKSkpOwogCiAgICAgICAgIGNoaWxkVGV4dCA9IGJ1aWxk
ZXIudG9TdHJpbmcoKTsKICAgICAgICAgaWYgKCFjaGlsZFRleHQuaXNFbXB0eSgpKQpAQCAtMjU2
Nyw3ICsyNTY0LDcgQEAgc3RhdGljIFN0cmluZyBhY2Nlc3NpYmxlTmFtZUZvck5vZGUoTm9kZSog
bm9kZSwgTm9kZSogbGFiZWxsZWRieU5vZGUpCiAgICAgICAgIGlmIChheE9iamVjdC0+YWNjZXNz
aWJsZU5hbWVEZXJpdmVzRnJvbUNvbnRlbnQoKSkKICAgICAgICAgICAgIHRleHQgPSBheE9iamVj
dC0+dGV4dFVuZGVyRWxlbWVudChUZXh0VW5kZXJFbGVtZW50TW9kZShUZXh0VW5kZXJFbGVtZW50
TW9kZTo6Q2hpbGRyZW46OkluY2x1ZGVOYW1lRnJvbUNvbnRlbnRzQ2hpbGRyZW4sIHRydWUsIGxh
YmVsbGVkYnlOb2RlKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIHRleHQgPSAoZWxlbWVudCA/IGVs
ZW1lbnQtPmlubmVyVGV4dCgpIDogbm9kZS0+dGV4dENvbnRlbnQoKSkuc2ltcGxpZnlXaGl0ZVNw
YWNlKGlzVW5pY29kZVdoaXRlc3BhY2UpOworICAgICAgICB0ZXh0ID0gKGVsZW1lbnQgPyBlbGVt
ZW50LT5pbm5lclRleHQoKSA6IG5vZGUudGV4dENvbnRlbnQoKSkuc2ltcGxpZnlXaGl0ZVNwYWNl
KGlzVW5pY29kZVdoaXRlc3BhY2UpOwogCiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIHRleHQ7CkBAIC0yNTgxLDcgKzI1NzgsNyBAQCBzdGF0aWMgU3RyaW5nIGFjY2Vz
c2libGVOYW1lRm9yTm9kZShOb2RlKiBub2RlLCBOb2RlKiBsYWJlbGxlZGJ5Tm9kZSkKICAgICBp
ZiAoYXV0byogYXNzaWduZWROb2RlcyA9IChzbG90RWxlbWVudCAmJiBsYWJlbGxlZGJ5Tm9kZSkg
PyBzbG90RWxlbWVudC0+YXNzaWduZWROb2RlcygpIDogbnVsbHB0cikgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgYXNzaWduZWROb2Rl
IDogKmFzc2lnbmVkTm9kZXMpCi0gICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVy
KGJ1aWxkZXIsIGFjY2Vzc2libGVOYW1lRm9yTm9kZShhc3NpZ25lZE5vZGUuZ2V0KCkpKTsKKyAg
ICAgICAgICAgIGFwcGVuZE5hbWVUb1N0cmluZ0J1aWxkZXIoYnVpbGRlciwgYWNjZXNzaWJsZU5h
bWVGb3JOb2RlKCphc3NpZ25lZE5vZGUpKTsKIAogICAgICAgICBhdXRvIGFzc2lnbmVkTm9kZXNU
ZXh0ID0gYnVpbGRlci50b1N0cmluZygpOwogICAgICAgICBpZiAoIWFzc2lnbmVkTm9kZXNUZXh0
LmlzRW1wdHkoKSkKQEAgLTI2MDksNyArMjYwNiw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uRm9yQ2hpbGRyZW4oKSBjb25zdAogICAg
ICAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCogYXhPYmplY3QgPSBjYWNoZS0+Z2V0T3JDcmVh
dGUoKmNoaWxkKSkgewogICAgICAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uID0gYXhPYmplY3Qt
PmFyaWFMYWJlbGVkQnlBdHRyaWJ1dGUoKTsKICAgICAgICAgICAgIGlmIChkZXNjcmlwdGlvbi5p
c0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBhY2Nlc3NpYmxlTmFtZUZv
ck5vZGUoY2hpbGQpOworICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gYWNjZXNzaWJsZU5h
bWVGb3JOb2RlKCpjaGlsZCk7CiAgICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVy
KGJ1aWxkZXIsIFdURk1vdmUoZGVzY3JpcHRpb24pKTsKICAgICAgICAgfQogICAgIH0KQEAgLTI2
MjEsNyArMjYxOCw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGVzY3JpcHRp
b25Gb3JFbGVtZW50cyhjb25zdCBWZWN0b3I8UmVmPEVsZW1lbnQ+CiB7CiAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGVsZW1lbnRzKQotICAgICAg
ICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKGJ1aWxkZXIsIGFjY2Vzc2libGVOYW1lRm9yTm9k
ZShlbGVtZW50LnB0cigpLCBub2RlKCkpKTsKKyAgICAgICAgYXBwZW5kTmFtZVRvU3RyaW5nQnVp
bGRlcihidWlsZGVyLCBhY2Nlc3NpYmxlTmFtZUZvck5vZGUoZWxlbWVudC5nZXQoKSwgbm9kZSgp
KSk7CiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3IuY3BwCmluZGV4IDYwZjdhNzBjZTU4YS4uNmU5MjNjZWJlYmY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwCkBAIC0zNSwxMyArMzUsMTMgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotQWNjZXNzaWJpbGl0eVBy
b2dyZXNzSW5kaWNhdG9yOjpBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6QWNjZXNzaWJp
bGl0eVByb2dyZXNzSW5kaWNhdG9yKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiAgICAgOiBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0KHJlbmRlcmVyKQogewotICAgIEFTU0VSVChpczxSZW5kZXJQ
cm9ncmVzcz4ocmVuZGVyZXIpIHx8IGlzPFJlbmRlck1ldGVyPihyZW5kZXJlcikgfHwgaXM8SFRN
TFByb2dyZXNzRWxlbWVudD4ocmVuZGVyZXItPm5vZGUoKSkgfHwgaXM8SFRNTE1ldGVyRWxlbWVu
dD4ocmVuZGVyZXItPm5vZGUoKSkpOworICAgIEFTU0VSVChpczxSZW5kZXJQcm9ncmVzcz4ocmVu
ZGVyZXIpIHx8IGlzPFJlbmRlck1ldGVyPihyZW5kZXJlcikgfHwgaXM8SFRNTFByb2dyZXNzRWxl
bWVudD4ocmVuZGVyZXIubm9kZSgpKSB8fCBpczxIVE1MTWV0ZXJFbGVtZW50PihyZW5kZXJlci5u
b2RlKCkpKTsKIH0KIAotUmVmPEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcj4gQWNjZXNz
aWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikK
K1JlZjxBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I+IEFjY2Vzc2liaWxpdHlQcm9ncmVz
c0luZGljYXRvcjo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKHJlbmRlcmVyKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlQcm9ncmVzc0luZGljYXRvci5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaAppbmRleCA4OWUxN2MzNDljOWUuLjI2N2QwYThj
YWRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNz
IFJlbmRlclByb2dyZXNzOwogICAgIAogY2xhc3MgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNh
dG9yIGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yPiBjcmVhdGUoUmVu
ZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0
b3I+IGNyZWF0ZShSZW5kZXJPYmplY3QmKTsKIAogICAgIGJvb2wgaXNJbmRldGVybWluYXRlKCkg
Y29uc3QgZmluYWw7CiAKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtYXhW
YWx1ZUZvclJhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgZmxvYXQgbWluVmFsdWVGb3JSYW5n
ZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVByb2dyZXNz
SW5kaWNhdG9yKFJlbmRlck9iamVjdCopOworICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlQcm9n
cmVzc0luZGljYXRvcihSZW5kZXJPYmplY3QmKTsKICAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBw
cm9ncmVzc0VsZW1lbnQoKSBjb25zdDsKICAgICBIVE1MTWV0ZXJFbGVtZW50KiBtZXRlckVsZW1l
bnQoKSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDA5MjBhODU0NzYzYi4u
NGQ5YzgwZDE4NzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTEyNiwxMiArMTI2LDEyIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKQotICAgIDogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QocmVuZGVyZXIt
Pm5vZGUoKSkKK0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKKyAgICA6IEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0KHJlbmRlcmVyLm5vZGUoKSkKICAgICAsIG1fcmVuZGVyZXIocmVuZGVyZXIpCiB7CiAjaWYg
QVNTRVJUX0VOQUJMRUQKLSAgICBtX3JlbmRlcmVyLT5zZXRIYXNBWE9iamVjdCh0cnVlKTsKKyAg
ICByZW5kZXJlci5zZXRIYXNBWE9iamVjdCh0cnVlKTsKICNlbmRpZgogfQogCkBAIC0xNDcsNyAr
MTQ3LDcgQEAgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6fkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QoKQogICAgIEFTU0VSVChpc0RldGFjaGVkKCkpOwogfQogCi1SZWY8QWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdD4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y3JlYXRlKFJlbmRlck9i
amVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdD4gQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChyZW5kZXJlcikp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCBjOGU5ZWZjNTRmYmMuLjQ2Zjk0Njg3NmY1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmgKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsK
IAogY2xhc3MgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Jik7CiAgICAgdmlydHVhbCB+QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpOwogICAgIAogICAgIEZsb2F0UmVjdCBmcmFtZVJlY3Qo
KSBjb25zdCBmaW5hbDsKQEAgLTEzOSw3ICsxMzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsYWJl
bFRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90
ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChSZW5kZXJPYmpl
Y3QqKTsKKyAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KFJlbmRlck9iamVj
dCYpOwogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoTm9kZSYpOwogICAg
IHZvaWQgZGV0YWNoUmVtb3RlUGFydHMoQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlKSBvdmVy
cmlkZTsKICAgICBTY3JvbGxhYmxlQXJlYSogZ2V0U2Nyb2xsYWJsZUFyZWFJZlNjcm9sbGFibGUo
KSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHAKaW5kZXggMTJmNjg4NmNkOWFmLi4zYmRl
N2MyYjgzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwCkBAIC00NCwxNyArNDQsMTYgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudDo6QWNjZXNzaWJpbGl0eVNW
R0VsZW1lbnQoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhPYmplY3RDYWNoZSogY2FjaGUpCitB
Y2Nlc3NpYmlsaXR5U1ZHRWxlbWVudDo6QWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQoUmVuZGVyT2Jq
ZWN0JiByZW5kZXJlciwgQVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0KHJlbmRlcmVyKQogICAgICwgbV9heE9iamVjdENhY2hlKGNhY2hlKQogewot
ICAgIEFTU0VSVChyZW5kZXJlcik7CiAgICAgQVNTRVJUKGNhY2hlKTsKIH0KIAogQWNjZXNzaWJp
bGl0eVNWR0VsZW1lbnQ6On5BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudCgpID0gZGVmYXVsdDsKIAot
UmVmPEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50PiBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudDo6Y3Jl
YXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQorUmVmPEFj
Y2Vzc2liaWxpdHlTVkdFbGVtZW50PiBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudDo6Y3JlYXRlKFJl
bmRlck9iamVjdCYgcmVuZGVyZXIsIEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogewogICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50KHJlbmRlcmVyLCBjYWNoZSkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U1ZHRWxlbWVudC5oCmluZGV4IDY1YWQ3NzA1YTEyMy4uMjEyZWE0OGQxMjI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHRWxl
bWVudC5oCkBAIC0zMywxMSArMzMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBB
Y2Nlc3NpYmlsaXR5U1ZHRWxlbWVudCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50PiBjcmVh
dGUoUmVuZGVyT2JqZWN0KiwgQVhPYmplY3RDYWNoZSopOworICAgIHN0YXRpYyBSZWY8QWNjZXNz
aWJpbGl0eVNWR0VsZW1lbnQ+IGNyZWF0ZShSZW5kZXJPYmplY3QmLCBBWE9iamVjdENhY2hlKik7
CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQoKTsKIAogcHJvdGVjdGVkOgot
ICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50KFJlbmRlck9iamVjdCosIEFYT2Jq
ZWN0Q2FjaGUqKTsKKyAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudChSZW5kZXJP
YmplY3QmLCBBWE9iamVjdENhY2hlKik7CiAgICAgQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNo
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYXhPYmplY3RDYWNoZS5nZXQoKTsgfQogICAg
IEFjY2Vzc2liaWxpdHlSb2xlIGRldGVybWluZUFyaWFSb2xlQXR0cmlidXRlKCkgY29uc3QgZmlu
YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U1ZHUm9vdC5jcHAKaW5kZXggYTg5ZGE1ZDI5NWQ0Li5hNzllMzViOGY0MDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3Qu
Y3BwCkBAIC0zOSwxNCArMzksMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1BY2Nlc3Np
YmlsaXR5U1ZHUm9vdDo6QWNjZXNzaWJpbGl0eVNWR1Jvb3QoUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciwgQVhPYmplY3RDYWNoZSogY2FjaGUpCitBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6QWNjZXNzaWJp
bGl0eVNWR1Jvb3QoUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgQVhPYmplY3RDYWNoZSogY2FjaGUp
CiAgICAgOiBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudChyZW5kZXJlciwgY2FjaGUpCiB7CiB9CiAK
IEFjY2Vzc2liaWxpdHlTVkdSb290Ojp+QWNjZXNzaWJpbGl0eVNWR1Jvb3QoKSA9IGRlZmF1bHQ7
CiAKLVJlZjxBY2Nlc3NpYmlsaXR5U1ZHUm9vdD4gQWNjZXNzaWJpbGl0eVNWR1Jvb3Q6OmNyZWF0
ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE9iamVjdENhY2hlKiBjYWNoZSkKK1JlZjxBY2Nl
c3NpYmlsaXR5U1ZHUm9vdD4gQWNjZXNzaWJpbGl0eVNWR1Jvb3Q6OmNyZWF0ZShSZW5kZXJPYmpl
Y3QmIHJlbmRlcmVyLCBBWE9iamVjdENhY2hlKiBjYWNoZSkKIHsKICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBY2Nlc3NpYmlsaXR5U1ZHUm9vdChyZW5kZXJlciwgY2FjaGUpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaApp
bmRleCA2NjBkODdhNWZiNjUuLmQ4YjVlMDkxODFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaApAQCAtMzUsMTMgKzM1LDEz
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWNjZXNzaWJpbGl0eVNWR1Jvb3QgZmlu
YWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8QWNjZXNzaWJpbGl0eVNWR1Jvb3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqLCBBWE9iamVj
dENhY2hlKik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5U1ZHUm9vdD4gY3JlYXRlKFJl
bmRlck9iamVjdCYsIEFYT2JqZWN0Q2FjaGUqKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5
U1ZHUm9vdCgpOwogCiAgICAgdm9pZCBzZXRQYXJlbnQoQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dCopOwogICAgIGJvb2wgaGFzQWNjZXNzaWJsZUNvbnRlbnQoKSBjb25zdDsKIHByaXZhdGU6Ci0g
ICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNWR1Jvb3QoUmVuZGVyT2JqZWN0KiwgQVhPYmplY3RD
YWNoZSopOworICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTVkdSb290KFJlbmRlck9iamVjdCYs
IEFYT2JqZWN0Q2FjaGUqKTsKIAogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVj
dCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCmluZGV4IDExMzk3MDQ2YjMyNC4u
YWU2OWRhNzE0ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTbGlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKQEAgLTQyLDEyICs0MiwxMiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1BY2Nlc3NpYmlsaXR5
U2xpZGVyOjpBY2Nlc3NpYmlsaXR5U2xpZGVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCitBY2Nl
c3NpYmlsaXR5U2xpZGVyOjpBY2Nlc3NpYmlsaXR5U2xpZGVyKFJlbmRlck9iamVjdCYgcmVuZGVy
ZXIpCiAgICAgOiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KHJlbmRlcmVyKQogewogfQogCi1S
ZWY8QWNjZXNzaWJpbGl0eVNsaWRlcj4gQWNjZXNzaWJpbGl0eVNsaWRlcjo6Y3JlYXRlKFJlbmRl
ck9iamVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eVNsaWRlcj4gQWNjZXNzaWJpbGl0
eVNsaWRlcjo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVNsaWRlcihyZW5kZXJlcikpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaAppbmRleCBh
YTFhY2U0ZjdiYzYuLjJhNmNmM2M0MGQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmgKQEAgLTM3LDEzICszNywxMiBAQCBjbGFz
cyBIVE1MSW5wdXRFbGVtZW50OwogCiBjbGFzcyBBY2Nlc3NpYmlsaXR5U2xpZGVyIDogcHVibGlj
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QWNj
ZXNzaWJpbGl0eVNsaWRlcj4gY3JlYXRlKFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyBSZWY8
QWNjZXNzaWJpbGl0eVNsaWRlcj4gY3JlYXRlKFJlbmRlck9iamVjdCYpOwogICAgIHZpcnR1YWwg
fkFjY2Vzc2liaWxpdHlTbGlkZXIoKSA9IGRlZmF1bHQ7CiAKLXByb3RlY3RlZDoKLSAgICBleHBs
aWNpdCBBY2Nlc3NpYmlsaXR5U2xpZGVyKFJlbmRlck9iamVjdCopOwotCiBwcml2YXRlOgorICAg
IGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTbGlkZXIoUmVuZGVyT2JqZWN0Jik7CisKICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQoKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBlbGVtZW50QWNjZXNzaWJpbGl0eUhpdFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBm
aW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGUuY3BwCmluZGV4IDczNWE5ODQyODZmNC4uMGIyMWM1MjdiY2QyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCkBA
IC01NCw3ICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIAotQWNjZXNzaWJpbGl0eVRhYmxlOjpBY2Nlc3NpYmlsaXR5VGFibGUoUmVuZGVy
T2JqZWN0KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlUYWJsZTo6QWNjZXNzaWJpbGl0eVRhYmxl
KFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiAgICAgOiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
KHJlbmRlcmVyKQogICAgICwgbV9oZWFkZXJDb250YWluZXIobnVsbHB0cikKICAgICAsIG1faXNF
eHBvc2FibGUodHJ1ZSkKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGU6
OmluaXQoKQogICAgIG1faXNFeHBvc2FibGUgPSBjb21wdXRlSXNUYWJsZUV4cG9zYWJsZVRocm91
Z2hBY2Nlc3NpYmlsaXR5KCk7CiB9CiAKLVJlZjxBY2Nlc3NpYmlsaXR5VGFibGU+IEFjY2Vzc2li
aWxpdHlUYWJsZTo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJp
bGl0eVRhYmxlPiBBY2Nlc3NpYmlsaXR5VGFibGU6OmNyZWF0ZShSZW5kZXJPYmplY3QmIHJlbmRl
cmVyKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlUYWJsZShyZW5k
ZXJlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlLmgKaW5kZXggNjJiNmU1MGFiNWZkLi4wMWRlNDExNGJhNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaApAQCAtMzgs
NyArMzgsNyBAQCBjbGFzcyBIVE1MVGFibGVFbGVtZW50OwogCiBjbGFzcyBBY2Nlc3NpYmlsaXR5
VGFibGUgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5VGFibGU+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAg
ICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlUYWJsZT4gY3JlYXRlKFJlbmRlck9iamVjdCYpOwog
ICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVRhYmxlPiBjcmVhdGUoTm9kZSYpOwogICAgIHZp
cnR1YWwgfkFjY2Vzc2liaWxpdHlUYWJsZSgpOwogCkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldENlbGxTbG90c0RpcnR5KCk7CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNp
dCBBY2Nlc3NpYmlsaXR5VGFibGUoUmVuZGVyT2JqZWN0Kik7CisgICAgZXhwbGljaXQgQWNjZXNz
aWJpbGl0eVRhYmxlKFJlbmRlck9iamVjdCYpOwogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlU
YWJsZShOb2RlJik7CiAKICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgbV9yb3dzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlQ2VsbC5jcHAKaW5kZXggNDgxMzFjM2Y5NzhlLi42ODEwMWJmODc2ZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxs
LmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKLUFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OkFjY2Vzc2liaWxpdHlU
YWJsZUNlbGwoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlUYWJsZUNlbGw6
OkFjY2Vzc2liaWxpdHlUYWJsZUNlbGwoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKICAgICA6IEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCiB7CiB9CkBAIC01Miw3ICs1Miw3IEBA
IEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OkFjY2Vzc2liaWxpdHlUYWJsZUNlbGwoTm9kZSYgbm9k
ZSkKIAogQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6fkFjY2Vzc2liaWxpdHlUYWJsZUNlbGwoKSA9
IGRlZmF1bHQ7CiAKLVJlZjxBY2Nlc3NpYmlsaXR5VGFibGVDZWxsPiBBY2Nlc3NpYmlsaXR5VGFi
bGVDZWxsOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5
VGFibGVDZWxsPiBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjcmVhdGUoUmVuZGVyT2JqZWN0JiBy
ZW5kZXJlcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5VGFibGVD
ZWxsKHJlbmRlcmVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5oCmluZGV4IDFjNjJiZjkzZTcxMC4uZmM4NjlhMzg2
ZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZUNlbGwuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBBY2Nlc3NpYmlsaXR5VGFi
bGVSb3c7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGwgOiBwdWJsaWMgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5
VGFibGVDZWxsPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3Np
YmlsaXR5VGFibGVDZWxsPiBjcmVhdGUoUmVuZGVyT2JqZWN0Jik7CiAgICAgc3RhdGljIFJlZjxB
Y2Nlc3NpYmlsaXR5VGFibGVDZWxsPiBjcmVhdGUoTm9kZSYpOwogICAgIHZpcnR1YWwgfkFjY2Vz
c2liaWxpdHlUYWJsZUNlbGwoKTsKICAgICBib29sIGlzVGFibGVDZWxsKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQpAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJv
dGVjdGVkOgotICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlUYWJsZUNlbGwoUmVuZGVyT2JqZWN0
Kik7CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbChSZW5kZXJPYmplY3QmKTsK
ICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsKE5vZGUmKTsKIAogICAgIEFjY2Vz
c2liaWxpdHlUYWJsZVJvdyogcGFyZW50Um93KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAKaW5kZXggZDQy
NjFlZjFmMTdmLi4wOGMxMTZhMTY1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAKQEAgLTM4LDcgKzM4LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1BY2Nl
c3NpYmlsaXR5VGFibGVSb3c6OkFjY2Vzc2liaWxpdHlUYWJsZVJvdyhSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQorQWNjZXNzaWJpbGl0eVRhYmxlUm93OjpBY2Nlc3NpYmlsaXR5VGFibGVSb3coUmVu
ZGVyT2JqZWN0JiByZW5kZXJlcikKICAgICA6IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVu
ZGVyZXIpCiB7CiB9CkBAIC01MCw3ICs1MCw3IEBAIEFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6QWNj
ZXNzaWJpbGl0eVRhYmxlUm93KE5vZGUmIG5vZGUpCiAKIEFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6
fkFjY2Vzc2liaWxpdHlUYWJsZVJvdygpID0gZGVmYXVsdDsKIAotUmVmPEFjY2Vzc2liaWxpdHlU
YWJsZVJvdz4gQWNjZXNzaWJpbGl0eVRhYmxlUm93OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5k
ZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5VGFibGVSb3c+IEFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6
Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQWNjZXNzaWJpbGl0eVRhYmxlUm93KHJlbmRlcmVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaAppbmRleCAwNmQ2
ZTg3MmM0OTAuLjdiZmE3YzFlMjk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNz
IEFjY2Vzc2liaWxpdHlUYWJsZTsKIAogY2xhc3MgQWNjZXNzaWJpbGl0eVRhYmxlUm93IDogcHVi
bGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
QWNjZXNzaWJpbGl0eVRhYmxlUm93PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGlj
IFJlZjxBY2Nlc3NpYmlsaXR5VGFibGVSb3c+IGNyZWF0ZShSZW5kZXJPYmplY3QmKTsKICAgICBz
dGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlUYWJsZVJvdz4gY3JlYXRlKE5vZGUmKTsKICAgICB2aXJ0
dWFsIH5BY2Nlc3NpYmlsaXR5VGFibGVSb3coKTsKIApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6
CiAgICAgaW50IGF4Um93SW5kZXgoKSBjb25zdCBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgotICAg
IGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlUYWJsZVJvdyhSZW5kZXJPYmplY3QqKTsKKyAgICBleHBs
aWNpdCBBY2Nlc3NpYmlsaXR5VGFibGVSb3coUmVuZGVyT2JqZWN0Jik7CiAgICAgZXhwbGljaXQg
QWNjZXNzaWJpbGl0eVRhYmxlUm93KE5vZGUmKTsKIAogICAgIEFjY2Vzc2liaWxpdHlSb2xlIGRl
dGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwCmluZGV4IGFmNjFiZGM1Mjk5YS4u
ZDUwMGRmYzAxNTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlUcmVlLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAgICAgCi1BY2Nlc3NpYmlsaXR5VHJlZTo6
QWNjZXNzaWJpbGl0eVRyZWUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlU
cmVlOjpBY2Nlc3NpYmlsaXR5VHJlZShSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIDogQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdChyZW5kZXJlcikKIHsKIH0KQEAgLTUyLDcgKzUyLDcgQEAg
QWNjZXNzaWJpbGl0eVRyZWU6OkFjY2Vzc2liaWxpdHlUcmVlKE5vZGUmIG5vZGUpCiAKIEFjY2Vz
c2liaWxpdHlUcmVlOjp+QWNjZXNzaWJpbGl0eVRyZWUoKSA9IGRlZmF1bHQ7CiAgICAgCi1SZWY8
QWNjZXNzaWJpbGl0eVRyZWU+IEFjY2Vzc2liaWxpdHlUcmVlOjpjcmVhdGUoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5VHJlZT4gQWNjZXNzaWJpbGl0eVRyZWU6OmNy
ZWF0ZShSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEFjY2Vzc2liaWxpdHlUcmVlKHJlbmRlcmVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmgKaW5kZXggZjY0MzA3NjQ4YTRmLi43MWY2
NjM0ZWI2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUcmVlLmgKQEAgLTM1LDEyICszNSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
CiBjbGFzcyBBY2Nlc3NpYmlsaXR5VHJlZSBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlUcmVlPiBj
cmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5VHJlZT4g
Y3JlYXRlKFJlbmRlck9iamVjdCYpOwogICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVRyZWU+
IGNyZWF0ZShOb2RlJik7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVRyZWUoKTsKIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5VHJlZShSZW5kZXJPYmplY3QqKTsKKyAg
ICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5VHJlZShSZW5kZXJPYmplY3QmKTsKICAgICBleHBsaWNp
dCBBY2Nlc3NpYmlsaXR5VHJlZShOb2RlJik7CiAgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0
eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEFjY2Vzc2liaWxpdHlSb2xlIGRldGVy
bWluZUFjY2Vzc2liaWxpdHlSb2xlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlSXRlbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlSXRlbS5jcHAKaW5kZXggZDE5NmNj
YWIxN2I3Li5hYzFjYmEyY2EyYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlSXRlbS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKICAgICAK
LUFjY2Vzc2liaWxpdHlUcmVlSXRlbTo6QWNjZXNzaWJpbGl0eVRyZWVJdGVtKFJlbmRlck9iamVj
dCogcmVuZGVyZXIpCitBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OkFjY2Vzc2liaWxpdHlUcmVlSXRl
bShSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dChyZW5kZXJlcikKIHsKIH0KQEAgLTQ4LDcgKzQ4LDcgQEAgQWNjZXNzaWJpbGl0eVRyZWVJdGVt
OjpBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0oTm9kZSYgbm9kZSkKIAogQWNjZXNzaWJpbGl0eVRyZWVJ
dGVtOjp+QWNjZXNzaWJpbGl0eVRyZWVJdGVtKCkgPSBkZWZhdWx0OwogICAgIAotUmVmPEFjY2Vz
c2liaWxpdHlUcmVlSXRlbT4gQWNjZXNzaWJpbGl0eVRyZWVJdGVtOjpjcmVhdGUoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0+IEFjY2Vzc2liaWxpdHlU
cmVlSXRlbTo6Y3JlYXRlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVRyZWVJdGVtKHJlbmRlcmVyKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlSXRlbS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZUl0ZW0uaApp
bmRleCAwODRlMmYxY2Y2Y2YuLmQ0MDJhODM2YzhhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZUl0ZW0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlSXRlbS5oCkBAIC0zNCwxNCArMzQs
MTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgQWNjZXNzaWJpbGl0eVRyZWVJ
dGVtIGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVRyZWVJdGVtPiBjcmVhdGUoUmVuZGVyT2JqZWN0
Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0+IGNyZWF0ZShSZW5kZXJP
YmplY3QmKTsKICAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlUcmVlSXRlbT4gY3JlYXRlKE5v
ZGUmKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5VHJlZUl0ZW0oKTsKIAogICAgIGJvb2wg
c3VwcG9ydHNDaGVja2VkU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBl
eHBsaWNpdCBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW0oUmVuZGVyT2JqZWN0Kik7CisgICAgZXhwbGlj
aXQgQWNjZXNzaWJpbGl0eVRyZWVJdGVtKFJlbmRlck9iamVjdCYpOwogICAgIGV4cGxpY2l0IEFj
Y2Vzc2liaWxpdHlUcmVlSXRlbShOb2RlJik7CiAgICAgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1
dGVSb2xlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIW1faXNUcmVlSXRlbVZhbGlkOyB9CiAgICAg
QWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKSBvdmVycmlkZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>