<?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>128940</bug_id>
          
          <creation_ts>2014-02-17 15:56:43 -0800</creation_ts>
          <short_desc>Stop using isMainThread() in WebKit2</short_desc>
          <delta_ts>2014-02-17 16:02:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>981690</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-17 15:56:43 -0800</bug_when>
    <thetext>Stop using isMainThread() in WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981691</commentid>
    <comment_count>1</comment_count>
      <attachid>224442</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-17 15:57:53 -0800</bug_when>
    <thetext>Created attachment 224442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981694</commentid>
    <comment_count>2</comment_count>
      <attachid>224442</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-02-17 16:01:32 -0800</bug_when>
    <thetext>Comment on attachment 224442
Patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981696</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-17 16:02:49 -0800</bug_when>
    <thetext>Committed r164255: &lt;http://trac.webkit.org/changeset/164255&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224442</attachid>
            <date>2014-02-17 15:57:53 -0800</date>
            <delta_ts>2014-02-17 16:01:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128940-20140217155753.patch</filename>
            <type>text/plain</type>
            <size>63168</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0MjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjA2OWRlNWRhY2UyNGM3
NTQzYzZlYzE0ZTc4YzQxOTdhODQ3ODQ0ZC4uYjkwOThiYmY5ZjM0MDU5Y2M1ZmE3ZGRkMzE2MmVh
MTAzMzYwMDhjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1NSBAQAogMjAxNC0wMi0xNyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIFN0b3AgdXNpbmcg
aXNNYWluVGhyZWFkKCkgaW4gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI4OTQwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNTk2MzY2
Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5j
ZSBpc01haW5UaHJlYWQoKSBoYXMgYSBkaWZmZXJlbnQgbWVhbmluZyB3aGVuIHRoZSB3ZWIgdGhy
ZWFkIGlzIGVuYWJsZWQgb24gaU9TLAorICAgICAgICBqdXN0IHVzZSBSdW5Mb29wOjppc01haW4o
KSB0byBjaGVjayBpZiB3ZSdyZSBleGVjdXRpbmcgb24gdGhlIG1haW4gdGhyZWFkLgorCisgICAg
ICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRhdGFiYXNlUHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0cyk6CisgICAgICAgIChXZWJLaXQ6
OkRhdGFiYXNlUHJvY2Vzczo6cG9zdERhdGFiYXNlVGFzayk6CisgICAgICAgIChXZWJLaXQ6OkRh
dGFiYXNlUHJvY2Vzczo6cGVyZm9ybU5leHREYXRhYmFzZVRhc2spOgorICAgICAgICAqIERhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6c2h1dGRvd24pOgorICAgICAgICAoV2ViS2l0OjpVbmlx
dWVJREJEYXRhYmFzZTo6c2h1dGRvd25CYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpV
bmlxdWVJREJEYXRhYmFzZTo6ZGlkU2h1dGRvd25CYWNraW5nU3RvcmUpOgorICAgICAgICAoV2Vi
S2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlRGF0YWJhc2UpOgorICAgICAgICAoV2ViS2l0
OjpVbmlxdWVJREJEYXRhYmFzZTo6Z2V0T3JFc3RhYmxpc2hJREJEYXRhYmFzZU1ldGFkYXRhKToK
KyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6Om9wZW5CYWNraW5nU3RvcmVBbmRS
ZWFkTWV0YWRhdGEpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6ZGlkT3Bl
bkJhY2tpbmdTdG9yZUFuZFJlYWRNZXRhZGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpwb3N0VHJhbnNhY3Rpb25PcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpV
bmlxdWVJREJEYXRhYmFzZTo6ZGlkQ29tcGxldGVUcmFuc2FjdGlvbk9wZXJhdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjaGFuZ2VEYXRhYmFzZVZlcnNpb24pOgor
ICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUpOgor
ICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgor
ICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJPYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVJbmRleCk6CisgICAgICAg
IChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVJbmRleCk6CisgICAgICAgIChXZWJL
aXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpVbmlx
dWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0
YWJhc2U6Om9wZW5DdXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6
Y3Vyc29yQWR2YW5jZSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjdXJz
b3JJdGVyYXRlKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmNvdW50KToK
KyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJhbmdlKToKKyAgICAg
ICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6Om9wZW5CYWNraW5nU3RvcmVUcmFuc2FjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpiZWdpbkJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmNvbW1p
dEJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0
YWJhc2U6OnJlc2V0QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpV
bmlxdWVJREJEYXRhYmFzZTo6cm9sbGJhY2tCYWNraW5nU3RvcmVUcmFuc2FjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjaGFuZ2VEYXRhYmFzZVZlcnNpb25JbkJh
Y2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVP
YmplY3RTdG9yZUluQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0
YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlSW5CYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViS2l0
OjpVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJPYmplY3RTdG9yZUluQmFja2luZ1N0b3JlKToKKyAg
ICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4SW5CYWNraW5nU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlSW5kZXhJbkJh
Y2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRSZWNv
cmRJbkJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpn
ZXRSZWNvcmRGcm9tQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0
YWJhc2U6Om9wZW5DdXJzb3JJbkJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1
ZUlEQkRhdGFiYXNlOjphYnNvbHV0ZURhdGFiYXNlRGlyZWN0b3J5KToKKyAgICAgICAgKFdlYktp
dDo6VW5pcXVlSURCRGF0YWJhc2U6OnBvc3RNYWluVGhyZWFkVGFzayk6CisgICAgICAgIChXZWJL
aXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtTmV4dE1haW5UaHJlYWRUYXNrKToKKyAgICAg
ICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OnBvc3REYXRhYmFzZVRhc2spOgorICAgICAg
ICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybU5leHREYXRhYmFzZVRhc2spOgor
ICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFi
YXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVEYXRh
YmFzZUlkKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVT
UUxpdGU6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlKToKKyAgICAgICAgKFdl
YktpdDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6On5VbmlxdWVJREJEYXRh
YmFzZUJhY2tpbmdTdG9yZVNRTGl0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFi
YXNlQmFja2luZ1N0b3JlU1FMaXRlOjpjcmVhdGVBbmRQb3B1bGF0ZUluaXRpYWxNZXRhZGF0YSk6
CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpl
eHRyYWN0RXhpc3RpbmdNZXRhZGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFi
YXNlQmFja2luZ1N0b3JlU1FMaXRlOjpvcGVuU1FMaXRlRGF0YWJhc2VBdFBhdGgpOgorICAgICAg
ICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Z2V0T3JFc3Rh
Ymxpc2hNZXRhZGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2lu
Z1N0b3JlU1FMaXRlOjplc3RhYmxpc2hUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlVu
aXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpiZWdpblRyYW5zYWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmNvbW1p
dFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5n
U3RvcmVTUUxpdGU6OnJlc2V0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJ
REJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6cm9sbGJhY2tUcmFuc2FjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpjaGFuZ2VE
YXRhYmFzZVZlcnNpb24pOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tp
bmdTdG9yZVNRTGl0ZTo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpVbmlx
dWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAg
ICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Y2xlYXJP
YmplY3RTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0
b3JlU1FMaXRlOjpjcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFi
YXNlQmFja2luZ1N0b3JlU1FMaXRlOjpkZWxldGVJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OlVu
aXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpnZW5lcmF0ZUtleU51bWJlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjp1cGRh
dGVLZXlHZW5lcmF0b3JOdW1iZXIpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFz
ZUJhY2tpbmdTdG9yZVNRTGl0ZTo6a2V5RXhpc3RzSW5PYmplY3RTdG9yZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpwdXRSZWNvcmQpOgor
ICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6cHV0
SW5kZXhSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdT
dG9yZVNRTGl0ZTo6Z2V0SW5kZXhSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJE
YXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6ZGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYktp
dDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmRlbGV0ZVJhbmdlKToKKyAg
ICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmdldEtl
eVJlY29yZEZyb21PYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFi
YXNlQmFja2luZ1N0b3JlU1FMaXRlOjpnZXRLZXlSYW5nZVJlY29yZEZyb21PYmplY3RTdG9yZSk6
CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpj
b3VudCk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FM
aXRlOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2VCYWNr
aW5nU3RvcmVTUUxpdGU6OmFkdmFuY2VDdXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJ
REJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6aXRlcmF0ZUN1cnNvcik6CisgICAgICAgIChX
ZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpub3RpZnlDdXJzb3Jz
T2ZDaGFuZ2VzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9i
UmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQmxvYlJlZ2lzdHJ5OjpzaGFy
ZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0hvc3RSZWNvcmQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpIb3N0UmVjb3JkOjpzY2hlZHVsZVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKFdl
YktpdDo6SG9zdFJlY29yZDo6YWRkTG9hZGVySW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJLaXQ6
Okhvc3RSZWNvcmQ6OnJlbW92ZUxvYWRlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnJlbW92ZUxvYWRlcik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnJlY2VpdmVkUmVkaXJlY3QpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpyZW1vdmVTY2hlZHVsZWRMb2Fk
ZXJzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6fk5ldHdv
cmtSZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNsZWFu
dXApOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0KToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RBc3lu
Yyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2FuQXV0aGVudGlj
YXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291
cmNlTG9hZGVyOjpzZXRIb3N0UmVjb3JkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291
cmNlTG9hZGVyOjpob3N0UmVjb3JkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvRGlz
a0NhY2hlTW9uaXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6RGlza0NhY2hlTW9uaXRvcjo6RGlz
a0NhY2hlTW9uaXRvcik6CisgICAgICAgICogU2hhcmVkL0FzeW5jUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmdlbmVyYXRlUmVxdWVzdElEKToKKyAgICAgICAgKiBTaGFyZWQvQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2Vu
ZXJhdGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUlEKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVu
dGljYXRpb25NYW5hZ2VyOjplc3RhYmxpc2hJZGVudGlmaWVyRm9yQ2hhbGxlbmdlKToKKyAgICAg
ICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjp1c2VDcmVkZW50aWFsRm9yQ2hhbGxl
bmdlKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpjb250aW51ZVdp
dGhvdXRDcmVkZW50aWFsRm9yQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGlj
YXRpb25NYW5hZ2VyOjpjYW5jZWxDaGFsbGVuZ2UpOgorICAgICAgICAqIFNoYXJlZC9Eb3dubG9h
ZHMvbWFjL0Rvd25sb2FkTWFjLm1tOgorICAgICAgICAoZGlzcGF0Y2hPbk1haW5UaHJlYWQpOgor
ICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOUE9iamVjdFByb3h5Ojp+TlBPYmplY3RQcm94eSk6CisgICAgICAgICogU2hhcmVkL1Bs
dWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTW9kdWxlTWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpnZXRQbHVnaW5JbmZvRnJvbUNhcmJvblJlc291cmNlcyk6CisgICAgICAgICogU2hh
cmVkL1Nlc3Npb25UcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6c3RhdGljU2Vzc2lvbk1h
cCk6CisgICAgICAgIChXZWJLaXQ6OnN0b3JhZ2VTZXNzaW9uVG9JRCk6CisgICAgICAgIChXZWJL
aXQ6OmlkZW50aWZpZXJCYXNlKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OmRl
c3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OnNldElkZW50
aWZpZXJCYXNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHA6CisgICAgICAg
IChBUEk6OmdlbmVyYXRlSUQpOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpkZWZhdWx0U2Vzc2lv
bik6CisgICAgICAgIChBUEk6OlNlc3Npb246OmxlZ2FjeVByaXZhdGVTZXNzaW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OmRpc3BhdGNoQ29va2llc0RpZENoYW5nZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRmFjdG9yeUJhY2tlbmQ6Om9wZW4pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5QmFja2VuZDo6ZGVsZXRlRGF0YWJhc2UpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
Zmllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OmRp
c3BhdGNoV2hlZWxFdmVudCk6CisKKzIwMTQtMDItMTcgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBSZW1vdmUgdmlldyBzb3VyY2UgY29kZQogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MjMzCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKaW5k
ZXggZTEzNGVmN2QxMzBjZWI5MGYzYmE1Y2E4OTFjN2ZmMjQwNDQzODcwNy4uYTRjYmNmYWZlZDVh
MmI3ODRhYmYwYTBhZDE0Nzk3MGRjZDA2MDk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCB2
b2lkIERhdGFiYXNlUHJvY2Vzczo6ZW5zdXJlSW5kZXhlZERhdGFiYXNlUmVsYXRpdmVQYXRoRXhp
c3RzKGNvbnN0IFN0cmluZyYgcmVsYQogCiB2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZW5zdXJlUGF0
aEV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBpZiAoIW1ha2VBbGxE
aXJlY3RvcmllcyhwYXRoKSkKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gbWFrZSBhbGwg
ZGlyZWN0b3JpZXMgZm9yIHBhdGggJyVzJyIsIHBhdGgudXRmOCgpLmRhdGEoKSk7CkBAIC0xMjQs
NyArMTI0LDcgQEAgU3RyaW5nIERhdGFiYXNlUHJvY2Vzczo6YWJzb2x1dGVJbmRleGVkRGF0YWJh
c2VQYXRoRnJvbURhdGFiYXNlUmVsYXRpdmVQYXRoKGNvbnMKIAogdm9pZCBEYXRhYmFzZVByb2Nl
c3M6OnBvc3REYXRhYmFzZVRhc2soc3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFzaykKIHsK
LSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CiAKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CiAKQEAg
LTEzNSw3ICsxMzUsNyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6cG9zdERhdGFiYXNlVGFzayhz
dGQ6OnVuaXF1ZV9wdHI8QXN5bmNUYXNrPiB0YXNrKQogCiB2b2lkIERhdGFiYXNlUHJvY2Vzczo6
cGVyZm9ybU5leHREYXRhYmFzZVRhc2soKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PEFzeW5jVGFzaz4gdGFzazsKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4
IGM3NTc4YTkxN2Y1MjZhZGFiNjEwMjk2MTZhYTZkYWI2ZWEwMGE5M2UuLmJjMjMxZDBkODU1MDBi
MGQxOTY5ZTgxMWY4YWJiZGNhOWQ3OTc2NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3Bw
CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6dW5yZWdpc3RlckNv
bm5lY3Rpb24oRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbiYgY29ubmUKIAogdm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6c2h1dGRvd24oVW5pcXVlSURCRGF0YWJhc2VTaHV0ZG93blR5cGUgdHlw
ZSkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CiAKICAgICBpZiAoIW1fYWNjZXB0aW5nTmV3UmVxdWVzdHMpCiAgICAgICAgIHJl
dHVybjsKQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpzaHV0ZG93
bihVbmlxdWVJREJEYXRhYmFzZVNodXRkb3duVHlwZSB0eXBlKQogCiB2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjpzaHV0ZG93bkJhY2tpbmdTdG9yZShVbmlxdWVJREJEYXRhYmFzZVNodXRkb3duVHlw
ZSB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5KQogewotICAgIEFTU0VSVCgh
aXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAg
bV9iYWNraW5nU3RvcmUuY2xlYXIoKTsKIApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OnNodXRkb3duQmFja2luZ1N0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRv
d25UeXBlIHR5cGUsCiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFNodXRkb3duQmFja2lu
Z1N0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlIHR5cGUpCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAg
Ly8gQmFsYW5jZWQgYnkgYSByZWYgaW4gOjpzaHV0ZG93bigpCiAgICAgUmVmUHRyPFVuaXF1ZUlE
QkRhdGFiYXNlPiBwcm90ZWN0b3IoYWRvcHRSZWYodGhpcykpOwpAQCAtMTg0LDcgKzE4NCw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFNodXRkb3duQmFja2luZ1N0b3JlKFVuaXF1ZUlE
QkRhdGFiYXNlU2h1dGRvd25UeXBlIHR5CiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0
ZURhdGFiYXNlKHN0ZDo6ZnVuY3Rpb248dm9pZChib29sKT4gc3VjY2Vzc0NhbGxiYWNrKQogewot
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIAogICAgIGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cykgewogICAgICAgICAvLyBTb21l
b25lIGVsc2UgaGFzIGFscmVhZHkgc2h1dGRvd24gdGhpcyBkYXRhYmFzZSwgc28gd2UgY2FuJ3Qg
cmVxdWVzdCBhIGRlbGV0ZS4KQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpkZWxldGVEYXRhYmFzZShzdGQ6OmZ1bmN0aW9uPHZvaWQoYm9vbCk+IHN1Y2Nlc3NDYWxs
YmFjawogCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRPckVzdGFibGlzaElEQkRhdGFiYXNl
TWV0YWRhdGEoc3RkOjpmdW5jdGlvbjx2b2lkKGJvb2wsIGNvbnN0IElEQkRhdGFiYXNlTWV0YWRh
dGEmKT4gY29tcGxldGlvbkNhbGxiYWNrKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlmICghbV9hY2NlcHRpbmdO
ZXdSZXF1ZXN0cykgewogICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2soZmFsc2UsIElEQkRhdGFi
YXNlTWV0YWRhdGEoKSk7CkBAIC0yNDcsNyArMjQ3LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6Z2V0T3JFc3RhYmxpc2hJREJEYXRhYmFzZU1ldGFkYXRhKHN0ZDo6ZnVuY3Rpb248dm9pZChi
b28KIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkJhY2tpbmdTdG9yZUFuZFJlYWRNZXRh
ZGF0YShjb25zdCBVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZpZXImIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnkpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKCFtX2JhY2tp
bmdTdG9yZSk7CiAKICAgICBpZiAobV9pbk1lbW9yeSkgewpAQCAtMjYzLDcgKzI2Myw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5CYWNraW5nU3RvcmVBbmRSZWFkTWV0YWRhdGEoY29u
c3QgVW5pcXVlSURCRGF0YWJhc2VJCiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZE9wZW5C
YWNraW5nU3RvcmVBbmRSZWFkTWV0YWRhdGEoY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0
YWRhdGEsIGJvb2wgc3VjY2VzcykKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKCFtX21ldGFkYXRhKTsKIAog
ICAgIG1fZGlkR2V0TWV0YWRhdGFGcm9tQmFja2luZ1N0b3JlID0gdHJ1ZTsKQEAgLTMwNCw3ICsz
MDQsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyb2xsYmFja1RyYW5zYWN0aW9uKGNvbnN0
IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbgogCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
Ojpwb3N0VHJhbnNhY3Rpb25PcGVyYXRpb24oY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNUYXNrPiB0YXNrLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQoYm9vbCk+IHN1Y2Nlc3NDYWxsYmFjaykKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBpZiAoIW1fYWNj
ZXB0aW5nTmV3UmVxdWVzdHMpIHsKICAgICAgICAgc3VjY2Vzc0NhbGxiYWNrKGZhbHNlKTsKQEAg
LTMzMCw3ICszMzAsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0VHJhbnNhY3Rpb25P
cGVyYXRpb24oY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3RpbwogCiB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpkaWRDb21wbGV0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKGNvbnN0IElEQklkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgYm9vbCBzdWNjZXNzKQogewotICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAg
IFJlZlB0cjxBc3luY1JlcXVlc3Q+IHJlcXVlc3QgPSBtX3BlbmRpbmdUcmFuc2FjdGlvblJlcXVl
c3RzLnRha2UodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICBpZiAoIXJlcXVlc3QpCkBAIC0z
NDEsNyArMzQxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkQ29tcGxldGVUcmFuc2Fj
dGlvbk9wZXJhdGlvbihjb25zdCBJREJJZGVudGlmaWVyJiB0cmEKIAogdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6Y2hhbmdlRGF0YWJhc2VWZXJzaW9uKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgbmV3VmVyc2lvbiwgc3RkOjpmdW5jdGlvbjx2b2lk
KGJvb2wpPiBzdWNjZXNzQ2FsbGJhY2spCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKCFtX2FjY2VwdGluZ05l
d1JlcXVlc3RzKSB7CiAgICAgICAgIHN1Y2Nlc3NDYWxsYmFjayhmYWxzZSk7CkBAIC00MDYsNyAr
NDA2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkQ29tcGxldGVCb29sUmVxdWVzdCh1
aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgc3VjY2VzcykKIAogdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBtZXRhZGF0YSwgc3RkOjpmdW5j
dGlvbjx2b2lkKGJvb2wpPiBzdWNjZXNzQ2FsbGJhY2spCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKCFtX2Fj
Y2VwdGluZ05ld1JlcXVlc3RzKSB7CiAgICAgICAgIHN1Y2Nlc3NDYWxsYmFjayhmYWxzZSk7CkBA
IC00MzQsNyArNDM0LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3Rv
cmUoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGkKIAogdm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIHN0ZDo6ZnVuY3Rpb248dm9p
ZChib29sKT4gc3VjY2Vzc0NhbGxiYWNrKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlmICghbV9hY2NlcHRpbmdO
ZXdSZXF1ZXN0cykgewogICAgICAgICBzdWNjZXNzQ2FsbGJhY2soZmFsc2UpOwpAQCAtNDYxLDcg
KzQ2MSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0
IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpCiAKIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OmNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIHN0ZDo6ZnVuY3Rpb248dm9pZChib29sKT4g
c3VjY2Vzc0NhbGxiYWNrKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0
cykgewogICAgICAgICBzdWNjZXNzQ2FsbGJhY2soZmFsc2UpOwpAQCAtNDg0LDcgKzQ4NCw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmCiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0
ZUluZGV4KGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRf
dCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJJbmRleE1ldGFkYXRhJiBtZXRhZGF0YSwgc3RkOjpm
dW5jdGlvbjx2b2lkKGJvb2wpPiBzdWNjZXNzQ2FsbGJhY2spCiB7Ci0gICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKCFt
X2FjY2VwdGluZ05ld1JlcXVlc3RzKSB7CiAgICAgICAgIHN1Y2Nlc3NDYWxsYmFjayhmYWxzZSk7
CkBAIC01MTgsNyArNTE4LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlSW5kZXgo
Y29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLAogCiB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpkZWxldGVJbmRleChjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRleElELCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoYm9vbCk+IHN1Y2Nlc3NDYWxsYmFjaykKIHsKLSAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBpZiAo
IW1fYWNjZXB0aW5nTmV3UmVxdWVzdHMpIHsKICAgICAgICAgc3VjY2Vzc0NhbGxiYWNrKGZhbHNl
KTsKQEAgLTU1Miw3ICs1NTIsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVJbmRl
eChjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsCiAKIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OnB1dFJlY29yZChjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgSURCS2V5RGF0YSYga2V5
RGF0YSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiB2YWx1ZSwgaW50NjRfdCBwdXRNb2RlLCBj
b25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SURzLCBjb25zdCBWZWN0b3I8VmVjdG9yPElEQktl
eURhdGE+PiYgaW5kZXhLZXlzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgSURCS2V5RGF0YSYs
IHVpbnQzMl90LCBjb25zdCBTdHJpbmcmKT4gY2FsbGJhY2spCiB7Ci0gICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKCFt
X2FjY2VwdGluZ05ld1JlcXVlc3RzKSB7CiAgICAgICAgIGNhbGxiYWNrKElEQktleURhdGEoKSwg
SU5WQUxJRF9TVEFURV9FUlIsICJVbmFibGUgdG8gcHV0IHJlY29yZCBpbnRvIGRhdGFiYXNlIGJl
Y2F1c2UgaXQgaGFzIHNodXQgZG93biIpOwpAQCAtNTc1LDcgKzU3NSw3IEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OnB1dFJlY29yZChjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGluCiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZChjb25zdCBJ
REJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
RCwgaW50NjRfdCBpbmRleElELCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlRGF0YSwg
SW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIHN0ZDo6ZnVuY3Rpb248dm9pZChjb25z
dCBJREJHZXRSZXN1bHQmLCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJik+IGNhbGxiYWNrKQogewot
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIAogICAgIGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cykgewogICAgICAgICBjYWxsYmFj
ayhJREJHZXRSZXN1bHQoKSwgSU5WQUxJRF9TVEFURV9FUlIsICJVbmFibGUgdG8gZ2V0IHJlY29y
ZCBmcm9tIGRhdGFiYXNlIGJlY2F1c2UgaXQgaGFzIHNodXQgZG93biIpOwpAQCAtNTk4LDcgKzU5
OCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZChjb25zdCBJREJJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGluCiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
Om9wZW5DdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBp
bnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwgSW5kZXhlZERCOjpDdXJzb3JE
aXJlY3Rpb24gY3Vyc29yRGlyZWN0aW9uLCBJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29yVHlw
ZSwgSURCRGF0YWJhc2VCYWNrZW5kOjpUYXNrVHlwZSB0YXNrVHlwZSwgY29uc3QgSURCS2V5UmFu
Z2VEYXRhJiBrZXlSYW5nZURhdGEsIHN0ZDo6ZnVuY3Rpb248dm9pZChpbnQ2NF90LCBjb25zdCBJ
REJLZXlEYXRhJiwgY29uc3QgSURCS2V5RGF0YSYsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwg
dWludDMyX3QsIGNvbnN0IFN0cmluZyYpPiBjYWxsYmFjaykKIHsKLSAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBpZiAoIW1f
YWNjZXB0aW5nTmV3UmVxdWVzdHMpIHsKICAgICAgICAgY2FsbGJhY2soMCwgbnVsbHB0ciwgbnVs
bHB0ciwgbnVsbHB0ciwgSU5WQUxJRF9TVEFURV9FUlIsICJVbmFibGUgdG8gb3BlbiBjdXJzb3Ig
aW4gZGF0YWJhc2UgYmVjYXVzZSBpdCBoYXMgc2h1dCBkb3duIik7CkBAIC02MjEsNyArNjIxLDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNvcihjb25zdCBJREJJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGkKIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3Vy
c29yQWR2YW5jZShjb25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCB1aW50NjRf
dCBjb3VudCwgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IElEQktleURhdGEmLCBjb25zdCBJREJL
ZXlEYXRhJiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCB1aW50MzJfdCwgY29uc3QgU3RyaW5n
Jik+IGNhbGxiYWNrKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cykg
ewogICAgICAgICBjYWxsYmFjayhudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJTlZBTElEX1NU
QVRFX0VSUiwgIlVuYWJsZSB0byBhZHZhbmNlIGN1cnNvciBpbiBkYXRhYmFzZSBiZWNhdXNlIGl0
IGhhcyBzaHV0IGRvd24iKTsKQEAgLTY0Miw3ICs2NDIsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpjdXJzb3JBZHZhbmNlKGNvbnN0IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIs
IHVpbgogCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjdXJzb3JJdGVyYXRlKGNvbnN0IElEQklk
ZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmIGtleSwgc3RkOjpm
dW5jdGlvbjx2b2lkKGNvbnN0IElEQktleURhdGEmLCBjb25zdCBJREJLZXlEYXRhJiwgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+LCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJik+IGNhbGxiYWNrKQog
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKIAogICAgIGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cykgewogICAgICAgICBjYWxs
YmFjayhudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJTlZBTElEX1NUQVRFX0VSUiwgIlVuYWJs
ZSB0byBpdGVyYXRlIGN1cnNvciBpbiBkYXRhYmFzZSBiZWNhdXNlIGl0IGhhcyBzaHV0IGRvd24i
KTsKQEAgLTY2Myw3ICs2NjMsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjdXJzb3JJdGVy
YXRlKGNvbnN0IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbgogCiB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpjb3VudChjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRleElELCBjb25zdCBJ
REJLZXlSYW5nZURhdGEmIGtleVJhbmdlRGF0YSwgc3RkOjpmdW5jdGlvbjx2b2lkKGludDY0X3Qs
IHVpbnQzMl90LCBjb25zdCBTdHJpbmcmKT4gY2FsbGJhY2spCiB7Ci0gICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKCFt
X2FjY2VwdGluZ05ld1JlcXVlc3RzKSB7CiAgICAgICAgIGNhbGxiYWNrKDAsIElOVkFMSURfU1RB
VEVfRVJSLCAiVW5hYmxlIHRvIGdldCBjb3VudCBmcm9tIGRhdGFiYXNlIGJlY2F1c2UgaXQgaGFz
IHNodXQgZG93biIpOwpAQCAtNjg0LDcgKzY4NCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OmNvdW50KGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRf
CiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJhbmdlKGNvbnN0IElEQklkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJ
REJLZXlSYW5nZURhdGEmIGtleVJhbmdlRGF0YSwgc3RkOjpmdW5jdGlvbjx2b2lkKHVpbnQzMl90
LCBjb25zdCBTdHJpbmcmKT4gY2FsbGJhY2spCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKCFtX2FjY2VwdGlu
Z05ld1JlcXVlc3RzKSB7CiAgICAgICAgIGNhbGxiYWNrKElOVkFMSURfU1RBVEVfRVJSLCAiVW5h
YmxlIHRvIGRlbGV0ZVJhbmdlIGZyb20gZGF0YWJhc2UgYmVjYXVzZSBpdCBoYXMgc2h1dCBkb3du
Iik7CkBAIC03MDUsNyArNzA1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlUmFu
Z2UoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLAogCiB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpvcGVuQmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oY29uc3QgSURCSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9i
amVjdFN0b3JlSURzLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBtb2RlKQogewotICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
ICAgIEFTU0VSVChtX2JhY2tpbmdTdG9yZSk7CiAKICAgICBib29sIHN1Y2Nlc3MgPSBtX2JhY2tp
bmdTdG9yZS0+ZXN0YWJsaXNoVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmpl
Y3RTdG9yZUlEcywgbW9kZSk7CkBAIC03MTUsNyArNzE1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6b3BlbkJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKGNvbnN0IElEQklkZW50aWZpZXImIHRy
YW5zYWMKIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6YmVnaW5CYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbihjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCiB7Ci0gICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7
CiAgICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlKTsKIAogICAgIGJvb2wgc3VjY2VzcyA9IG1fYmFj
a2luZ1N0b3JlLT5iZWdpblRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CkBAIC03
MjUsNyArNzI1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6YmVnaW5CYWNraW5nU3RvcmVU
cmFuc2FjdGlvbihjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2EKIAogdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6Y29tbWl0QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oY29uc3QgSURCSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIEFTU0VSVChtX2JhY2tpbmdT
dG9yZSk7CiAKICAgICBib29sIHN1Y2Nlc3MgPSBtX2JhY2tpbmdTdG9yZS0+Y29tbWl0VHJhbnNh
Y3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKQEAgLTczNSw3ICs3MzUsNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpjb21taXRCYWNraW5nU3RvcmVUcmFuc2FjdGlvbihjb25zdCBJREJJ
ZGVudGlmaWVyJiB0cmFucwogCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZXNldEJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
cikKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9iYWNraW5nU3RvcmUpOwogCiAgICAgYm9vbCBzdWNj
ZXNzID0gbV9iYWNraW5nU3RvcmUtPnJlc2V0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlm
aWVyKTsKQEAgLTc0NSw3ICs3NDUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZXNldEJh
Y2tpbmdTdG9yZVRyYW5zYWN0aW9uKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYQogCiB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpyb2xsYmFja0JhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKGNvbnN0
IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKIHsKLSAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NF
UlQobV9iYWNraW5nU3RvcmUpOwogCiAgICAgYm9vbCBzdWNjZXNzID0gbV9iYWNraW5nU3RvcmUt
PnJvbGxiYWNrVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKQEAgLTc1NSw3ICs3
NTUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyb2xsYmFja0JhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uKGNvbnN0IElEQklkZW50aWZpZXImIHRyYQogCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjpjaGFuZ2VEYXRhYmFzZVZlcnNpb25JbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgbmV3
VmVyc2lvbikKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9iYWNraW5nU3RvcmUpOwogCiAgICAgYm9v
bCBzdWNjZXNzID0gbV9iYWNraW5nU3RvcmUtPmNoYW5nZURhdGFiYXNlVmVyc2lvbih0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIG5ld1ZlcnNpb24pOwpAQCAtNzY1LDcgKzc2NSw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmNoYW5nZURhdGFiYXNlVmVyc2lvbkluQmFja2luZ1N0b3JlKHVpbnQ2
NF90IHJlcXVlc3RJRCwKIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3Rv
cmVJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgbWV0
YWRhdGEpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlKTsKIAogICAgIGJvb2wg
c3VjY2VzcyA9IG1fYmFja2luZ1N0b3JlLT5jcmVhdGVPYmplY3RTdG9yZSh0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIG1ldGFkYXRhKTsKQEAgLTc3NSw3ICs3NzUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZUluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgY29ucwogCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVPYmplY3RTdG9yZUluQmFj
a2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQpCiB7Ci0gICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNT
RVJUKG1fYmFja2luZ1N0b3JlKTsKIAogICAgIGJvb2wgc3VjY2VzcyA9IG1fYmFja2luZ1N0b3Jl
LT5kZWxldGVPYmplY3RTdG9yZSh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSUQp
OwpAQCAtNzg1LDcgKzc4NSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVj
dFN0b3JlSW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBjb25zCiAKIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0U3RvcmVJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCBy
ZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50
NjRfdCBvYmplY3RTdG9yZUlEKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIEFTU0VSVChtX2JhY2tpbmdTdG9yZSk7
CiAKICAgICBib29sIHN1Y2Nlc3MgPSBtX2JhY2tpbmdTdG9yZS0+Y2xlYXJPYmplY3RTdG9yZSh0
cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSUQpOwpAQCAtNzk1LDcgKzc5NSw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0U3RvcmVJbkJhY2tpbmdTdG9yZSh1
aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0CiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0
ZUluZGV4SW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBJREJJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3Qg
SURCSW5kZXhNZXRhZGF0YSYgbWV0YWRhdGEpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKG1fYmFja2lu
Z1N0b3JlKTsKIAogICAgIGJvb2wgc3VjY2VzcyA9IG1fYmFja2luZ1N0b3JlLT5jcmVhdGVJbmRl
eCh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSUQsIG1ldGFkYXRhKTsKQEAgLTgw
NSw3ICs4MDUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVJbmRleEluQmFja2lu
Z1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURCSQogCiB2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjpkZWxldGVJbmRleEluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29u
c3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0
b3JlSUQsIGludDY0X3QgaW5kZXhJRCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9iYWNraW5nU3Rv
cmUpOwogCiAgICAgYm9vbCBzdWNjZXNzID0gbV9iYWNraW5nU3RvcmUtPmRlbGV0ZUluZGV4KHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJRCwgaW5kZXhJRCk7CkBAIC04MTUsNyAr
ODE1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlSW5kZXhJbkJhY2tpbmdTdG9y
ZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQkkKIAogdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6cHV0UmVjb3JkSW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBJREJJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbiwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2Jq
ZWN0U3RvcmVNZXRhZGF0YSwgY29uc3QgSURCS2V5RGF0YSYgaW5wdXRLZXlEYXRhLCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIHZhbHVlLCBpbnQ2NF90IHB1dE1vZGUsIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYgaW5kZXhJRHMsIGNvbnN0IFZlY3RvcjxWZWN0b3I8SURCS2V5RGF0YT4+JiBpbmRleEtl
eXMpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CiAgICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlKTsKIAogICAgIGJvb2wga2V5
V2FzR2VuZXJhdGVkID0gZmFsc2U7CkBAIC04ODgsNyArODg4LDcgQEAgdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6ZGlkUHV0UmVjb3JkSW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBj
b25zdCBJREIKIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkRnJvbUJhY2tpbmdT
dG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9u
LCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZU1ldGFkYXRhLCBpbnQ2
NF90IGluZGV4SUQsIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2VEYXRhLCBJbmRleGVk
REI6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9iYWNraW5n
U3RvcmUpOwogCiAgICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9IGtleVJhbmdlRGF0
YS5tYXliZUNyZWF0ZUlEQktleVJhbmdlKCk7CkBAIC05NDksNyArOTQ5LDcgQEAgdm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6ZGlkR2V0UmVjb3JkRnJvbUJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1
ZXN0SUQsIGNvbnN0IEkKIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNvckluQmFj
a2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwg
SW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gY3Vyc29yRGlyZWN0aW9uLCBJbmRleGVkREI6OkN1
cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNrZW5kOjpUYXNrVHlwZSB0YXNrVHlw
ZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSkKIHsKLSAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQo
bV9iYWNraW5nU3RvcmUpOwogCiAgICAgaW50NjRfdCBjdXJzb3JJRCA9IDA7CkBAIC0xMDY4LDEz
ICsxMDY4LDEzIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZERlbGV0ZVJhbmdlSW5CYWNr
aW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCB1aW50MzJfCiAKIFN0cmluZyBVbmlxdWVJREJE
YXRhYmFzZTo6YWJzb2x1dGVEYXRhYmFzZURpcmVjdG9yeSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIHJl
dHVybiBEYXRhYmFzZVByb2Nlc3M6OnNoYXJlZCgpLmFic29sdXRlSW5kZXhlZERhdGFiYXNlUGF0
aEZyb21EYXRhYmFzZVJlbGF0aXZlUGF0aChtX2RhdGFiYXNlUmVsYXRpdmVEaXJlY3RvcnkpOwog
fQogCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0TWFpblRocmVhZFRhc2soc3RkOjp1bmlx
dWVfcHRyPEFzeW5jVGFzaz4gdGFzaywgRGF0YWJhc2VUYXNrVHlwZSB0YXNrVHlwZSkKIHsKLSAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIAogICAgIGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cyAmJiB0YXNrVHlwZSA9PSBEYXRh
YmFzZVRhc2tUeXBlOjpOb3JtYWwpCiAgICAgICAgIHJldHVybjsKQEAgLTEwOTAsNyArMTA5MCw3
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBvc3RNYWluVGhyZWFkVGFzayhzdGQ6OnVuaXF1
ZV9wdHI8QXN5bmNUYXNrPiB0YXNrLCBEYXRhCiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBl
cmZvcm1OZXh0TWFpblRocmVhZFRhc2soKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIC8vIEJhbGFuY2VkIGJ5IGEg
cmVmKCkgaW4gOjpwb3N0TWFpblRocmVhZFRhc2sKICAgICBSZWZQdHI8VW5pcXVlSURCRGF0YWJh
c2U+IHByb3RlY3RvcihhZG9wdFJlZih0aGlzKSk7CkBAIC0xMTIxLDcgKzExMjEsNyBAQCBib29s
IFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtTmV4dE1haW5UaHJlYWRUYXNrV2l0aG91dEFkb3B0
UmVmKCkKIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cG9zdERhdGFiYXNlVGFzayhzdGQ6OnVu
aXF1ZV9wdHI8QXN5bmNUYXNrPiB0YXNrLCBEYXRhYmFzZVRhc2tUeXBlIHRhc2tUeXBlKQogewot
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIAogICAgIGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cyAmJiB0YXNrVHlwZSA9PSBEYXRh
YmFzZVRhc2tUeXBlOjpOb3JtYWwpCiAgICAgICAgIHJldHVybjsKQEAgLTExMzUsNyArMTEzNSw3
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBvc3REYXRhYmFzZVRhc2soc3RkOjp1bmlxdWVf
cHRyPEFzeW5jVGFzaz4gdGFzaywgRGF0YWJhCiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBl
cmZvcm1OZXh0RGF0YWJhc2VUYXNrKCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIC8vIEl0IGlzIHBvc3NpYmxl
IHRoYXQgdGhpcyBkYXRhYmFzZSBtaWdodCBiZSBzaHV0dGluZyBkb3duIG9uIHRoZSBtYWluIHRo
cmVhZC4KICAgICAvLyBJbiB0aGlzIGNhc2UsIGltbWVkaWF0ZWx5IGFmdGVyIHJlbGVhc2luZyBt
X2RhdGFiYXNlVGFza011dGV4LCB0aGlzIGRhdGFiYXNlIG1pZ2h0IGdldCBkZWxldGVkLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUv
VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwIGIvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5n
U3RvcmVTUUxpdGUuY3BwCmluZGV4IDczZjYwMzAzZWYwY2Y0Y2E1ZjNlZjQ4Y2E3YzQ5ZjI0MjU0
OWFhYzAuLmNmMzgwYmEzNjY4OGZjNDkzOWU3NDg1ZDNkYzhhN2ZiMDNmYzJlZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1
ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdT
dG9yZVNRTGl0ZS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NRTGl0
ZURhdGFiYXNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TUUxpdGVTdGF0ZW1lbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgaW50NjRfdCBnZW5l
cmF0ZURhdGFiYXNlSWQoKQogewogICAgIHN0YXRpYyBpbnQ2NF90IGRhdGFiYXNlSUQgPSAwOwog
Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgcmV0dXJuICsrZGF0YWJhc2VJRDsKIH0KIApAQCAtNjYsMTIgKzY2LDEyIEBA
IFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpVbmlxdWVJREJEYXRhYmFzZUJh
Y2tpbmdTdG9yZVNRTGl0ZShjb25zdCBVCiAgICAgLCBtX2Fic29sdXRlRGF0YWJhc2VEaXJlY3Rv
cnkoZGF0YWJhc2VEaXJlY3RvcnkpCiB7CiAgICAgLy8gVGhlIGJhY2tpbmcgc3RvcmUgaXMgbWVh
bnQgdG8gYmUgY3JlYXRlZCBhbmQgdXNlZCBlbnRpcmVseSBvbiBhIGJhY2tncm91bmQgdGhyZWFk
LgotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogfQogCiBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6flVuaXF1
ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlKCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIG1fdHJhbnNh
Y3Rpb25zLmNsZWFyKCk7CiAgICAgbV9zcWxpdGVEQiA9IG51bGxwdHI7CkBAIC04NSw3ICs4NSw3
IEBAIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjp+VW5pcXVlSURCRGF0YWJh
c2VCYWNraW5nU3RvcmVTUUxpdGUoKQogCiBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VNZXRh
ZGF0YT4gVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmNyZWF0ZUFuZFBvcHVs
YXRlSW5pdGlhbE1ldGFkYXRhKCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9zcWxpdGVEQik7CiAg
ICAgQVNTRVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKIApAQCAtMTc1LDcgKzE3NSw3IEBAIHN0
ZDo6dW5pcXVlX3B0cjxJREJEYXRhYmFzZU1ldGFkYXRhPiBVbmlxdWVJREJEYXRhYmFzZUJhY2tp
bmdTdG9yZVNRTGl0ZTo6Y3JlYXRlCiAKIHN0ZDo6dW5pcXVlX3B0cjxJREJEYXRhYmFzZU1ldGFk
YXRhPiBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6ZXh0cmFjdEV4aXN0aW5n
TWV0YWRhdGEoKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogICAgIEFTU0VSVChtX3NxbGl0ZURCKTsKIAogICAgIGlmICgh
bV9zcWxpdGVEQi0+dGFibGVFeGlzdHMoQVNDSUlMaXRlcmFsKCJJREJEYXRhYmFzZUluZm8iKSkp
CkBAIC0yODksNyArMjg5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPElEQkRhdGFiYXNlTWV0YWRhdGE+
IFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpleHRyYWMKIAogc3RkOjp1bmlx
dWVfcHRyPFNRTGl0ZURhdGFiYXNlPiBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0
ZTo6b3BlblNRTGl0ZURhdGFiYXNlQXRQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
IAogICAgIGF1dG8gc3FsaXRlRGF0YWJhc2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFNRTGl0ZURhdGFi
YXNlPigpOwogICAgIGlmICghc3FsaXRlRGF0YWJhc2UtPm9wZW4ocGF0aCkpIHsKQEAgLTMwNiw3
ICszMDYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U1FMaXRlRGF0YWJhc2U+IFVuaXF1ZUlEQkRhdGFi
YXNlQmFja2luZ1N0b3JlU1FMaXRlOjpvcGVuU1FMaXRlRAogCiBzdGQ6OnVuaXF1ZV9wdHI8SURC
RGF0YWJhc2VNZXRhZGF0YT4gVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6Omdl
dE9yRXN0YWJsaXNoTWV0YWRhdGEoKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwor
ICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgU3RyaW5nIGRiRmlsZW5hbWUg
PSBVbmlxdWVJREJEYXRhYmFzZTo6Y2FsY3VsYXRlQWJzb2x1dGVEYXRhYmFzZUZpbGVuYW1lKG1f
YWJzb2x1dGVEYXRhYmFzZURpcmVjdG9yeSk7CiAKQEAgLTMzMyw3ICszMzMsNyBAQCBzdGQ6OnVu
aXF1ZV9wdHI8SURCRGF0YWJhc2VNZXRhZGF0YT4gVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3Rv
cmVTUUxpdGU6OmdldE9yRQogCiBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FM
aXRlOjplc3RhYmxpc2hUcmFuc2FjdGlvbihjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIEluZGV4ZWREQjo6VHJhbnNhY3Rp
b25Nb2RlIG1vZGUpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBpZiAoIW1fdHJhbnNhY3Rpb25zLmFkZCh0cmFu
c2FjdGlvbklkZW50aWZpZXIsIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpjcmVhdGUoKnRoaXMsIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgbW9kZSkpLmlzTmV3RW50cnkpIHsKICAgICAgICAgTE9HX0VS
Uk9SKCJBdHRlbXB0IHRvIGVzdGFibGlzaCB0cmFuc2FjdGlvbiBpZGVudGlmaWVyIHRoYXQgYWxy
ZWFkeSBleGlzdHMiKTsKQEAgLTM0NSw3ICszNDUsNyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNl
QmFja2luZ1N0b3JlU1FMaXRlOjplc3RhYmxpc2hUcmFuc2FjdGlvbihjb25zdCBJREJJZGVudGlm
aQogCiBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpiZWdpblRyYW5z
YWN0aW9uKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKIHsKLSAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIAogICAgIFNRTGl0ZUlEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rp
b25zLmdldCh0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogICAgIGlmICghdHJhbnNhY3Rpb24pIHsK
QEAgLTM1OCw3ICszNTgsNyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FM
aXRlOjpiZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQklkZW50aWZpZXImCiAKIGJvb2wgVW5pcXVl
SURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElE
QklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKIHsKLSAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIFNRTGl0
ZUlEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2Fj
dGlvbklkZW50aWZpZXIpOwogICAgIGlmICghdHJhbnNhY3Rpb24pIHsKQEAgLTM3MSw3ICszNzEs
NyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpjb21taXRUcmFu
c2FjdGlvbihjb25zdCBJREJJZGVudGlmaWVyJgogCiBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFj
a2luZ1N0b3JlU1FMaXRlOjpyZXNldFRyYW5zYWN0aW9uKGNvbnN0IElEQklkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllcikKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTUUxp
dGVJREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy50YWtlKHRyYW5z
YWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCF0cmFuc2FjdGlvbikgewpAQCAtMzg0LDcgKzM4
NCw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OnJlc2V0VHJh
bnNhY3Rpb24oY29uc3QgSURCSWRlbnRpZmllciYKIAogYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJh
Y2tpbmdTdG9yZVNRTGl0ZTo6cm9sbGJhY2tUcmFuc2FjdGlvbihjb25zdCBJREJJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBTUUxpdGVJREJUcmFuc2Fj
dGlvbiogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZGVudGlm
aWVyKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKSB7CkBAIC0zOTcsNyArMzk3LDcgQEAgYm9vbCBV
bmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6cm9sbGJhY2tUcmFuc2FjdGlvbihj
b25zdCBJREJJZGVudGlmaWUKIAogYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNR
TGl0ZTo6Y2hhbmdlRGF0YWJhc2VWZXJzaW9uKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgdWludDY0X3QgbmV3VmVyc2lvbikKIHsKLSAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQo
bV9zcWxpdGVEQik7CiAgICAgQVNTRVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKIApAQCAtNDI2
LDcgKzQyNiw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmNo
YW5nZURhdGFiYXNlVmVyc2lvbihjb25zdCBJREJJZGVudGlmCiAKIGJvb2wgVW5pcXVlSURCRGF0
YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQklkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0
YSYgbWV0YWRhdGEpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKG1fc3FsaXRlREIpOwogICAgIEFTU0VS
VChtX3NxbGl0ZURCLT5pc09wZW4oKSk7CiAKQEAgLTQ3NSw3ICs0NzUsNyBAQCBib29sIFVuaXF1
ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJ
REJJZGVudGlmaWVyJgogCiBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRl
OjpkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9zcWxp
dGVEQik7CiAgICAgQVNTRVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKIApAQCAtNTQ5LDcgKzU0
OSw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmRlbGV0ZU9i
amVjdFN0b3JlKGNvbnN0IElEQklkZW50aWZpZXImCiAKIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VC
YWNraW5nU3RvcmVTUUxpdGU6OmNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQpCiB7Ci0gICAgQVNT
RVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAg
ICAgQVNTRVJUKG1fc3FsaXRlREIpOwogICAgIEFTU0VSVChtX3NxbGl0ZURCLT5pc09wZW4oKSk7
CiAKQEAgLTU4OCw3ICs1ODgsNyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3Jl
U1FMaXRlOjpjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQklkZW50aWZpZXImCiAKIGJvb2wgVW5p
cXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmNyZWF0ZUluZGV4KGNvbnN0IElEQklk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBj
b25zdCBJREJJbmRleE1ldGFkYXRhJiBtZXRhZGF0YSkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9z
cWxpdGVEQik7CiAgICAgQVNTRVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKIApAQCAtNjcwLDcg
KzY3MCw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmNyZWF0
ZUluZGV4KGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zCiAKIGJvb2wgVW5pcXVlSURCRGF0YWJh
c2VCYWNraW5nU3RvcmVTUUxpdGU6OmRlbGV0ZUluZGV4KGNvbnN0IElEQklkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGluZGV4
SUQpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CiAgICAgQVNTRVJUKG1fc3FsaXRlREIpOwogICAgIEFTU0VSVChtX3NxbGl0
ZURCLT5pc09wZW4oKSk7CiAKQEAgLTcxMSw3ICs3MTEsNyBAQCBib29sIFVuaXF1ZUlEQkRhdGFi
YXNlQmFja2luZ1N0b3JlU1FMaXRlOjpkZWxldGVJbmRleChjb25zdCBJREJJZGVudGlmaWVyJiB0
cmFucwogCiBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpnZW5lcmF0
ZUtleU51bWJlcihjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCYgZ2VuZXJhdGVkS2V5KQogewotICAgIEFTU0VS
VCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAg
IEFTU0VSVChtX3NxbGl0ZURCKTsKICAgICBBU1NFUlQobV9zcWxpdGVEQi0+aXNPcGVuKCkpOwog
CkBAIC03NTQsNyArNzU0LDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNR
TGl0ZTo6Z2VuZXJhdGVLZXlOdW1iZXIoY29uc3QgSURCSWRlbnRpZmllciYKIAogYm9vbCBVbmlx
dWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6dXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVy
KGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlELCBpbnQ2NF90IGtleU51bWJlciwgYm9vbCkKIHsKLSAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQo
bV9zcWxpdGVEQik7CiAgICAgQVNTRVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKIApAQCAtNzg0
LDcgKzc4NCw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OnVw
ZGF0ZUtleUdlbmVyYXRvck51bWJlcihjb25zdCBJREJJZGVuCiAKIGJvb2wgVW5pcXVlSURCRGF0
YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUoY29uc3QgSURC
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQs
IGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGJvb2wmIGtleUV4aXN0cykKIHsKLSAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAg
ICBBU1NFUlQobV9zcWxpdGVEQik7CiAgICAgQVNTRVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsK
IApAQCAtODI4LDcgKzgyOCw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVT
UUxpdGU6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUoY29uc3QgSURCSWRlbnRpCiAKIGJvb2wgVW5p
cXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OnB1dFJlY29yZChjb25zdCBJREJJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29u
c3QgSURCS2V5RGF0YSYga2V5RGF0YSwgY29uc3QgdWludDhfdCogdmFsdWVCdWZmZXIsIHNpemVf
dCB2YWx1ZVNpemUpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKG1fc3FsaXRlREIpOwogICAgIEFTU0VS
VChtX3NxbGl0ZURCLT5pc09wZW4oKSk7CiAKQEAgLTg2NCw3ICs4NjQsNyBAQCBib29sIFVuaXF1
ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpwdXRSZWNvcmQoY29uc3QgSURCSWRlbnRp
ZmllciYgdHJhbnNhYwogCiBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRl
OjpwdXRJbmRleFJlY29yZChjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRleElELCBjb25zdCBJREJLZXlE
YXRhJiBrZXlWYWx1ZSwgY29uc3QgSURCS2V5RGF0YSYgaW5kZXhLZXkpCiB7Ci0gICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAg
QVNTRVJUKG1fc3FsaXRlREIpOwogICAgIEFTU0VSVChtX3NxbGl0ZURCLT5pc09wZW4oKSk7CiAK
QEAgLTkxMiw3ICs5MTIsNyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FM
aXRlOjp1bmNoZWNrZWRQdXRJbmRleFJlY29yZChpbnQ2NF90IG9iamVjdAogCiBib29sIFVuaXF1
ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpnZXRJbmRleFJlY29yZChjb25zdCBJREJJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwg
aW50NjRfdCBpbmRleElELCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlRGF0YSwgSW5k
ZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQkdldFJlc3VsdCYgcmVzdWx0KQogewot
ICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOwogICAgIEFTU0VSVChtX3NxbGl0ZURCKTsKICAgICBBU1NFUlQobV9zcWxpdGVEQi0+aXNP
cGVuKCkpOwogCkBAIC05NDcsNyArOTQ3LDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tp
bmdTdG9yZVNRTGl0ZTo6Z2V0SW5kZXhSZWNvcmQoY29uc3QgSURCSWRlbnRpZmllciYgdHIKIAog
Ym9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6ZGVsZXRlUmVjb3JkKGNv
bnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RT
dG9yZUlELCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiBrZXlEYXRhKQogewotICAgIEFTU0VS
VCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAg
IEFTU0VSVChtX3NxbGl0ZURCKTsKICAgICBBU1NFUlQobV9zcWxpdGVEQi0+aXNPcGVuKCkpOwog
CkBAIC05NjcsNyArOTY3LDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNR
TGl0ZTo6ZGVsZXRlUmVjb3JkKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW4KIAogYm9vbCBVbmlx
dWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6ZGVsZXRlUmFuZ2UoY29uc3QgSURCSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGNv
bnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2VEYXRhKQogewotICAgIEFTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIEFTU0VSVCht
X3NxbGl0ZURCKTsKICAgICBBU1NFUlQobV9zcWxpdGVEQi0+aXNPcGVuKCkpOwogCkBAIC0xMDI4
LDcgKzEwMjgsNyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpk
ZWxldGVSYW5nZShjb25zdCBJREJJZGVudGlmaWVyJiB0cmFucwogCiBib29sIFVuaXF1ZUlEQkRh
dGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpkZWxldGVSZWNvcmQoU1FMaXRlSURCVHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0IFdlYkNvcmU6OklE
QktleURhdGEmIGtleSkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9zcWxpdGVEQik7CiAgICAgQVNT
RVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKIApAQCAtMTA2OSw3ICsxMDY5LDcgQEAgYm9vbCBV
bmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6ZGVsZXRlUmVjb3JkKFNRTGl0ZUlE
QlRyYW5zYWN0aW9uJiB0cmEKIAogYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNR
TGl0ZTo6Z2V0S2V5UmVjb3JkRnJvbU9iamVjdFN0b3JlKGNvbnN0IElEQklkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJLZXkm
IGtleSwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mIHJlc3VsdCkKIHsKLSAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQo
bV9zcWxpdGVEQik7CiAgICAgQVNTRVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKIApAQCAtMTEx
NSw3ICsxMTE1LDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6
Z2V0S2V5UmVjb3JkRnJvbU9iamVjdFN0b3JlKGNvbnN0IElEQkkKIAogYm9vbCBVbmlxdWVJREJE
YXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Z2V0S2V5UmFuZ2VSZWNvcmRGcm9tT2JqZWN0U3Rv
cmUoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9i
amVjdFN0b3JlSUQsIGNvbnN0IElEQktleVJhbmdlJiBrZXlSYW5nZSwgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4mIHJlc3VsdCwgUmVmUHRyPElEQktleT4mIHJlc3VsdEtleSkKIHsKLSAgICBBU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBB
U1NFUlQobV9zcWxpdGVEQik7CiAgICAgQVNTRVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKIApA
QCAtMTE2OSw3ICsxMTY5LDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNR
TGl0ZTo6Z2V0S2V5UmFuZ2VSZWNvcmRGcm9tT2JqZWN0U3RvcmUoY29uc3QKIAogYm9vbCBVbmlx
dWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Y291bnQoY29uc3QgSURCSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3Qg
aW5kZXhJRCwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZURhdGEsIGludDY0X3QmIGNv
dW50KQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogICAgIEFTU0VSVChtX3NxbGl0ZURCKTsKICAgICBBU1NFUlQobV9zcWxp
dGVEQi0+aXNPcGVuKCkpOwogCkBAIC0xMTk5LDcgKzExOTksNyBAQCBib29sIFVuaXF1ZUlEQkRh
dGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpjb3VudChjb25zdCBJREJJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbgogCiBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpvcGVu
Q3Vyc29yKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRf
dCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGluZGV4SUQsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0
aW9uIGN1cnNvckRpcmVjdGlvbiwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElE
QkRhdGFiYXNlQmFja2VuZDo6VGFza1R5cGUgdGFza1R5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0
YSYga2V5UmFuZ2UsIGludDY0X3QmIGN1cnNvcklELCBJREJLZXlEYXRhJiBrZXksIElEQktleURh
dGEmIHByaW1hcnlLZXksIFZlY3Rvcjx1aW50OF90PiYgdmFsdWVCdWZmZXIpCiB7Ci0gICAgQVNT
RVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAg
ICAgQVNTRVJUKG1fc3FsaXRlREIpOwogICAgIEFTU0VSVChtX3NxbGl0ZURCLT5pc09wZW4oKSk7
CiAKQEAgLTEyMjQsNyArMTIyNCw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3Rv
cmVTUUxpdGU6Om9wZW5DdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhCiAKIGJvb2wg
VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmFkdmFuY2VDdXJzb3IoY29uc3Qg
SURCSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgdWludDY0X3QgY291bnQsIElEQktleURh
dGEmIGtleSwgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgVmVjdG9yPHVpbnQ4X3Q+JiB2YWx1ZUJ1
ZmZlcikKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxv
b3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9zcWxpdGVEQik7CiAgICAgQVNTRVJUKG1fc3Fs
aXRlREItPmlzT3BlbigpKTsKIApAQCAtMTI1Miw3ICsxMjUyLDcgQEAgYm9vbCBVbmlxdWVJREJE
YXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6YWR2YW5jZUN1cnNvcihjb25zdCBJREJJZGVudGlm
aWVyJiBjdXIKIAogYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6aXRl
cmF0ZUN1cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCBjb25zdCBJ
REJLZXlEYXRhJiB0YXJnZXRLZXksIElEQktleURhdGEmIGtleSwgSURCS2V5RGF0YSYgcHJpbWFy
eUtleSwgVmVjdG9yPHVpbnQ4X3Q+JiB2YWx1ZUJ1ZmZlcikKIHsKLSAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQo
bV9zcWxpdGVEQik7CiAgICAgQVNTRVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKIApAQCAtMTI4
MCw3ICsxMjgwLDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6
aXRlcmF0ZUN1cnNvcihjb25zdCBJREJJZGVudGlmaWVyJiBjdXIKIAogdm9pZCBVbmlxdWVJREJE
YXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6bm90aWZ5Q3Vyc29yc09mQ2hhbmdlcyhjb25zdCBJ
REJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
RCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9zcWxpdGVEQik7CiAgICAgQVNTRVJUKG1fc3FsaXRl
REItPmlzT3BlbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAKaW5kZXggYTJhYzdkMTI0
ZTMwZTJlODgyZjA3NWJjYjAwZmZjNGVlMjJkYjgwNC4uYjIzYWE4NmJjYTdjZjYxYzY0MWM4YzRm
NGNmNjczZGRjOTYzZTYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCkBAIC0zMCw4ICsz
MCw4IEBACiAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9CbG9iUmVnaXN0cnlJbXBsLmg+Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogTmV0d29ya0Jsb2JSZWdpc3RyeSYgTmV0d29ya0Jsb2JSZWdpc3RyeTo6c2hhcmVk
KCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE5ldHdvcmtCbG9iUmVnaXN0cnk+
IHJlZ2lzdHJ5OwogICAgIHJldHVybiByZWdpc3RyeTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL0hvc3RSZWNvcmQuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvSG9zdFJlY29yZC5jcHAKaW5kZXggMzUyNDhmMjk2ZTRmZDc1MmQxZmFkMmMz
NmJhYTRjNmU1MzU5Mzk0NC4uZjNiYTgxZjMwMmQyMjBkMzk1ZDEzMDZjMjVhOTAyYzAxYWFmOTE3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvSG9zdFJlY29yZC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvSG9zdFJlY29yZC5jcHAKQEAg
LTU3LDcgKzU3LDcgQEAgSG9zdFJlY29yZDo6fkhvc3RSZWNvcmQoKQogCiB2b2lkIEhvc3RSZWNv
cmQ6OnNjaGVkdWxlUmVzb3VyY2VMb2FkZXIoUGFzc1JlZlB0cjxOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI+IGxvYWRlcikKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CiAKICAgICBsb2FkZXItPnNldEhvc3RSZWNvcmQodGhpcyk7CiAg
ICAgCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgSG9zdFJlY29yZDo6c2NoZWR1bGVSZXNvdXJjZUxv
YWRlcihQYXNzUmVmUHRyPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4gbG9hZGVyCiAKIHZvaWQgSG9z
dFJlY29yZDo6YWRkTG9hZGVySW5Qcm9ncmVzcyhOZXR3b3JrUmVzb3VyY2VMb2FkZXIqIGxvYWRl
cikKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CiAKICAgICBtX2xvYWRlcnNJblByb2dyZXNzLmFkZChsb2FkZXIpOwogICAgIGxv
YWRlci0+c2V0SG9zdFJlY29yZCh0aGlzKTsKQEAgLTkwLDcgKzkwLDcgQEAgaW5saW5lIGJvb2wg
cmVtb3ZlTG9hZGVyRnJvbVF1ZXVlKE5ldHdvcmtSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBMb2Fk
ZXJRdWV1ZSYgcXUKIAogdm9pZCBIb3N0UmVjb3JkOjpyZW1vdmVMb2FkZXIoTmV0d29ya1Jlc291
cmNlTG9hZGVyKiBsb2FkZXIpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNz
KTogRHVlIHRvIElQQyByYWNlIGNvbmRpdGlvbnMsIGl0J3MgcG9zc2libGUgdGhpcyBIb3N0UmVj
b3JkIHdpbGwgYmUgYXNrZWQgdG8gcmVtb3ZlIHRoZSBzYW1lIGxvYWRlciB0d2ljZS4KICAgICAv
LyBJdCB3b3VsZCBiZSBuaWNlIHRvIGtub3cgdGhlIGxvYWRlciBoYXMgYWxyZWFkeSBiZWVuIHJl
bW92ZWQgYW5kIHRyZWF0IGl0IGFzIGEgbm8tb3AuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3Bw
CmluZGV4IGZmNDI3NDNlZGU3MjBiN2E4MzFjNzU2MTdhZWU1ZWE0ZmFjMDAzY2QuLjU2YzRjYzJk
ZTRkZDYxZmYyZGRiMDYzOGZjNzZlYzg1ODhmODRkNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuY3BwCkBAIC03Niw3ICs3Niw3IEBAIEhvc3RSZWNvcmQqIE5ldHdvcmtSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI6Omhvc3RGb3JVUkwoY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwsIENyCiAKIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cmVtb3ZlTG9hZGVyKE5ldHdvcmtSZXNvdXJj
ZUxvYWRlciogbG9hZGVyKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQobG9hZGVyKTsKIAogICAgIExPRyhO
ZXR3b3JrU2NoZWR1bGluZywgIihOZXR3b3JrUHJvY2VzcykgTmV0d29ya1Jlc291cmNlTG9hZFNj
aGVkdWxlcjo6cmVtb3ZlTG9hZElkZW50aWZpZXIgcmVtb3ZpbmcgbG9hZGVyICVzIiwgbG9hZGVy
LT5yZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CkBAIC05NCw3ICs5NCw3
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cmVtb3ZlTG9hZGVyKE5ldHdv
cmtSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hl
ZHVsZXI6OnJlY2VpdmVkUmVkaXJlY3QoTmV0d29ya1Jlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNv
bnN0IFdlYkNvcmU6OlVSTCYgcmVkaXJlY3RVUkwpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIExPRyhOZXR3b3JrU2No
ZWR1bGluZywgIihOZXR3b3JrUHJvY2VzcykgTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6
cmVjZWl2ZWRSZWRpcmVjdCBsb2FkZXIgb3JpZ2luYWxseSBmb3IgJyVzJyByZWRpcmVjdGVkIHRv
ICclcyciLCBsb2FkZXItPnJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBy
ZWRpcmVjdFVSTC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIEhvc3RSZWNvcmQqIG9s
ZEhvc3QgPSBsb2FkZXItPmhvc3RSZWNvcmQoKTsKQEAgLTEzOCw3ICsxMzgsNyBAQCBzdGF0aWMg
Ym9vbCByZW1vdmVTY2hlZHVsZWRMb2FkZXJzQ2FsbGVkID0gZmFsc2U7CiAKIHZvaWQgTmV0d29y
a1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cmVtb3ZlU2NoZWR1bGVkTG9hZGVycyh2b2lkKiBjb250
ZXh0KQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKICAgICBBU1NFUlQocmVtb3ZlU2NoZWR1bGVkTG9hZGVyc0NhbGxlZCk7CiAK
ICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyKiBzY2hlZHVsZXIgPSBzdGF0aWNfY2Fz
dDxOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyKj4oY29udGV4dCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApp
bmRleCBhMTg0YjYyM2U2YTc4ODgzOTUzMDZmODFiNjljNDkxMmM3ZDkwNjIyLi42ZWNjMTVkNGU4
OTM2ZDVjZTYzZGI5OWM4NmM0N2JkYjkwMzFlYzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTk5LDcg
Kzk5LDcgQEAgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpOZXR3b3JrUmVzb3VyY2VMb2FkZXIoY29u
c3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMKICAgICBpZiAoUmVmUHRyPFNhbmRib3hF
eHRlbnNpb24+IHJlc291cmNlU2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZShwYXJhbWV0ZXJzLnJlc291cmNlU2FuZGJveEV4dGVuc2lvbikpCiAgICAgICAgIG1fcmVz
b3VyY2VTYW5kYm94RXh0ZW5zaW9ucy5hcHBlbmQocmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9uKTsK
IAotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKICAgICAKICAgICBpZiAocmVwbHkpCiAgICAgICAgIG1fbmV0d29ya0xvYWRlckNsaWVu
dCA9IHN0ZDo6bWFrZV91bmlxdWU8U3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50PihtX3Jl
cXVlc3QsIHJlcGx5KTsKQEAgLTEwOSw3ICsxMDksNyBAQCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcihjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cwogCiBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6On5OZXR3b3JrUmVzb3VyY2VMb2FkZXIoKQogewot
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKICAgICBBU1NFUlQoIW1faGFuZGxlKTsKICAgICBBU1NFUlQoIW1faG9zdFJlY29yZCk7CiB9
CkBAIC0xMjEsNyArMTIxLDcgQEAgYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmlzU3luY2hy
b25vdXMoKSBjb25zdAogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogewot
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIAogICAgIC8vIEV4cGxpY2l0IHJlZigpIGJhbGFuY2VkIGJ5IGEgZGVyZWYoKSBpbiBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OnJlc291cmNlSGFuZGxlU3RvcHBlZCgpCiAgICAgcmVmKCk7CkBA
IC0xMzcsNyArMTM3LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKIAog
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNsZWFudXAoKQogewotICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGludmFs
aWRhdGVTYW5kYm94RXh0ZW5zaW9ucygpOwogCkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmRpZENvbnZlcnRIYW5kbGVUb0Rvd25sb2FkKCkKIAogdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0KCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBpZiAobV9oYW5kbGUg
JiYgIW1faGFuZGxlQ29udmVydGVkVG9Eb3dubG9hZCkKICAgICAgICAgbV9oYW5kbGUtPmNhbmNl
bCgpOwpAQCAtMjMzLDcgKzIzMyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxs
U2VuZFJlcXVlc3RBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSCiAKICAgICAv
LyBXZSBvbmx5IGV4cGVjdCB0byBnZXQgdGhlIHdpbGxTZW5kUmVxdWVzdCBjYWxsYmFjayBmcm9t
IFJlc291cmNlSGFuZGxlIGFzIHRoZSByZXN1bHQgb2YgYSByZWRpcmVjdC4KICAgICBBU1NFUlQo
IXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIFJlc291cmNlUmVxdWVzdCBw
cm9wb3NlZFJlcXVlc3QgPSByZXF1ZXN0OwogICAgIG1fc3VnZ2VzdGVkUmVxdWVzdEZvcldpbGxT
ZW5kUmVxdWVzdCA9IHJlcXVlc3Q7CkBAIC0zNzgsNyArMzc4LDcgQEAgdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmludmFsaWRhdGVTYW5kYm94RXh0ZW5zaW9ucygpCiAjaWYgVVNFKFBST1RF
Q1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
YW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoUmVzb3VyY2VIYW5kbGUq
IGhhbmRsZSwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCiB7Ci0gICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwog
ICAgIEFTU0VSVF9VTlVTRUQoaGFuZGxlLCBoYW5kbGUgPT0gbV9oYW5kbGUpOwogCiAgICAgbV9u
ZXR3b3JrTG9hZGVyQ2xpZW50LT5jYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNl
KHRoaXMsIHByb3RlY3Rpb25TcGFjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDNlZWNhOGY4NTBlYTIxODQ0
ZTJjZjlhYjQ5MzNjMzg2M2IwYjZiYjIuLjI4YmNjOWJjMjk3YjgwZWFlMDc0ZTI1NmQ0N2Y0Mzhh
MGQ4OGU0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC0xMjEsOCArMTIxLDggQEAgcHVibGljOgogICAgIGJv
b2wgaXNTeW5jaHJvbm91cygpIGNvbnN0OwogICAgIGJvb2wgaXNMb2FkaW5nTWFpblJlc291cmNl
KCkgY29uc3QgeyByZXR1cm4gbV9pc0xvYWRpbmdNYWluUmVzb3VyY2U7IH0KICAgICAKLSAgICB2
b2lkIHNldEhvc3RSZWNvcmQoSG9zdFJlY29yZCogaG9zdFJlY29yZCkgeyBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOyBtX2hvc3RSZWNvcmQgPSBob3N0UmVjb3JkOyB9Ci0gICAgSG9zdFJlY29yZCog
aG9zdFJlY29yZCgpIGNvbnN0IHsgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgcmV0dXJuIG1faG9z
dFJlY29yZC5nZXQoKTsgfQorICAgIHZvaWQgc2V0SG9zdFJlY29yZChIb3N0UmVjb3JkKiBob3N0
UmVjb3JkKSB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IG1faG9zdFJlY29yZCA9IGhvc3RS
ZWNvcmQ7IH0KKyAgICBIb3N0UmVjb3JkKiBob3N0UmVjb3JkKCkgY29uc3QgeyBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOyByZXR1cm4gbV9ob3N0UmVjb3JkLmdldCgpOyB9CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgogICAgIGJvb2wgc2VuZEFib3J0aW5nT25GYWlsdXJlKFQmJiBtZXNz
YWdlLCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzID0gMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLm1tIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IubW0KaW5kZXggZmIxZWFh
MDE5ZGJmZDQwMjJhZDNkZWI2ZDczZjA4ZDVjN2ZkM2ViOS4uMzgwZGExZmQyNGQwZjJjMWVlYjQz
MWVhOTJiMzZiZWY2Yjg3OTJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IubW0KQEAgLTYzLDcgKzYzLDcgQEAgRGlza0Nh
Y2hlTW9uaXRvcjo6RGlza0NhY2hlTW9uaXRvcihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hl
ZFJlc3BvbnNlLCBOZXR3b3IKICAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhsb2FkZXIt
PmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSkKICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0KGxvYWRl
ci0+cmVxdWVzdCgpKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIC8vIFNldCB1cCBhIGRlbGF5ZWQgY2FsbGJhY2sg
dG8gY2FuY2VsIHRoaXMgbW9uaXRvciBpZiB0aGUgcmVzb3VyY2UgaGFzbid0IGJlZW4gY2FjaGVk
IHlldC4KICAgICBfX2Jsb2NrIERpc2tDYWNoZU1vbml0b3IqIHJhd01vbml0b3IgPSB0aGlzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jUmVxdWVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmNwcAppbmRleCAzZDk0YjU3MmVlYTcxMDRh
YThkYjQ2ZWJiNmFhODYxYzZlOGZiZjhhLi4zNjAzZTZmNzgxYzA3NDA2MDZiNWEwYTBiZWQxZDlh
NGY0MDViNzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmNwcApAQCAtMjcs
MTMgKzI3LDEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXN5bmNSZXF1ZXN0
LmgiCiAKLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVSZXF1
ZXN0SUQoKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKICAgICBzdGF0aWMgdWludDY0X3QgcmVxdWVzdElEID0gMDsKICAgICBy
ZXR1cm4gKytyZXF1ZXN0SUQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDZl
MWUwNmQ0YWU3ZDA1ZThlOWI4MjY0ZTAyMmNmN2Y1Y2IyMzZiOGEuLmExYTU5NTUwZjk2YmViNTJm
MDVmNjc0MWRmZTM1YTc2YzFmOTAwYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBA
IC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgdWludDY0X3QgZ2Vu
ZXJhdGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUlEKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBzdGF0aWMgaW50
NjRfdCB1bmlxdWVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUlEOwogICAgIHJldHVybiArK3VuaXF1
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSUQ7CkBAIC02Niw3ICs2Niw3IEBAIEF1dGhlbnRpY2F0
aW9uTWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5hZ2VyKENoaWxkUHJvY2VzcyogcHJvY2VzcykK
IAogdWludDY0X3QgQXV0aGVudGljYXRpb25NYW5hZ2VyOjplc3RhYmxpc2hJZGVudGlmaWVyRm9y
Q2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICB1aW50NjRfdCBjaGFsbGVuZ2VJRCA9IGdl
bmVyYXRlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VJRCgpOwogICAgIG1fY2hhbGxlbmdlcy5zZXQo
Y2hhbGxlbmdlSUQsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTsKQEAgLTEwNiw3ICsxMDYsNyBA
QCBib29sIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6dHJ5VXNlQ2VydGlmaWNhdGVJbmZvRm9yQ2hh
bGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dAogCiB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6
dXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgY29uc3QgQ3Jl
ZGVudGlhbCYgY3JlZGVudGlhbCwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUlu
Zm8pCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwogCiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlID0gbV9j
aGFsbGVuZ2VzLnRha2UoY2hhbGxlbmdlSUQpOwogICAgIEFTU0VSVCghY2hhbGxlbmdlLmlzTnVs
bCgpKTsKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6dXNl
Q3JlZGVudGlhbEZvckNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgY29ucwogCiB2b2lk
IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29udGludWVXaXRob3V0Q3JlZGVudGlhbEZvckNoYWxs
ZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSBjaGFsbGVuZ2UgPSBtX2NoYWxsZW5nZXMudGFrZShjaGFsbGVuZ2VJRCk7CiAgICAg
QVNTRVJUKCFjaGFsbGVuZ2UuaXNOdWxsKCkpOwpAQCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgQXV0
aGVudGljYXRpb25NYW5hZ2VyOjpjb250aW51ZVdpdGhvdXRDcmVkZW50aWFsRm9yQ2hhbGxlbmdl
KHVpbnQ2NF90IGNoYWxsCiAKIHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpjYW5jZWxDaGFs
bGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgY2hhbGxlbmdlID0gbV9jaGFsbGVuZ2VzLnRha2UoY2hhbGxlbmdlSUQpOwogICAg
IEFTU0VSVCghY2hhbGxlbmdlLmlzTnVsbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Eb3dubG9hZHMvbWFjL0Rvd25sb2FkTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Rvd25sb2Fkcy9tYWMvRG93bmxvYWRNYWMubW0KaW5kZXggZTBlYmQ2ZjA3MDhhMjg5YjFk
NTU1NzBjOWVlMmE2ODRmYTk4ODA5Yy4uYmE2MjVjNTc5OWU5ZGQzN2YyNjkyZDI2ZDNmYTNkOTQ3
N2YxNTc4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9tYWMv
RG93bmxvYWRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9tYWMv
RG93bmxvYWRNYWMubW0KQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIERvd25sb2FkOjpyZWNlaXZl
ZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRp
bwogLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2UgaWYgdGhlc2UgY2FsbGJhY2tzIHdvdWxkbid0
IGhhdmUgdG8gYmUgaW52b2tlZCBvbiB0aGUgbWFpbiB0aHJlYWQuCiBzdGF0aWMgdm9pZCBkaXNw
YXRjaE9uTWFpblRocmVhZCh2b2lkICheYmxvY2spKCkpCiB7Ci0gICAgaWYgKGlzTWFpblRocmVh
ZCgpKSB7CisgICAgaWYgKFJ1bkxvb3A6OmlzTWFpbigpKSB7CiAgICAgICAgIGJsb2NrKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
UGx1Z2lucy9OUE9iamVjdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L05QT2JqZWN0UHJveHkuY3BwCmluZGV4IGEzNGYxOWRjNTg0NDZmZGYxYmUyZjNiNjkzZmY0MDU2
Njc5ZDA2OGIuLmZlYzFmNzEzNzk5OGIxZjQ2YzM5NjVmMjc1ZjdmOWE4ZjlkM2M5MDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwCkBAIC01
Nyw3ICs1Nyw3IEBAIE5QT2JqZWN0UHJveHk6Ok5QT2JqZWN0UHJveHkoKQogCiBOUE9iamVjdFBy
b3h5Ojp+TlBPYmplY3RQcm94eSgpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKCFtX25wUmVtb3RlT2JqZWN0
TWFwKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
UGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5Nb2R1bGVNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5Nb2R1bGVN
YWMubW0KaW5kZXggZjVkZDc4NjYyMDhlODExZmUxOGE1MTNiN2FlZTk1NmIwYTJlNjY5NC4uMTdm
NTgyZTNlNmJiMjRiMzg1YjIxMDNmNjE0MzE3MjI3MTMxMTlkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTW9kdWxl
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL21hYy9O
ZXRzY2FwZVBsdWdpbk1vZHVsZU1hYy5tbQpAQCAtMjkyLDcgKzI5Miw3IEBAIHN0YXRpYyBjb25z
dCBSZXNJRCBNSU1FTGlzdFN0cmluZ1N0cmluZ051bWJlciA9IDEyODsKIAogc3RhdGljIGJvb2wg
Z2V0UGx1Z2luSW5mb0Zyb21DYXJib25SZXNvdXJjZXMoQ0ZCdW5kbGVSZWYgYnVuZGxlLCBQbHVn
aW5Nb2R1bGVJbmZvJiBwbHVnaW4pCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgUmVzb3VyY2VNYXAgcmVzb3VyY2VN
YXAoYnVuZGxlKTsKICAgICBpZiAoIXJlc291cmNlTWFwLmlzVmFsaWQoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCmluZGV4IDlhYWZhNjIxMTM2YmEyNTVhYTE1ZTMx
NGQ5MGMyZmU3M2VhODU0YzIuLjZlNGQ0ZmZhNTMxMGVhYmFmOWQxNTQ3NDM5ODMwZjQ1MmJhZDgx
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcApAQCAtMjYsOCAr
MjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgi
CiAKLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCkBAIC0zOCw3ICszOCw3IEBAIGNvbnN0IHVpbnQ2NF90IFNlc3Npb25UcmFja2VyOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEOwogCiBzdGF0aWMgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1
bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBzdGF0aWNTZXNzaW9uTWFwKCkKIHsK
LSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1
bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+PiBtYXA7CiAgICAgcmV0dXJuIG1hcC5n
ZXQoKTsKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5p
cXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYgc3RhdGljU2Vzc2lvbk0KIAogc3RhdGlj
IEhhc2hNYXA8Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiwgdWludDY0X3Q+JiBzdG9yYWdl
U2Vzc2lvblRvSUQoKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFw
PGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiosIHVpbnQ2NF90Pj4gbWFwOwogICAgIHJldHVy
biBtYXAuZ2V0KCk7CkBAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyBIYXNoTWFwPGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiosIHVpbnQ2NF90PiYgc3RvcmFnZVNlc3Npb25Ub0lEKCkKIAogc3Rh
dGljIFN0cmluZyYgaWRlbnRpZmllckJhc2UoKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IGJhc2U7CiAgICAgcmV0dXJuIGJhc2U7CkBAIC05Myw3ICs5Myw3IEBA
IHZvaWQgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklELCBzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhCiAKIHZvaWQgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lT
ZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgaWYgKHN0YXRpY1Nlc3Npb25N
YXAoKS5jb250YWlucyhzZXNzaW9uSUQpKSB7CiAgICAgICAgIHN0b3JhZ2VTZXNzaW9uVG9JRCgp
LnJlbW92ZShzZXNzaW9uKHNlc3Npb25JRCkpOwogICAgICAgICBzdGF0aWNTZXNzaW9uTWFwKCku
cmVtb3ZlKHNlc3Npb25JRCk7CkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBTZXNzaW9uVHJhY2tl
cjo6ZGVzdHJveVNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogCiB2b2lkIFNlc3Npb25UcmFj
a2VyOjpzZXRJZGVudGlmaWVyQmFzZShjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCiB7Ci0gICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwog
CiAgICAgaWRlbnRpZmllckJhc2UoKSA9IGlkZW50aWZpZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJU2Vzc2lvbi5jcHAKaW5kZXggYzJhMjYxNWZmMjlmNmRmZGRkMTU2MDczZTc4NTMw
NmMyZGU4ZTBhYS4uMDhkODRhZmVjMTk2ZmNkMjQwZTBmYjk4YjEzYThlZmMwNjY1YjY0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmNwcApAQCAtMjYsMTMgKzI2LDEzIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQVBJU2Vzc2lvbi5oIgogCi0jaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3Bh
Y2UgQVBJIHsKIAogc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlSUQoYm9vbCBpc0VwaGVtZXJhbCkK
IHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAKICAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlU2Vzc2lvbklEID0gV2ViS2l0OjpT
ZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRDsKICAgICBBU1NFUlQoaXNFcGhl
bWVyYWwpOwpAQCAtNDEsNyArNDEsNyBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVJRChib29s
IGlzRXBoZW1lcmFsKQogCiBTZXNzaW9uJiBTZXNzaW9uOjpkZWZhdWx0U2Vzc2lvbigpCiB7Ci0g
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwogCiAgICAgc3RhdGljIFNlc3Npb24qIGRlZmF1bHRTZXNzaW9uID0gbmV3IFNlc3Npb24oZmFs
c2UsIFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQpOwogICAgIHJldHVy
biAqZGVmYXVsdFNlc3Npb247CkBAIC00OSw3ICs0OSw3IEBAIFNlc3Npb24mIFNlc3Npb246OmRl
ZmF1bHRTZXNzaW9uKCkKIAogU2Vzc2lvbiYgU2Vzc2lvbjo6bGVnYWN5UHJpdmF0ZVNlc3Npb24o
KQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKIAogICAgIHN0YXRpYyBTZXNzaW9uKiBsZWdhY3lQcml2YXRlU2Vzc2lvbiA9IG5l
dyBTZXNzaW9uKHRydWUsIFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQpOwogICAgIHJldHVybiAqbGVnYWN5UHJpdmF0ZVNlc3Npb247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKaW5k
ZXggMzk5OGQyMWQzNDRiMmE0OTFkNTgzMGYwMzg2NTkzNzM0NTVhOGRkMS4uNzc4YzQ1NGQ2OWJl
ZDcyZmE3NTE0YWY0MGE3ZDkxYzM3MTlmZDlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcApAQCAtOTUsNyArOTUs
NyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmNvb2tpZXNEaWRDaGFuZ2UoKQogCiB2b2lkIFdl
YkNvb2tpZU1hbmFnZXI6OmRpc3BhdGNoQ29va2llc0RpZENoYW5nZSgpCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlclByb3h5OjpDb29raWVzRGlk
Q2hhbmdlKCksIDApOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5k
LmNwcAppbmRleCAzNDBlOGEwMzdmZmZlZDJmYzlmNjg2MTIxODRhODljNTAxYzI3ZmNlLi4yMzg3
YzRlNTg0MTIwNjM1OGNhNzdjODRkMTRlNTQzMTYwZWI4ZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIFdlYklE
QkZhY3RvcnlCYWNrZW5kOjpnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MsCiAKIHZvaWQgV2ViSURCRmFjdG9yeUJhY2tlbmQ6Om9wZW4oY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZU5hbWUsIHVpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBv
cGVuaW5nT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luKQogewot
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKICAgICBMT0coSURCLCAiV2ViSURCRmFjdG9yeUJhY2tlbmQ6Om9wZW4iKTsKIAogICAgIFN0
cmluZyBkYXRhYmFzZUlkZW50aWZpZXIgPSB1bmlxdWVEYXRhYmFzZUlkZW50aWZpZXIoZGF0YWJh
c2VOYW1lLCBvcGVuaW5nT3JpZ2luLCBtYWluRnJhbWVPcmlnaW4pOwpAQCAtMTQ5LDcgKzE0OSw3
IEBAIHZvaWQgV2ViSURCRmFjdG9yeUJhY2tlbmQ6Om9wZW4oY29uc3QgU3RyaW5nJiBkYXRhYmFz
ZU5hbWUsIHVpbnQ2NF90IHZlcnNpb24sIGluCiAKIHZvaWQgV2ViSURCRmFjdG9yeUJhY2tlbmQ6
OmRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTZWN1cml0
eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9y
aWdpbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIExPRyhJREIsICJXZWJJREJGYWN0
b3J5QmFja2VuZDo6ZGVsZXRlRGF0YWJhc2UiKTsKIAogICAgIFN0cmluZyBkYXRhYmFzZUlkZW50
aWZpZXIgPSB1bmlxdWVEYXRhYmFzZUlkZW50aWZpZXIoZGF0YWJhc2VOYW1lLCBvcGVuaW5nT3Jp
Z2luLCBtYWluRnJhbWVPcmlnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNv
bm5lY3Rpb24uY3BwCmluZGV4IGY4ZGIyNzM0NDk4MWEyZjA1ZDhlOGM4NmE0ZjY4NDVmM2FiOTkz
ZjMuLjc2M2MxOTZhMWY0ZjlmYTIxOWJlMTY2MWEyOWEzMDlhN2Y2YWRiZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2
ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIg
PSAwOwogICAgIHJldHVybiArK2lkZW50aWZpZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCA3NDYxYzQ2YTRlMzRhOWM3YWRjNjZmZWUy
MjRhMGI5Y2VkZTE5YTllLi4zYzUyNTE2MjQ2ZWU2ODE2YWYzNmE0Y2NhYzdlNzJhOTk1NmJjYmQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KQEAg
LTEwMCw3ICsxMDAsNyBAQCBSZXNvdXJjZUVycm9yIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6
OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcQogCiBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29u
c3QKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CiAKICAgICBpZiAoZnJhbWUoKSkKICAgICAgICAgcmV0dXJuICpTZXNzaW9uVHJh
Y2tlcjo6c2Vzc2lvbih3ZWJGcmFtZUxvYWRlckNsaWVudCgpLT53ZWJGcmFtZSgpLT5wYWdlKCkt
PnNlc3Npb25JRCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggOGVlNDA1NjQ5NWRkMGNlYTkwZjNmY2ZjNDk5
NWVkN2MzZTJiYmQ1YS4uZmQyZmFmMzFhN2EyYWQ3ZGE0OTVhZWZlODg1OTkzMjViYmFiZDJkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlz
cGF0Y2hlci5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6d2hl
ZWxFdmVudCh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZWVsRXZlbgog
CiB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hXaGVlbEV2ZW50KHVpbnQ2NF90IHBhZ2VJ
RCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKLSAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBXZWJQYWdl
KiB3ZWJQYWdlID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlm
ICghd2ViUGFnZSkK
</data>
<flag name="review"
          id="248528"
          type_id="1"
          status="+"
          setter="enrica"
    />
          </attachment>
      

    </bug>

</bugzilla>