<?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>73203</bug_id>
          
          <creation_ts>2011-11-28 04:37:36 -0800</creation_ts>
          <short_desc>Web Inspector: introduce InspectorBaseAgent.</short_desc>
          <delta_ts>2011-11-28 06:42:07 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>509739</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-28 04:37:36 -0800</bug_when>
    <thetext>Now that inspector controller does not depend on concrete inspector agent classes, we case collect agent instances using abstract type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509774</commentid>
    <comment_count>1</comment_count>
      <attachid>116744</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-28 06:10:05 -0800</bug_when>
    <thetext>Created attachment 116744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509789</commentid>
    <comment_count>2</comment_count>
      <attachid>116744</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-11-28 06:37:30 -0800</bug_when>
    <thetext>Comment on attachment 116744
Patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +        classes, we case collect agent instances using abstract type.

case -&gt; can?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509793</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-28 06:42:07 -0800</bug_when>
    <thetext>Committed r101257: &lt;http://trac.webkit.org/changeset/101257&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116744</attachid>
            <date>2011-11-28 06:10:05 -0800</date>
            <delta_ts>2011-11-28 06:37:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73203-20111128181002.patch</filename>
            <type>text/plain</type>
            <size>87811</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjUxMjM0YTk4YjUyZjIx
NjFkOGE0NGVhYjVmMmIyZThmNWFiNWIxZS4uYjU3OWUzYzZiMmQzODkwMjBkMGEwZmUzMGU5MTQy
MjYwY2UwOGI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDExMSBAQAogMjAxMS0xMS0yOCAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogaW50cm9kdWNlIEluc3BlY3RvckJhc2VBZ2VudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjAzCisKKyAgICAgICAgTm93IHRoYXQgaW5zcGVj
dG9yIGNvbnRyb2xsZXIgZG9lcyBub3QgZGVwZW5kIG9uIGNvbmNyZXRlIGluc3BlY3RvciBhZ2Vu
dAorICAgICAgICBjbGFzc2VzLCB3ZSBjYXNlIGNvbGxlY3QgYWdlbnQgaW5zdGFuY2VzIHVzaW5n
IGFic3RyYWN0IHR5cGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFt
OgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAg
ICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6Okluc3BlY3RvckFnZW50
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdl
bnQuaC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhc2VBZ2VudDo6SW5zcGVjdG9yQmFz
ZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhc2VBZ2VudDo6fkluc3BlY3Rv
ckJhc2VBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50LmguCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpJbnNwZWN0b3JDU1NBZ2VudCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDU1NBZ2VudDo6c2V0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ1NTQWdlbnQ6OnJlc3RvcmUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25z
b2xlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpJ
bnNwZWN0b3JDb25zb2xlQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29s
ZUFnZW50Ojp+SW5zcGVjdG9yQ29uc29sZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNv
bnNvbGVBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xl
QWdlbnQ6OmNsZWFyTWVzc2FnZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29s
ZUFnZW50OjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6Y2xlYXJGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdl
bnQ6OnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnNldE1vbml0b3JpbmdYSFJFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6YWRkQ29uc29sZU1lc3NhZ2UpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9N
QWdlbnQ6Okluc3BlY3RvckRPTUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpjbGVhckZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFn
ZW50OjpzZXREb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
Z2V0RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Om1haW5G
cmFtZURPTUNvbnRlbnRMb2FkZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50OjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6
ZGlzYWJsZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckRhdGFiYXNlQWdlbnQ6Okluc3BlY3RvckRhdGFiYXNlQWdl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6ZW5hYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRpc2FibGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6cmVzdG9yZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50OjplbmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RGVidWdnZXJBZ2VudDo6Y2xlYXJGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjpzZXRCcmVha3BvaW50QnlVcmwpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6cmVtb3ZlQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRQYXJzZVNvdXJjZSk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckZpbGVTeXN0ZW1BZ2VudDo6SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdl
QWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3Rv
clByb2ZpbGVyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmRp
c2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6cmVzdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpyZXN0b3JlRW5h
YmxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdG9wKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3RvclJlc291cmNlQWdlbnQpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yV29ya2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdl
bnQ6Okluc3BlY3RvcldvcmtlckFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcldv
cmtlckFnZW50OjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFn
ZW50OjpjbGVhckZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFn
ZW50OjpzZXRXb3JrZXJJbnNwZWN0aW9uRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JXb3JrZXJBZ2VudDo6c2V0QXV0b2Nvbm5lY3RUb1dvcmtlcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNob3VsZFBhdXNlRGVkaWNhdGVkV29ya2VyT25T
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZGlkU3RhcnRX
b3JrZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50Ojpj
cmVhdGVXb3JrZXJGcm9udGVuZENoYW5uZWwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JXb3JrZXJBZ2VudC5oOgorCisyMDExLTExLTI4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Z29vZ2xlLmNvbT4KKwogICAgICAgICBOb3QgcmV2aWV3ZWQ6IGRpc2FibGUgZmlsZXN5c3RlbSBp
bnN0cnVtZW50YXRpb24gdG8gdW5icmVhayBRdCB0ZXN0cy4KIAogICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2OWRmNDhh
OWZiODhjNTViNmE2ZGQ3Y2UyMGUwODg4ODIzNzc3OWUyLi43ZWRmZjc5OTViNTE3MjY2MjdjMDg1
MDEyYTM5OGYxMGJiODhkYzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODc5LDYgKzg3OSw3
IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAorICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JCYXNlQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
ckNsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDBjYWY2MDA2YTgx
MDQ5ZGI4Y2VhYjZlMmE2Njg3MDk3YzFiMjE1MWMuLjMzMjY2ZGM2OTM2YWNhNTgwM2ExNTU1MGU4
MzY2Yzc4NWVlYTMwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjA1Niw2
ICsyMDU2LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQWdlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckJhc2VBZ2VudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JCYXNlQWdlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQu
aCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCmluZGV4IDZhMzU0MTM4MWE3MGU1NDQyODU1NDM4Njc3YzZiNWY2N2FjNjAxMDEu
LjAyNWU1YTEwMjgwYTRmZjM3NzMyMDgyYWMwODk4YjBkZGFjZWY2M2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpA
QCAtODYyLDYgKzg2Miw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNj
cmlwdE1hbmFnZXIuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwIFwKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBcCisgICAgaW5z
cGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JD
U1NBZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuY3BwIFwKICAgICBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcCBcCkBAIC0xOTEzLDYgKzE5MTQsNyBA
QCBIRUFERVJTICs9IFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmggXAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50LmggXAorICAgIGluc3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdl
bnQuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oIFwKICAgICBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oIFwKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmNDg2MDIzODA0ZGRi
MGI2ZDNiY2Y1MmJiOWMyNGZhOGFkZDcwNmUwLi4zZDEyYTc4YmQxZTA5ZWQ2ZDY2YzNmMzA1MDJm
ODMyOTA5MDAyOGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01NDUsNiArNTQ1LDcgQEAKICAgICAg
ICAgICAgICdoaXN0b3J5L1BhZ2VDYWNoZS5oJywKICAgICAgICAgICAgICdoaXN0b3J5L2NmL0hp
c3RvcnlQcm9wZXJ0eUxpc3QuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckFn
ZW50LmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuaCcsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuaCcsCkBAIC0yNzIxLDYgKzI3MjIsNyBAQAogICAgICAgICAgICAg
J2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0
b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgnLAorICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTQWdlbnQuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yQ1NT
QWdlbnQuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBmYmM0
N2ZhZjJjZTU1NWNjM2JkMzMxMDZmODExZTc5ZDQ0MjdiMzgwLi40Y2MwZThiN2Q2MjY4NmI5NTlm
NWJjZDE3MDNkN2IxZDhkZDgwZWM0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagpAQCAtNjg0MTAsNiArNjg0MTAsMTQgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckJh
c2VBZ2VudC5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JCYXNlQWdlbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckNsaWVu
dC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU4MGNmOWZhMzdlZmQ3M2FhYmQ3YTk4ZmE0
ZmUwNjFiOTBkYTI1M2YuLjMzYzE0YmVhNWFlODA0NDk5NWMwOTAxYmEzY2I2ZTllMzc5NjYzMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTE4MzAsNiArMTgzMCw4IEBACiAJCTdBNzRFQ0JCMTAxODM5QTYwMEJGOTM5RSAvKiBJ
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdBNzRFQ0I5MTAxODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQuaCAqLzsgfTsKIAkJN0E3NEVDQkQxMDE4MzlEQTAwQkY5MzlFIC8qIEpTSW5z
cGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdBNzRFQ0JDMTAxODM5REEwMEJGOTM5RSAvKiBKU0luc3BlY3Rv
ckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgKi87IH07CiAJCTdBQTM2NUVFMTJFNzI2NTQwMERDQTI0
MiAvKiBJbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0FBMzY1RUQxMkU3MjY1NDAwRENBMjQyIC8qIEluc3BlY3Rv
clJ1bnRpbWVBZ2VudC5jcHAgKi87IH07CisJCTdBQTUxQjZFMTQ4M0I2MTYwMEFEMjc1MiAvKiBJ
bnNwZWN0b3JCYXNlQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdBQTUxQjZDMTQ4M0I2MTYwMEFEMjc1MiAvKiBJbnNwZWN0b3JCYXNlQWdlbnQu
aCAqLzsgfTsKKwkJN0FBNTFCNkYxNDgzQjYxNjAwQUQyNzUyIC8qIEluc3BlY3RvckJhc2VBZ2Vu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUE1
MUI2RDE0ODNCNjE2MDBBRDI3NTIgLyogSW5zcGVjdG9yQmFzZUFnZW50LmNwcCAqLzsgfTsKIAkJ
N0FCMEIxQzAxMjExQTYyMjAwQTc2OTQwIC8qIEluc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FCMEIxQkUxMjEx
QTYyMjAwQTc2OTQwIC8qIEluc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwICovOyB9OwogCQk3QUIw
QjFDMTEyMTFBNjIyMDBBNzY5NDAgLyogSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FCMEIxQkYxMjExQTYyMjAw
QTc2OTQwIC8qIEluc3BlY3RvckRhdGFiYXNlQWdlbnQuaCAqLzsgfTsKIAkJN0FERTcyMjYxMENC
QkI5QjAwNkIzQjNBIC8qIENvbnRleHRNZW51UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBREU3MjI1MTBDQkJCOUIwMDZCM0IzQSAvKiBD
b250ZXh0TWVudVByb3ZpZGVyLmggKi87IH07CkBAIC05MDg5LDYgKzkwOTEsOCBAQAogCQk3QTc0
RUNCOTEwMTgzOUE2MDBCRjkzOUUgLyogSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTc0RUNCQzEwMTgzOURBMDBCRjkzOUUgLyog
SlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QUEzNjVFRDEyRTcyNjU0MDBEQ0EyNDIgLyogSW5zcGVj
dG9yUnVudGltZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTdBQTUxQjZDMTQ4M0I2MTYwMEFEMjc1MiAvKiBJbnNwZWN0b3JCYXNlQWdlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQmFzZUFnZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTdBQTUxQjZEMTQ4M0I2MTYwMEFEMjc1MiAvKiBJbnNwZWN0
b3JCYXNlQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5z
cGVjdG9yQmFzZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0FCMEIx
QkUxMjExQTYyMjAwQTc2OTQwIC8qIEluc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBQjBCMUJGMTIxMUE2MjIwMEE3Njk0MCAv
KiBJbnNwZWN0b3JEYXRhYmFzZUFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluc3BlY3RvckRhdGFiYXNlQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0FERTcyMjUxMENCQkI5QjAwNkIzQjNBIC8qIENvbnRleHRNZW51UHJvdmlkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGV4dE1lbnVQcm92aWRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ1MDgsNiArMTQ1MTIsOCBAQAogCQkxQzgxQjk0
RDBFOTczMkQ5MDAyNjZFMDcgLyogaW5zcGVjdG9yICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk3QUE1MUI2QzE0ODNCNjE2MDBBRDI3NTIgLyogSW5zcGVj
dG9yQmFzZUFnZW50LmggKi8sCisJCQkJN0FBNTFCNkQxNDgzQjYxNjAwQUQyNzUyIC8qIEluc3Bl
Y3RvckJhc2VBZ2VudC5jcHAgKi8sCiAJCQkJMUM4MUI5NTkwRTk3MzMwODAwMjY2RTA3IC8qIGZy
b250LWVuZCAqLywKIAkJCQk0MUYwNjE4RDBGNUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3Nh
Z2UuY3BwICovLAogCQkJCTQxRjA2MThDMEY1RjA2OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVzc2Fn
ZS5oICovLApAQCAtMjQ3ODcsNiArMjQ3OTMsNyBAQAogCQkJCUYzODIwODk5MTQ3RDM1RjkwMDEw
QkMwNiAvKiBXb3JrZXJSdW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAzM0E2QTdD
MTQ3RTA3RDIwMDUwOUIzNiAvKiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTAzM0E2QTgzMTQ3RTA4QTYwMDUwOUIzNiAvKiBKU0hUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0FBNTFCNkUxNDgzQjYxNjAwQUQyNzUyIC8q
IEluc3BlY3RvckJhc2VBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNzY2OCw2ICsyNzY3NSw3
IEBACiAJCQkJRjM4MjA4OTgxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwMzNBNkE3RTE0N0UwN0U3MDA1MDlCMzYgLyogSFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTAzM0E2QTgxMTQ3RTA4
ODYwMDUwOUIzNiAvKiBKU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk3QUE1MUI2RjE0ODNCNjE2MDBBRDI3NTIgLyogSW5zcGVjdG9yQmFzZUFnZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2Vu
dC5jcHAKaW5kZXggYzQwYWU1MTE3NDc1NWYwN2ZkMmJhNzUwMjg1NTVmNDNiYWUzYTY3Ni4uMTI5
ZTA3MDBjNjQzZGVlM2Q5YTMwODBkZGM1MWRhNTIzZjM3YzE4YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCkBAIC02MSwxMCArNjEsMTAgQEAgc3RhdGlj
IGNvbnN0IGNoYXIgc2NyaXB0c1BhbmVsTmFtZVtdID0gInNjcmlwdHMiOwogc3RhdGljIGNvbnN0
IGNoYXIgY29uc29sZVBhbmVsTmFtZVtdID0gImNvbnNvbGUiOwogc3RhdGljIGNvbnN0IGNoYXIg
cHJvZmlsZXNQYW5lbE5hbWVbXSA9ICJwcm9maWxlcyI7CiAKLUluc3BlY3RvckFnZW50OjpJbnNw
ZWN0b3JBZ2VudChQYWdlKiBwYWdlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2Ny
aXB0TWFuYWdlciwgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKLSAg
ICA6IG1faW5zcGVjdGVkUGFnZShwYWdlKQorSW5zcGVjdG9yQWdlbnQ6Okluc3BlY3RvckFnZW50
KFBhZ2UqIHBhZ2UsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LCBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0
ZSogc3RhdGUpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywg
c3RhdGUpCisgICAgLCBtX2luc3BlY3RlZFBhZ2UocGFnZSkKICAgICAsIG1fZnJvbnRlbmQoMCkK
LSAgICAsIG1faW5zdHJ1bWVudGluZ0FnZW50cyhpbnN0cnVtZW50aW5nQWdlbnRzKQogICAgICwg
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwgbV9j
YW5Jc3N1ZUV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoZmFsc2UpCiAgICAgLCBtX2RpZENvbW1p
dExvYWRGaXJlZChmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50
LmgKaW5kZXggNDlmZGY2ZGQ4ZGQ5YzIwYzBiMzNhOWY2ZjhhMTBlZmY4NWFhNDEwOS4uZWMxMzFj
YzA1Mjg1MzE0YzI3ZjE4NGZkMDJjOWZkMzA5OTRmNmNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckFnZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpZm5kZWYgSW5zcGVj
dG9yQWdlbnRfaAogI2RlZmluZSBJbnNwZWN0b3JBZ2VudF9oCiAKKyNpbmNsdWRlICJJbnNwZWN0
b3JCYXNlQWdlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTUwLDExICs1MSwxMCBA
QCBjbGFzcyBQYWdlOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSW5z
cGVjdG9yQWdlbnQgeworY2xhc3MgSW5zcGVjdG9yQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFz
ZUFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JBZ2VudCk7Ci0gICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgSW5zcGVjdG9yQWdlbnQoUGFn
ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3RydW1lbnRpbmdBZ2VudHMqKTsKKyAgICBJ
bnNwZWN0b3JBZ2VudChQYWdlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zdHJ1bWVudGlu
Z0FnZW50cyosIEluc3BlY3RvclN0YXRlKik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yQWdlbnQo
KTsKIAogICAgIHZvaWQgaW5zcGVjdGVkUGFnZURlc3Ryb3llZCgpOwpAQCAtNjQsMTAgKzY0LDEx
IEBAIHB1YmxpYzoKICAgICBLVVJMIGluc3BlY3RlZFVSTCgpIGNvbnN0OwogICAgIEtVUkwgaW5z
cGVjdGVkVVJMV2l0aG91dEZyYWdtZW50KCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldEZyb250ZW5k
KEluc3BlY3RvckZyb250ZW5kKik7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKCkg
Y29uc3QgeyByZXR1cm4gbV9mcm9udGVuZDsgfQotICAgIHZvaWQgY2xlYXJGcm9udGVuZCgpOwot
ICAgIHZvaWQgcmVzdG9yZSgpOworCisgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3Bl
Y3RvckZyb250ZW5kKik7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVzdG9yZSgpOwogCiAgICAgdm9pZCBkaWRDbGVhcldpbmRvd09iamVjdElu
V29ybGQoRnJhbWUqLCBET01XcmFwcGVyV29ybGQqKTsKIApAQCAtMTAxLDcgKzEwMiw2IEBAIHBy
aXZhdGU6CiAKICAgICBQYWdlKiBtX2luc3BlY3RlZFBhZ2U7CiAgICAgSW5zcGVjdG9yRnJvbnRl
bmQqIG1fZnJvbnRlbmQ7Ci0gICAgSW5zdHJ1bWVudGluZ0FnZW50cyogbV9pbnN0cnVtZW50aW5n
QWdlbnRzOwogICAgIEluamVjdGVkU2NyaXB0TWFuYWdlciogbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXI7CiAKICAgICBWZWN0b3I8cGFpcjxsb25nLCBTdHJpbmc+ID4gbV9wZW5kaW5nRXZhbHVhdGVU
ZXN0Q29tbWFuZHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4IDBlNTUwYWUwYjE5NDNkY2Q5
MWRlNmNmZDE1NGVkNzUxNjM2Nzk4N2YuLmQ0NTgxOWNiOTkzYjY5MDIyMmRkMGUxMGFjNGY2NTA5
NDg3NDIzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCkBAIC00OSwxMCArNDksOSBAQCBzdGF0
aWMgY29uc3QgY2hhciBhcHBsaWNhdGlvbkNhY2hlQWdlbnRFbmFibGVkW10gPSAiYXBwbGljYXRp
b25DYWNoZUFnZW50RW5hYmxlZAogfQogCiBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6
Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9y
U3RhdGUqIHN0YXRlKQotICAgIDogbV9pbnN0cnVtZW50aW5nQWdlbnRzKGluc3RydW1lbnRpbmdB
Z2VudHMpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3Rh
dGUpCiAgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQpCiAgICAgLCBtX2Zyb250ZW5kKDApCi0g
ICAgLCBtX3N0YXRlKHN0YXRlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKaW5kZXggYzg5OWU2
N2FmZDRhZWJiNDMxNjRkZjI0NjQ3NjIzNmUyNzhjMzlmMC4uM2M5Y2ViY2JmYmI5YTU1YmI4NDdk
YjdiNTdjZjg0MDZkMzJkZGQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaApAQCAtMjgsNiArMjgsNyBA
QAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9z
dC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckJhc2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckZyb250ZW5kLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KQEAgLTQ4LDE2ICs0OSwxNiBAQCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNl
OwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50IHsKK2NsYXNzIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCA6
IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yU3RhdGUqKTsKICAgICB+SW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCkgeyB9CiAKLSAgICAvLyBJbnNwZWN0b3IgQ29u
dHJvbGxlciBBUEkKLSAgICB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKik7Ci0g
ICAgdm9pZCBjbGVhckZyb250ZW5kKCk7Ci0gICAgdm9pZCByZXN0b3JlKCk7CisgICAgLy8gSW5z
cGVjdG9yQmFzZUFnZW50CisgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZy
b250ZW5kKik7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVzdG9yZSgpOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIEFQSQog
ICAgIHZvaWQgdXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyhGcmFtZSopOwpAQCAtNzYsMTAg
Kzc3LDggQEAgcHJpdmF0ZToKIAogICAgIERvY3VtZW50TG9hZGVyKiBhc3NlcnRGcmFtZVdpdGhE
b2N1bWVudExvYWRlcihFcnJvclN0cmluZyosIFN0cmluZyBmcmFtZUlkKTsKIAotICAgIEluc3Ry
dW1lbnRpbmdBZ2VudHMqIG1faW5zdHJ1bWVudGluZ0FnZW50czsKICAgICBJbnNwZWN0b3JQYWdl
QWdlbnQqIG1fcGFnZUFnZW50OwogICAgIEluc3BlY3RvckZyb250ZW5kOjpBcHBsaWNhdGlvbkNh
Y2hlKiBtX2Zyb250ZW5kOwotICAgIEluc3BlY3RvclN0YXRlKiBtX3N0YXRlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckJhc2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQmFzZUFnZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmE1MDFmYjc4ZWJkMzRjYjE2ZDg4ZjI4YzFl
NWMzYWM4NWJmNDlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckJhc2VBZ2VudC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JCYXNlQWdlbnQuaCIKKworI2lmIEVOQUJMRShJTlNQRUNU
T1IpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW5zcGVjdG9yQmFzZUFnZW50OjpJbnNwZWN0
b3JCYXNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yU3RhdGUqIGluc3BlY3RvclN0YXRlKQorICAgIDogbV9pbnN0cnVtZW50aW5nQWdlbnRz
KGluc3RydW1lbnRpbmdBZ2VudHMpCisgICAgLCBtX3N0YXRlKGluc3BlY3RvclN0YXRlKQorewor
fQorCitJbnNwZWN0b3JCYXNlQWdlbnQ6On5JbnNwZWN0b3JCYXNlQWdlbnQoKQoreworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ3Zjk2NGIxYTM1YjA1ZmY5MDMyODczN2Q0ZTBmMDI5Mzk1OTIzODQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50LmgKQEAgLTAs
MCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgSW5zcGVjdG9yQmFzZUFnZW50X2gKKyNkZWZpbmUgSW5zcGVjdG9y
QmFzZUFnZW50X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJbnNwZWN0b3JGcm9u
dGVuZDsKK2NsYXNzIEluc3BlY3RvclN0YXRlOworY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsK
KworY2xhc3MgSW5zcGVjdG9yQmFzZUFnZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5JbnNw
ZWN0b3JCYXNlQWdlbnQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0
b3JGcm9udGVuZCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZSgpID0gMDsKKworcHJvdGVjdGVkOgorICAgIEluc3Bl
Y3RvckJhc2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqKTsKKwor
ICAgIEluc3RydW1lbnRpbmdBZ2VudHMqIG1faW5zdHJ1bWVudGluZ0FnZW50czsKKyAgICBJbnNw
ZWN0b3JTdGF0ZSogbV9zdGF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvckJhc2VBZ2VudF9oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggYWVmMzRhNTM1NzllY2RjYjZl
YmVmNGVhNGE1MDAxZjU4M2YxMTVlNi4uZTlkMzViNWFhNjEzNjAzZDJmNWRjMmVmOTBlNTZhMjYx
NWNmZjMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuY3BwCkBAIC0xODQsOCArMTg0LDggQEAgQ1NTU3R5bGVSdWxlKiBJbnNwZWN0b3JDU1NBZ2Vu
dDo6YXNDU1NTdHlsZVJ1bGUoQ1NTUnVsZSogcnVsZSkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Q1NTU3R5bGVSdWxlKj4ocnVsZSk7CiB9CiAKLUluc3BlY3RvckNTU0FnZW50OjpJbnNwZWN0b3JD
U1NBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0
b3JET01BZ2VudCogZG9tQWdlbnQpCi0gICAgOiBtX2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1
bWVudGluZ0FnZW50cykKK0luc3BlY3RvckNTU0FnZW50OjpJbnNwZWN0b3JDU1NBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3Rh
dGUsIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCkKKyAgICA6IEluc3BlY3RvckJhc2VBZ2Vu
dChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKICAgICAsIG1fZG9tQWdlbnQoZG9tQWdlbnQp
CiAgICAgLCBtX2xhc3RQc2V1ZG9TdGF0ZSgwKQogICAgICwgbV9sYXN0U3R5bGVTaGVldElkKDEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4IDkw
NjViNjRhZjRkZjU3MDMxNGY5MmFmYmU2ZTE1M2JmN2QzMzRkNjUuLmFiMWRkYjY4ZTQ2YjVjMTU4
YzBjZDA2MTc2Y2NmNzBiMTIxM2I0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjZGVmaW5lIEluc3BlY3RvckNT
U0FnZW50X2gKIAogI2luY2x1ZGUgIkNTU1NlbGVjdG9yLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9y
QmFzZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCkBAIC01
MSwxNyArNTIsMTkgQEAgY2xhc3MgTm9kZTsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKLWNs
YXNzIEluc3BlY3RvckNTU0FnZW50IDogcHVibGljIEluc3BlY3RvckRPTUFnZW50OjpET01MaXN0
ZW5lciB7CitjbGFzcyBJbnNwZWN0b3JDU1NBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdl
bnQsIHB1YmxpYyBJbnNwZWN0b3JET01BZ2VudDo6RE9NTGlzdGVuZXIgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKEluc3BlY3RvckNTU0FnZW50KTsKIHB1YmxpYzoKICAgICBzdGF0aWMgQ1NT
U3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldChDU1NSdWxlKik7CiAgICAgc3RhdGljIENTU1N0
eWxlUnVsZSogYXNDU1NTdHlsZVJ1bGUoQ1NTUnVsZSopOwogCi0gICAgSW5zcGVjdG9yQ1NTQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckRPTUFnZW50Kik7CisgICAgSW5zcGVj
dG9yQ1NTQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgSW5zcGVj
dG9yRE9NQWdlbnQqKTsKICAgICB+SW5zcGVjdG9yQ1NTQWdlbnQoKTsKIAogICAgIGJvb2wgZm9y
Y2VQc2V1ZG9TdGF0ZShFbGVtZW50KiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUpOwotICAgIHZv
aWQgY2xlYXJGcm9udGVuZCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0
b3JGcm9udGVuZCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7CisgICAg
dmlydHVhbCB2b2lkIHJlc3RvcmUoKSB7IH0KICAgICB2b2lkIHJlc2V0KCk7CiAKICAgICB2b2lk
IGdldENvbXB1dGVkU3R5bGVGb3JOb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCwgY29uc3Qg
UmVmUHRyPEluc3BlY3RvckFycmF5PiogZm9yY2VkUHNldWRvQ2xhc3NlcywgUmVmUHRyPEluc3Bl
Y3RvckFycmF5Piogc3R5bGUpOwpAQCAtMTA1LDcgKzEwOCw2IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGNsZWFyUHNldWRvU3RhdGUoYm9vbCByZWNhbGNTdHlsZXMpOwogCi0gICAgSW5zdHJ1bWVu
dGluZ0FnZW50cyogbV9pbnN0cnVtZW50aW5nQWdlbnRzOwogICAgIEluc3BlY3RvckRPTUFnZW50
KiBtX2RvbUFnZW50OwogICAgIFJlZlB0cjxFbGVtZW50PiBtX2xhc3RFbGVtZW50V2l0aFBzZXVk
b1N0YXRlOwogICAgIHVuc2lnbmVkIG1fbGFzdFBzZXVkb1N0YXRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCAxNzc2NTli
ZjVmOTVkYjg5ZTdmMzEwNzg1MzUzMmQwYjk0ZGI5YTI5Li4xOTc5YTZiYWRkOGFiYzk1NTQ0M2Q0
NWJlMmNhNDRhNjkwZWQwN2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcApAQCAtNTcsOCArNTcsNyBAQCBzdGF0aWMgY29uc3Qg
Y2hhciBjb25zb2xlTWVzc2FnZXNFbmFibGVkW10gPSAiY29uc29sZU1lc3NhZ2VzRW5hYmxlZCI7
CiB9CiAKIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6SW5zcGVjdG9yQ29uc29sZUFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0
ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAgOiBt
X2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGluZ0FnZW50cykKLSAgICAsIG1faW5zcGVj
dG9yU3RhdGUoc3RhdGUpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQoaW5zdHJ1bWVudGluZ0Fn
ZW50cywgc3RhdGUpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlw
dE1hbmFnZXIpCiAgICAgLCBtX2Zyb250ZW5kKDApCiAgICAgLCBtX3ByZXZpb3VzTWVzc2FnZSgw
KQpAQCAtNzEsMTMgKzcwLDEzIEBAIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6fkluc3BlY3RvckNv
bnNvbGVBZ2VudCgpCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JD
b25zb2xlQWdlbnQoMCk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzID0gMDsKLSAgICBtX2lu
c3BlY3RvclN0YXRlID0gMDsKKyAgICBtX3N0YXRlID0gMDsKICAgICBtX2luamVjdGVkU2NyaXB0
TWFuYWdlciA9IDA7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjplbmFibGUoRXJy
b3JTdHJpbmcqKQogewotICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldEJvb2xlYW4oQ29uc29sZUFn
ZW50U3RhdGU6OmNvbnNvbGVNZXNzYWdlc0VuYWJsZWQsIHRydWUpOworICAgIG1fc3RhdGUtPnNl
dEJvb2xlYW4oQ29uc29sZUFnZW50U3RhdGU6OmNvbnNvbGVNZXNzYWdlc0VuYWJsZWQsIHRydWUp
OwogCiAgICAgaWYgKG1fZXhwaXJlZENvbnNvbGVNZXNzYWdlQ291bnQpIHsKICAgICAgICAgQ29u
c29sZU1lc3NhZ2UgZXhwaXJlZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdl
VHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgU3RyaW5nOjpmb3JtYXQoIiVkIGNvbnNvbGUgbWVz
c2FnZXMgYXJlIG5vdCBzaG93bi4iLCBtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50KSwgMCwg
IiIsICIiKTsKQEAgLTkxLDcgKzkwLDcgQEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmVu
YWJsZShFcnJvclN0cmluZyopCiAKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaXNhYmxl
KEVycm9yU3RyaW5nKikKIHsKLSAgICBtX2luc3BlY3RvclN0YXRlLT5zZXRCb29sZWFuKENvbnNv
bGVBZ2VudFN0YXRlOjpjb25zb2xlTWVzc2FnZXNFbmFibGVkLCBmYWxzZSk7CisgICAgbV9zdGF0
ZS0+c2V0Qm9vbGVhbihDb25zb2xlQWdlbnRTdGF0ZTo6Y29uc29sZU1lc3NhZ2VzRW5hYmxlZCwg
ZmFsc2UpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y2xlYXJNZXNzYWdlcyhF
cnJvclN0cmluZyopCkBAIC0xMDAsNyArOTksNyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6Y2xlYXJNZXNzYWdlcyhFcnJvclN0cmluZyopCiAgICAgbV9leHBpcmVkQ29uc29sZU1lc3Nh
Z2VDb3VudCA9IDA7CiAgICAgbV9wcmV2aW91c01lc3NhZ2UgPSAwOwogICAgIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLT5yZWxlYXNlT2JqZWN0R3JvdXAoImNvbnNvbGUiKTsKLSAgICBpZiAobV9m
cm9udGVuZCAmJiBtX2luc3BlY3RvclN0YXRlLT5nZXRCb29sZWFuKENvbnNvbGVBZ2VudFN0YXRl
Ojpjb25zb2xlTWVzc2FnZXNFbmFibGVkKSkKKyAgICBpZiAobV9mcm9udGVuZCAmJiBtX3N0YXRl
LT5nZXRCb29sZWFuKENvbnNvbGVBZ2VudFN0YXRlOjpjb25zb2xlTWVzc2FnZXNFbmFibGVkKSkK
ICAgICAgICAgbV9mcm9udGVuZC0+bWVzc2FnZXNDbGVhcmVkKCk7CiB9CiAKQEAgLTExNCw3ICsx
MTMsNyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6cmVzZXQoKQogCiB2b2lkIEluc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6cmVzdG9yZSgpCiB7Ci0gICAgaWYgKG1faW5zcGVjdG9yU3RhdGUt
PmdldEJvb2xlYW4oQ29uc29sZUFnZW50U3RhdGU6OmNvbnNvbGVNZXNzYWdlc0VuYWJsZWQpKSB7
CisgICAgaWYgKG1fc3RhdGUtPmdldEJvb2xlYW4oQ29uc29sZUFnZW50U3RhdGU6OmNvbnNvbGVN
ZXNzYWdlc0VuYWJsZWQpKSB7CiAgICAgICAgIG1fZnJvbnRlbmQtPm1lc3NhZ2VzQ2xlYXJlZCgp
OwogICAgICAgICBFcnJvclN0cmluZyBlcnJvcjsKICAgICAgICAgZW5hYmxlKCZlcnJvcik7CkBA
IC0xMjksNyArMTI4LDcgQEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnNldEZyb250ZW5k
KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50
OjpjbGVhckZyb250ZW5kKCkKIHsKICAgICBtX2Zyb250ZW5kID0gMDsKLSAgICBtX2luc3BlY3Rv
clN0YXRlLT5zZXRCb29sZWFuKENvbnNvbGVBZ2VudFN0YXRlOjpjb25zb2xlTWVzc2FnZXNFbmFi
bGVkLCBmYWxzZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihDb25zb2xlQWdlbnRTdGF0ZTo6
Y29uc29sZU1lc3NhZ2VzRW5hYmxlZCwgZmFsc2UpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnNv
bGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2Fn
ZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBh
c3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPiBjYWxsU3RhY2spCkBAIC0yMTIsNyArMjExLDcgQEAgdm9pZCBJbnNwZWN0b3JDb25z
b2xlQWdlbnQ6OnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25lZCBsb25n
IGlkZW4KIHsKICAgICBpZiAoIWRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuOwotICAgIGlmIChtX2Zyb250ZW5kICYmIG1faW5zcGVjdG9yU3RhdGUtPmdldEJvb2xlYW4o
Q29uc29sZUFnZW50U3RhdGU6Om1vbml0b3JpbmdYSFIpKSB7CisgICAgaWYgKG1fZnJvbnRlbmQg
JiYgbV9zdGF0ZS0+Z2V0Qm9vbGVhbihDb25zb2xlQWdlbnRTdGF0ZTo6bW9uaXRvcmluZ1hIUikp
IHsKICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiWEhSIGZpbmlzaGVkIGxvYWRpbmc6IFwiIiAr
IHVybCArICJcIi4iOwogICAgICAgICBTdHJpbmcgcmVxdWVzdElkID0gSWRlbnRpZmllcnNGYWN0
b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllcik7CiAgICAgICAgIGFkZENvbnNvbGVNZXNzYWdlKGFk
b3B0UHRyKG5ldyBDb25zb2xlTWVzc2FnZShOZXR3b3JrTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2Fn
ZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgc2VuZExpbmVOdW1iZXIsIHNlbmRVUkws
IHJlcXVlc3RJZCkpKTsKQEAgLTI0OCw3ICsyNDcsNyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVB
Z2VudDo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNv
dQogCiB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQo
RXJyb3JTdHJpbmcqLCBib29sIGVuYWJsZWQpCiB7Ci0gICAgbV9pbnNwZWN0b3JTdGF0ZS0+c2V0
Qm9vbGVhbihDb25zb2xlQWdlbnRTdGF0ZTo6bW9uaXRvcmluZ1hIUiwgZW5hYmxlZCk7CisgICAg
bV9zdGF0ZS0+c2V0Qm9vbGVhbihDb25zb2xlQWdlbnRTdGF0ZTo6bW9uaXRvcmluZ1hIUiwgZW5h
YmxlZCk7CiB9CiAKIHN0YXRpYyBib29sIGlzR3JvdXBNZXNzYWdlKE1lc3NhZ2VUeXBlIHR5cGUp
CkBAIC0yNjUsMTIgKzI2NCwxMiBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6YWRkQ29u
c29sZU1lc3NhZ2UoUGFzc093blB0cjxDb25zb2xlTWVzc2FnZT4gY29uc29sZQogCiAgICAgaWYg
KG1fcHJldmlvdXNNZXNzYWdlICYmICFpc0dyb3VwTWVzc2FnZShtX3ByZXZpb3VzTWVzc2FnZS0+
dHlwZSgpKSAmJiBtX3ByZXZpb3VzTWVzc2FnZS0+aXNFcXVhbChjb25zb2xlTWVzc2FnZS5nZXQo
KSkpIHsKICAgICAgICAgbV9wcmV2aW91c01lc3NhZ2UtPmluY3JlbWVudENvdW50KCk7Ci0gICAg
ICAgIGlmIChtX2Zyb250ZW5kICYmIG1faW5zcGVjdG9yU3RhdGUtPmdldEJvb2xlYW4oQ29uc29s
ZUFnZW50U3RhdGU6OmNvbnNvbGVNZXNzYWdlc0VuYWJsZWQpKQorICAgICAgICBpZiAobV9mcm9u
dGVuZCAmJiBtX3N0YXRlLT5nZXRCb29sZWFuKENvbnNvbGVBZ2VudFN0YXRlOjpjb25zb2xlTWVz
c2FnZXNFbmFibGVkKSkKICAgICAgICAgICAgIG1fcHJldmlvdXNNZXNzYWdlLT51cGRhdGVSZXBl
YXRDb3VudEluQ29uc29sZShtX2Zyb250ZW5kKTsKICAgICB9IGVsc2UgewogICAgICAgICBtX3By
ZXZpb3VzTWVzc2FnZSA9IGNvbnNvbGVNZXNzYWdlLmdldCgpOwogICAgICAgICBtX2NvbnNvbGVN
ZXNzYWdlcy5hcHBlbmQoY29uc29sZU1lc3NhZ2UpOwotICAgICAgICBpZiAobV9mcm9udGVuZCAm
JiBtX2luc3BlY3RvclN0YXRlLT5nZXRCb29sZWFuKENvbnNvbGVBZ2VudFN0YXRlOjpjb25zb2xl
TWVzc2FnZXNFbmFibGVkKSkKKyAgICAgICAgaWYgKG1fZnJvbnRlbmQgJiYgbV9zdGF0ZS0+Z2V0
Qm9vbGVhbihDb25zb2xlQWdlbnRTdGF0ZTo6Y29uc29sZU1lc3NhZ2VzRW5hYmxlZCkpCiAgICAg
ICAgICAgICBtX3ByZXZpb3VzTWVzc2FnZS0+YWRkVG9Gcm9udGVuZChtX2Zyb250ZW5kLCBtX2lu
amVjdGVkU2NyaXB0TWFuYWdlcik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKaW5kZXggZDFjNzU3Zjk3MjMyMGMyZjQ2OTUz
YjI3ODlkNTkxMzI1MzU3NDFhZC4uNDFhYWVjMmM0N2ZjMTBhYWVlMmJhYTc1YjJjZWI3ZGNiYTMy
MjIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xl
QWdlbnQuaApAQCAtMjYsNiArMjYsNyBAQAogI2RlZmluZSBJbnNwZWN0b3JDb25zb2xlQWdlbnRf
aAogCiAjaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQmFzZUFn
ZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01MSw3ICs1Miw3IEBAIGNsYXNz
IFNjcmlwdFByb2ZpbGU7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJ
bnNwZWN0b3JDb25zb2xlQWdlbnQgeworY2xhc3MgSW5zcGVjdG9yQ29uc29sZUFnZW50IDogcHVi
bGljIEluc3BlY3RvckJhc2VBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVj
dG9yQ29uc29sZUFnZW50KTsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
Kik7CkBAIC02MSw5ICs2MiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNhYmxlKEVycm9yU3Ry
aW5nKik7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyTWVzc2FnZXMoRXJyb3JTdHJpbmcqKTsKICAg
ICB2b2lkIHJlc2V0KCk7Ci0gICAgdm9pZCByZXN0b3JlKCk7Ci0gICAgdm9pZCBzZXRGcm9udGVu
ZChJbnNwZWN0b3JGcm9udGVuZCopOwotICAgIHZvaWQgY2xlYXJGcm9udGVuZCgpOworCisgICAg
dmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKik7CisgICAgdmlydHVh
bCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZSgpOwogCiAg
ICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1
bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHZvaWQgYWRkTWVzc2Fn
ZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc2Ny
aXB0SWQpOwpAQCAtODksOCArOTEsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIGJvb2wg
ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpID0gMDsKIAotICAgIEluc3RydW1lbnRpbmdBZ2VudHMq
IG1faW5zdHJ1bWVudGluZ0FnZW50czsKLSAgICBJbnNwZWN0b3JTdGF0ZSogbV9pbnNwZWN0b3JT
dGF0ZTsKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
OwogICAgIEluc3BlY3RvckZyb250ZW5kOjpDb25zb2xlKiBtX2Zyb250ZW5kOwogICAgIENvbnNv
bGVNZXNzYWdlKiBtX3ByZXZpb3VzTWVzc2FnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA3ZTEzZTMzMzNlY2NiNDMzNTkxMDRk
YTg2MDAxNjgyNDllYzEzNTM3Li41YzQ2OGZmMTNjYzgyZmM2YmQxYmFlMDhmZTczYTY4ZTg2Nzg2
ZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCkBAIC03MywxMCArNzMsMTAgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9y
Q29udHJvbGxlcihQYWdlKiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICAgICA6
IG1faW5zdHJ1bWVudGluZ0FnZW50cyhhZG9wdFB0cihuZXcgSW5zdHJ1bWVudGluZ0FnZW50cygp
KSkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKEluamVjdGVkU2NyaXB0TWFuYWdlcjo6
Y3JlYXRlRm9yUGFnZSgpKQogICAgICwgbV9zdGF0ZShhZG9wdFB0cihuZXcgSW5zcGVjdG9yU3Rh
dGUoaW5zcGVjdG9yQ2xpZW50KSkpCi0gICAgLCBtX2luc3BlY3RvckFnZW50KGFkb3B0UHRyKG5l
dyBJbnNwZWN0b3JBZ2VudChwYWdlLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgbV9p
bnN0cnVtZW50aW5nQWdlbnRzLmdldCgpKSkpCisgICAgLCBtX2luc3BlY3RvckFnZW50KGFkb3B0
UHRyKG5ldyBJbnNwZWN0b3JBZ2VudChwYWdlLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQo
KSwgbV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSkpCiAgICAgLCBt
X3BhZ2VBZ2VudChJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2Vu
dHMuZ2V0KCksIHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdl
dCgpKSkKICAgICAsIG1fZG9tQWdlbnQoSW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZShtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fcGFnZUFnZW50LmdldCgpLCBpbnNwZWN0b3JDbGllbnQs
IG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSkKLSAgICAsIG1f
Y3NzQWdlbnQoYWRvcHRQdHIobmV3IEluc3BlY3RvckNTU0FnZW50KG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5nZXQoKSwgbV9kb21BZ2VudC5nZXQoKSkpKQorICAgICwgbV9jc3NBZ2VudChhZG9wdFB0
cihuZXcgSW5zcGVjdG9yQ1NTQWdlbnQobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0
YXRlLmdldCgpLCBtX2RvbUFnZW50LmdldCgpKSkpCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkK
ICAgICAsIG1fZGF0YWJhc2VBZ2VudChJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpjcmVhdGUobV9p
bnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSkKICNlbmRpZgpAQCAtODcs
NyArODcsNyBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2Uq
IHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogICAgICwgbV90aW1lbGluZUFnZW50
KEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0
KCksIG1fc3RhdGUuZ2V0KCkpKQogICAgICwgbV9hcHBsaWNhdGlvbkNhY2hlQWdlbnQoYWRvcHRQ
dHIobmV3IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChtX2luc3RydW1lbnRpbmdBZ2Vu
dHMuZ2V0KCksIG1fcGFnZUFnZW50LmdldCgpLCBtX3N0YXRlLmdldCgpKSkpCiAgICAgLCBtX3Jl
c291cmNlQWdlbnQoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGlu
Z0FnZW50cy5nZXQoKSwgbV9wYWdlQWdlbnQuZ2V0KCksIGluc3BlY3RvckNsaWVudCwgbV9zdGF0
ZS5nZXQoKSkpCi0gICAgLCBtX3J1bnRpbWVBZ2VudChhZG9wdFB0cihuZXcgUGFnZVJ1bnRpbWVB
Z2VudChtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmdldCgpLCBwYWdlLCBtX3BhZ2VBZ2VudC5nZXQoKSkpKQorICAgICwgbV9ydW50aW1lQWdlbnQo
YWRvcHRQdHIobmV3IFBhZ2VSdW50aW1lQWdlbnQobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgcGFnZSwgbV9w
YWdlQWdlbnQuZ2V0KCkpKSkKICAgICAsIG1fY29uc29sZUFnZW50KGFkb3B0UHRyKG5ldyBQYWdl
Q29uc29sZUFnZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbnNwZWN0b3JBZ2Vu
dC5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1f
ZG9tQWdlbnQuZ2V0KCkpKSkKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICAs
IG1fZGVidWdnZXJBZ2VudChQYWdlRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGlu
Z0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgcGFnZSwgbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXIuZ2V0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKaW5kZXggOWQ4MDVjYWM3OGFiZjc0Y2NlNTA5OTMwODJiYzI0NTg3ZGUyNjcxZi4uMWEy
NTExZWQ3NDBkNWNlYTYyNmYzNjc3ZTU2NzgxZjJhMWJhYjE1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0xNzIsMTAgKzE3Miw5IEBA
IHZvaWQgUmV2YWxpZGF0ZVN0eWxlQXR0cmlidXRlVGFzazo6b25UaW1lcihUaW1lcjxSZXZhbGlk
YXRlU3R5bGVBdHRyaWJ1dGVUYXNrPiopCiB9CiAKIEluc3BlY3RvckRPTUFnZW50OjpJbnNwZWN0
b3JET01BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNw
ZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIEluc3Bl
Y3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3Rl
ZFNjcmlwdE1hbmFnZXIpCi0gICAgOiBtX2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGlu
Z0FnZW50cykKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBp
bnNwZWN0b3JTdGF0ZSkKICAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fY2xp
ZW50KGNsaWVudCkKLSAgICAsIG1faW5zcGVjdG9yU3RhdGUoaW5zcGVjdG9yU3RhdGUpCiAgICAg
LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBt
X2Zyb250ZW5kKDApCiAgICAgLCBtX2RvbUxpc3RlbmVyKDApCkBAIC0yMTIsNyArMjExLDcgQEAg
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Y2xlYXJGcm9udGVuZCgpCiAKICAgICBtX2Zyb250ZW5k
ID0gMDsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckRPTUFnZW50KDAp
OwotICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldEJvb2xlYW4oRE9NQWdlbnRTdGF0ZTo6ZG9jdW1l
bnRSZXF1ZXN0ZWQsIGZhbHNlKTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKERPTUFnZW50U3Rh
dGU6OmRvY3VtZW50UmVxdWVzdGVkLCBmYWxzZSk7CiAgICAgcmVzZXQoKTsKIH0KIApAQCAtMjY0
LDcgKzI2Myw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldERvY3VtZW50KERvY3VtZW50
KiBkb2MpCiAKICAgICBtX2RvY3VtZW50ID0gZG9jOwogCi0gICAgaWYgKCFtX2luc3BlY3RvclN0
YXRlLT5nZXRCb29sZWFuKERPTUFnZW50U3RhdGU6OmRvY3VtZW50UmVxdWVzdGVkKSkKKyAgICBp
ZiAoIW1fc3RhdGUtPmdldEJvb2xlYW4oRE9NQWdlbnRTdGF0ZTo6ZG9jdW1lbnRSZXF1ZXN0ZWQp
KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJbW1lZGlhdGVseSBjb21tdW5pY2F0ZSAwIGRv
Y3VtZW50IG9yIGRvY3VtZW50IHRoYXQgaGFzIGZpbmlzaGVkIGxvYWRpbmcuCkBAIC0zNTQsNyAr
MzUzLDcgQEAgSFRNTEVsZW1lbnQqIEluc3BlY3RvckRPTUFnZW50Ojphc3NlcnRIVE1MRWxlbWVu
dChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludAogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpnZXREb2N1bWVudChFcnJvclN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByb290
KQogewotICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldEJvb2xlYW4oRE9NQWdlbnRTdGF0ZTo6ZG9j
dW1lbnRSZXF1ZXN0ZWQsIHRydWUpOworICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oRE9NQWdlbnRT
dGF0ZTo6ZG9jdW1lbnRSZXF1ZXN0ZWQsIHRydWUpOwogCiAgICAgaWYgKCFtX2RvY3VtZW50KQog
ICAgICAgICByZXR1cm47CkBAIC0xMzEyLDcgKzEzMTEsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFn
ZW50OjptYWluRnJhbWVET01Db250ZW50TG9hZGVkKCkKIHsKICAgICAvLyBSZS1wdXNoIGRvY3Vt
ZW50IG9uY2UgaXQgaXMgbG9hZGVkLgogICAgIGRpc2NhcmRCaW5kaW5ncygpOwotICAgIGlmICht
X2luc3BlY3RvclN0YXRlLT5nZXRCb29sZWFuKERPTUFnZW50U3RhdGU6OmRvY3VtZW50UmVxdWVz
dGVkKSkKKyAgICBpZiAobV9zdGF0ZS0+Z2V0Qm9vbGVhbihET01BZ2VudFN0YXRlOjpkb2N1bWVu
dFJlcXVlc3RlZCkpCiAgICAgICAgIG1fZnJvbnRlbmQtPmRvY3VtZW50VXBkYXRlZCgpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmluZGV4IDBm
ODBkNDg3NzhkNmU5ZGEzNmE2ZjkzNjg4YTAxNDIzN2RhMzA3MzUuLjUyNWY4YTFiNTI4ZjdhNDgx
M2I0YjBkOTBiMjQ4NGU1MDk0YTg4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJn
ZXQuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2Ny
aXB0TWFuYWdlci5oIgorI2luY2x1ZGUgIkluc3BlY3RvckJhc2VBZ2VudC5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKQEAgLTg2LDcgKzg3LDggQEAgc3RydWN0IEV2ZW50TGlzdGVuZXJJbmZv
IHsKICAgICBjb25zdCBFdmVudExpc3RlbmVyVmVjdG9yIGV2ZW50TGlzdGVuZXJWZWN0b3I7CiB9
OwogCi1jbGFzcyBJbnNwZWN0b3JET01BZ2VudCB7CitjbGFzcyBJbnNwZWN0b3JET01BZ2VudCA6
IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElu
c3BlY3RvckRPTUFnZW50KTsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgRE9NTGlzdGVuZXIgewogICAg
ICAgICB2aXJ0dWFsIH5ET01MaXN0ZW5lcigpCkBAIC0xMDQsOSArMTA2LDkgQEAgcHVibGljOgog
CiAgICAgfkluc3BlY3RvckRPTUFnZW50KCk7CiAKLSAgICB2b2lkIHNldEZyb250ZW5kKEluc3Bl
Y3RvckZyb250ZW5kKik7Ci0gICAgdm9pZCBjbGVhckZyb250ZW5kKCk7Ci0gICAgdm9pZCByZXN0
b3JlKCk7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKik7
CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVz
dG9yZSgpOwogCiAgICAgVmVjdG9yPERvY3VtZW50Kj4gZG9jdW1lbnRzKCk7CiAgICAgdm9pZCBy
ZXNldCgpOwpAQCAtMjEzLDEwICsyMTUsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaXNjYXJk
QmluZGluZ3MoKTsKIAotICAgIEluc3RydW1lbnRpbmdBZ2VudHMqIG1faW5zdHJ1bWVudGluZ0Fn
ZW50czsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIG1fcGFnZUFnZW50OwogICAgIEluc3BlY3Rv
ckNsaWVudCogbV9jbGllbnQ7Ci0gICAgSW5zcGVjdG9yU3RhdGUqIG1faW5zcGVjdG9yU3RhdGU7
CiAgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKICAg
ICBJbnNwZWN0b3JGcm9udGVuZDo6RE9NKiBtX2Zyb250ZW5kOwogICAgIERPTUxpc3RlbmVyKiBt
X2RvbUxpc3RlbmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDEyNmU3Mzg2MTQ3Y2JkOTRlODJhMmYxODU3
YzRlMzc2MDAxYTYyYTcuLmEzNjhmZWZlNGNmMWMzYjhlMzQ3YmVmMmUzOTY4M2RhZGU4MGExMWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dl
ckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVi
dWdnZXJBZ2VudC5jcHAKQEAgLTc1LDggKzc1LDcgQEAgUGFzc093blB0cjxJbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50PiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWUK
IH0KIAogSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0
ZSogaW5zcGVjdG9yU3RhdGUsIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCwgSW5zcGVjdG9y
RGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCwgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFn
ZW50KQotICAgIDogbV9pbnN0cnVtZW50aW5nQWdlbnRzKGluc3RydW1lbnRpbmdBZ2VudHMpCi0g
ICAgLCBtX2luc3BlY3RvclN0YXRlKGluc3BlY3RvclN0YXRlKQorICAgIDogSW5zcGVjdG9yQmFz
ZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQogICAgICwgbV9kb21B
Z2VudChkb21BZ2VudCkKICAgICAsIG1fZGVidWdnZXJBZ2VudChkZWJ1Z2dlckFnZW50KQogICAg
ICwgbV9pbnNwZWN0b3JBZ2VudChpbnNwZWN0b3JBZ2VudCkKQEAgLTEyNCw5ICsxMjMsOSBAQCB2
b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OnNldEV2ZW50TGlzdGVuZXJCcmVha3BvaW50
KEVycm9yU3RyaW5nKiBlcnJvciwgYwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gZXZlbnRMaXN0ZW5lckJyZWFrcG9pbnRzID0gbV9pbnNwZWN0
b3JTdGF0ZS0+Z2V0T2JqZWN0KERPTURlYnVnZ2VyQWdlbnRTdGF0ZTo6ZXZlbnRMaXN0ZW5lckJy
ZWFrcG9pbnRzKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBldmVudExpc3RlbmVyQnJl
YWtwb2ludHMgPSBtX3N0YXRlLT5nZXRPYmplY3QoRE9NRGVidWdnZXJBZ2VudFN0YXRlOjpldmVu
dExpc3RlbmVyQnJlYWtwb2ludHMpOwogICAgIGV2ZW50TGlzdGVuZXJCcmVha3BvaW50cy0+c2V0
Qm9vbGVhbihldmVudE5hbWUsIHRydWUpOwotICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldE9iamVj
dChET01EZWJ1Z2dlckFnZW50U3RhdGU6OmV2ZW50TGlzdGVuZXJCcmVha3BvaW50cywgZXZlbnRM
aXN0ZW5lckJyZWFrcG9pbnRzKTsKKyAgICBtX3N0YXRlLT5zZXRPYmplY3QoRE9NRGVidWdnZXJB
Z2VudFN0YXRlOjpldmVudExpc3RlbmVyQnJlYWtwb2ludHMsIGV2ZW50TGlzdGVuZXJCcmVha3Bv
aW50cyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6cmVtb3ZlRXZlbnRM
aXN0ZW5lckJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIGV2ZW50
TmFtZSkKQEAgLTEzNiw5ICsxMzUsOSBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6
OnJlbW92ZUV2ZW50TGlzdGVuZXJCcmVha3BvaW50KEVycm9yU3RyaW5nKiBlcnJvcgogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZXZlbnRMaXN0
ZW5lckJyZWFrcG9pbnRzID0gbV9pbnNwZWN0b3JTdGF0ZS0+Z2V0T2JqZWN0KERPTURlYnVnZ2Vy
QWdlbnRTdGF0ZTo6ZXZlbnRMaXN0ZW5lckJyZWFrcG9pbnRzKTsKKyAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBldmVudExpc3RlbmVyQnJlYWtwb2ludHMgPSBtX3N0YXRlLT5nZXRPYmplY3Qo
RE9NRGVidWdnZXJBZ2VudFN0YXRlOjpldmVudExpc3RlbmVyQnJlYWtwb2ludHMpOwogICAgIGV2
ZW50TGlzdGVuZXJCcmVha3BvaW50cy0+cmVtb3ZlKGV2ZW50TmFtZSk7Ci0gICAgbV9pbnNwZWN0
b3JTdGF0ZS0+c2V0T2JqZWN0KERPTURlYnVnZ2VyQWdlbnRTdGF0ZTo6ZXZlbnRMaXN0ZW5lckJy
ZWFrcG9pbnRzLCBldmVudExpc3RlbmVyQnJlYWtwb2ludHMpOworICAgIG1fc3RhdGUtPnNldE9i
amVjdChET01EZWJ1Z2dlckFnZW50U3RhdGU6OmV2ZW50TGlzdGVuZXJCcmVha3BvaW50cywgZXZl
bnRMaXN0ZW5lckJyZWFrcG9pbnRzKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50OjpkaWRJbnZhbGlkYXRlU3R5bGVBdHRyKE5vZGUqIG5vZGUpCkBAIC0zMzEsNyArMzMwLDcg
QEAgdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ojp1cGRhdGVTdWJ0cmVlQnJlYWtwb2lu
dHMoTm9kZSogbm9kZSwgdWludDMyX3Qgcm8KIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dDo6cGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQoY29uc3QgU3RyaW5nJiBjYXRlZ29yeVR5cGUs
IGNvbnN0IFN0cmluZyYgZXZlbnROYW1lLCBib29sIHN5bmNocm9ub3VzKQogewogICAgIFN0cmlu
ZyBmdWxsRXZlbnROYW1lID0gY2F0ZWdvcnlUeXBlICsgJzonICsgZXZlbnROYW1lOwotICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGV2ZW50TGlzdGVuZXJCcmVha3BvaW50cyA9IG1faW5zcGVj
dG9yU3RhdGUtPmdldE9iamVjdChET01EZWJ1Z2dlckFnZW50U3RhdGU6OmV2ZW50TGlzdGVuZXJC
cmVha3BvaW50cyk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZXZlbnRMaXN0ZW5lckJy
ZWFrcG9pbnRzID0gbV9zdGF0ZS0+Z2V0T2JqZWN0KERPTURlYnVnZ2VyQWdlbnRTdGF0ZTo6ZXZl
bnRMaXN0ZW5lckJyZWFrcG9pbnRzKTsKICAgICBpZiAoZXZlbnRMaXN0ZW5lckJyZWFrcG9pbnRz
LT5maW5kKGZ1bGxFdmVudE5hbWUpID09IGV2ZW50TGlzdGVuZXJCcmVha3BvaW50cy0+ZW5kKCkp
CiAgICAgICAgIHJldHVybjsKIApAQCAtMzQ2LDM0ICszNDUsMzQgQEAgdm9pZCBJbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50OjpwYXVzZU9uTmF0aXZlRXZlbnRJZk5lZWRlZChjb25zdCBTdHJpbmcm
IGNhdGVnb3IKIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6c2V0WEhSQnJlYWtwb2lu
dChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIGlmICh1cmwuaXNFbXB0
eSgpKSB7Ci0gICAgICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldEJvb2xlYW4oRE9NRGVidWdnZXJB
Z2VudFN0YXRlOjpwYXVzZU9uQWxsWEhScywgdHJ1ZSk7CisgICAgICAgIG1fc3RhdGUtPnNldEJv
b2xlYW4oRE9NRGVidWdnZXJBZ2VudFN0YXRlOjpwYXVzZU9uQWxsWEhScywgdHJ1ZSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiB4aHJCcmVh
a3BvaW50cyA9IG1faW5zcGVjdG9yU3RhdGUtPmdldE9iamVjdChET01EZWJ1Z2dlckFnZW50U3Rh
dGU6OnhockJyZWFrcG9pbnRzKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiB4aHJCcmVh
a3BvaW50cyA9IG1fc3RhdGUtPmdldE9iamVjdChET01EZWJ1Z2dlckFnZW50U3RhdGU6OnhockJy
ZWFrcG9pbnRzKTsKICAgICB4aHJCcmVha3BvaW50cy0+c2V0Qm9vbGVhbih1cmwsIHRydWUpOwot
ICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldE9iamVjdChET01EZWJ1Z2dlckFnZW50U3RhdGU6Onho
ckJyZWFrcG9pbnRzLCB4aHJCcmVha3BvaW50cyk7CisgICAgbV9zdGF0ZS0+c2V0T2JqZWN0KERP
TURlYnVnZ2VyQWdlbnRTdGF0ZTo6eGhyQnJlYWtwb2ludHMsIHhockJyZWFrcG9pbnRzKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpyZW1vdmVYSFJCcmVha3BvaW50KEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgaWYgKHVybC5pc0VtcHR5KCkp
IHsKLSAgICAgICAgbV9pbnNwZWN0b3JTdGF0ZS0+c2V0Qm9vbGVhbihET01EZWJ1Z2dlckFnZW50
U3RhdGU6OnBhdXNlT25BbGxYSFJzLCBmYWxzZSk7CisgICAgICAgIG1fc3RhdGUtPnNldEJvb2xl
YW4oRE9NRGVidWdnZXJBZ2VudFN0YXRlOjpwYXVzZU9uQWxsWEhScywgZmFsc2UpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4geGhyQnJlYWtw
b2ludHMgPSBtX2luc3BlY3RvclN0YXRlLT5nZXRPYmplY3QoRE9NRGVidWdnZXJBZ2VudFN0YXRl
Ojp4aHJCcmVha3BvaW50cyk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4geGhyQnJlYWtw
b2ludHMgPSBtX3N0YXRlLT5nZXRPYmplY3QoRE9NRGVidWdnZXJBZ2VudFN0YXRlOjp4aHJCcmVh
a3BvaW50cyk7CiAgICAgeGhyQnJlYWtwb2ludHMtPnJlbW92ZSh1cmwpOwotICAgIG1faW5zcGVj
dG9yU3RhdGUtPnNldE9iamVjdChET01EZWJ1Z2dlckFnZW50U3RhdGU6OnhockJyZWFrcG9pbnRz
LCB4aHJCcmVha3BvaW50cyk7CisgICAgbV9zdGF0ZS0+c2V0T2JqZWN0KERPTURlYnVnZ2VyQWdl
bnRTdGF0ZTo6eGhyQnJlYWtwb2ludHMsIHhockJyZWFrcG9pbnRzKTsKIH0KIAogdm9pZCBJbnNw
ZWN0b3JET01EZWJ1Z2dlckFnZW50Ojp3aWxsU2VuZFhNTEh0dHBSZXF1ZXN0KGNvbnN0IFN0cmlu
ZyYgdXJsKQogewogICAgIFN0cmluZyBicmVha3BvaW50VVJMOwotICAgIGlmIChtX2luc3BlY3Rv
clN0YXRlLT5nZXRCb29sZWFuKERPTURlYnVnZ2VyQWdlbnRTdGF0ZTo6cGF1c2VPbkFsbFhIUnMp
KQorICAgIGlmIChtX3N0YXRlLT5nZXRCb29sZWFuKERPTURlYnVnZ2VyQWdlbnRTdGF0ZTo6cGF1
c2VPbkFsbFhIUnMpKQogICAgICAgICBicmVha3BvaW50VVJMID0gIiI7CiAgICAgZWxzZSB7Ci0g
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHhockJyZWFrcG9pbnRzID0gbV9pbnNwZWN0
b3JTdGF0ZS0+Z2V0T2JqZWN0KERPTURlYnVnZ2VyQWdlbnRTdGF0ZTo6eGhyQnJlYWtwb2ludHMp
OworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiB4aHJCcmVha3BvaW50cyA9IG1fc3Rh
dGUtPmdldE9iamVjdChET01EZWJ1Z2dlckFnZW50U3RhdGU6OnhockJyZWFrcG9pbnRzKTsKICAg
ICAgICAgZm9yIChJbnNwZWN0b3JPYmplY3Q6Oml0ZXJhdG9yIGl0ID0geGhyQnJlYWtwb2ludHMt
PmJlZ2luKCk7IGl0ICE9IHhockJyZWFrcG9pbnRzLT5lbmQoKTsgKytpdCkgewogICAgICAgICAg
ICAgaWYgKHVybC5jb250YWlucyhpdC0+Zmlyc3QpKSB7CiAgICAgICAgICAgICAgICAgYnJlYWtw
b2ludFVSTCA9IGl0LT5maXJzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCmluZGV4IDU4MWM0YmM4MWIwMjM0ZjQxZjM5ZGE1
MThhOGM1YThhYzYxNDQ0NzkuLmQyZDJmMmViNzNhYTA5MTUxMmQ2NjlmNDc0ZWIxNmJjM2ZlYWYz
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRf
REVCVUdHRVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCiAKKyNpbmNsdWRlICJJbnNwZWN0b3JCYXNl
QWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTMsMTUgKzU0
LDEzIEBAIGNsYXNzIE5vZGU7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFz
cyBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50IDogcHVibGljIEluc3BlY3RvckRlYnVnZ2VyQWdl
bnQ6Okxpc3RlbmVyIHsKK2NsYXNzIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQgOiBwdWJsaWMg
SW5zcGVjdG9yQmFzZUFnZW50LCBwdWJsaWMgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6TGlzdGVu
ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQp
OwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbnNwZWN0
b3JET01BZ2VudCosIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqLCBJbnNwZWN0b3JBZ2VudCopOwog
CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgpOwogCi0gICAgdm9pZCBj
bGVhckZyb250ZW5kKCk7Ci0KICAgICAvLyBET01EZWJ1Z2dlciBBUEkgZm9yIEluc3BlY3RvckZy
b250ZW5kCiAgICAgdm9pZCBzZXRYSFJCcmVha3BvaW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiB1cmwpOwogICAgIHZvaWQgcmVtb3ZlWEhSQnJlYWtwb2ludChFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgdXJsKTsKQEAgLTgwLDYgKzc5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHdp
bGxTZW5kWE1MSHR0cFJlcXVlc3QoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgcGF1c2VP
bk5hdGl2ZUV2ZW50SWZOZWVkZWQoY29uc3QgU3RyaW5nJiBjYXRlZ29yeVR5cGUsIGNvbnN0IFN0
cmluZyYgZXZlbnROYW1lLCBib29sIHN5bmNocm9ub3VzKTsKIAorICAgIHZpcnR1YWwgdm9pZCBz
ZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjbGVh
ckZyb250ZW5kKCk7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmUoKSB7IH0KKwogcHJpdmF0ZToK
ICAgICBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNw
ZWN0b3JTdGF0ZSosIEluc3BlY3RvckRPTUFnZW50KiwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCos
IEluc3BlY3RvckFnZW50Kik7CiAKQEAgLTk1LDggKzk4LDYgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgY2xlYXIoKTsKIAotICAgIEluc3RydW1lbnRpbmdBZ2VudHMqIG1faW5zdHJ1bWVudGluZ0Fn
ZW50czsKLSAgICBJbnNwZWN0b3JTdGF0ZSogbV9pbnNwZWN0b3JTdGF0ZTsKICAgICBJbnNwZWN0
b3JET01BZ2VudCogbV9kb21BZ2VudDsKICAgICBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBtX2Rl
YnVnZ2VyQWdlbnQ7CiAgICAgSW5zcGVjdG9yQWdlbnQqIG1faW5zcGVjdG9yQWdlbnQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQu
Y3BwCmluZGV4IDZjODJjNWUwYWExYWRkZDhlMDBlMjAxMDRlYmI4ODM5NTY0OWRhZTcuLjJkMDY5
MThlMGNiMzcwYTc4Y2Q1MmI3ODQ1ODI3NzVhY2Q0YjJlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC01Niw4
ICs1Niw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIGRvbVN0b3JhZ2VBZ2VudEVuYWJsZWRbXSA9ICJk
b21TdG9yYWdlQWdlbnRFbmFibGVkIjsKIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFJlZlB0cjxJbnNw
ZWN0b3JET01TdG9yYWdlUmVzb3VyY2U+ID4gRE9NU3RvcmFnZVJlc291cmNlc01hcDsKIAogSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQot
ICAgIDogbV9pbnN0cnVtZW50aW5nQWdlbnRzKGluc3RydW1lbnRpbmdBZ2VudHMpCi0gICAgLCBt
X2luc3BlY3RvclN0YXRlKHN0YXRlKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50KGluc3RydW1l
bnRpbmdBZ2VudHMsIHN0YXRlKQogICAgICwgbV9mcm9udGVuZCgwKQogICAgICwgbV9lbmFibGVk
KGZhbHNlKQogewpAQCAtODYsNyArODUsNyBAQCB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dDo6Y2xlYXJGcm9udGVuZCgpCiAKIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpyZXN0
b3JlKCkKIHsKLSAgICBtX2VuYWJsZWQgPSAgbV9pbnNwZWN0b3JTdGF0ZS0+Z2V0Qm9vbGVhbihE
T01TdG9yYWdlQWdlbnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50RW5hYmxlZCk7CisgICAgbV9lbmFi
bGVkID0gIG1fc3RhdGUtPmdldEJvb2xlYW4oRE9NU3RvcmFnZUFnZW50U3RhdGU6OmRvbVN0b3Jh
Z2VBZ2VudEVuYWJsZWQpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZW5h
YmxlKEVycm9yU3RyaW5nKikKQEAgLTk0LDcgKzkzLDcgQEAgdm9pZCBJbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopCiAgICAgaWYgKG1fZW5hYmxlZCkKICAgICAg
ICAgcmV0dXJuOwogICAgIG1fZW5hYmxlZCA9IHRydWU7Ci0gICAgbV9pbnNwZWN0b3JTdGF0ZS0+
c2V0Qm9vbGVhbihET01TdG9yYWdlQWdlbnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50RW5hYmxlZCwg
bV9lbmFibGVkKTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKERPTVN0b3JhZ2VBZ2VudFN0YXRl
Ojpkb21TdG9yYWdlQWdlbnRFbmFibGVkLCBtX2VuYWJsZWQpOwogCiAgICAgRE9NU3RvcmFnZVJl
c291cmNlc01hcDo6aXRlcmF0b3IgcmVzb3VyY2VzRW5kID0gbV9yZXNvdXJjZXMuZW5kKCk7CiAg
ICAgZm9yIChET01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2Vz
LmJlZ2luKCk7IGl0ICE9IHJlc291cmNlc0VuZDsgKytpdCkKQEAgLTEwNiw3ICsxMDUsNyBAQCB2
b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCiAgICAg
aWYgKCFtX2VuYWJsZWQpCiAgICAgICAgIHJldHVybjsKICAgICBtX2VuYWJsZWQgPSBmYWxzZTsK
LSAgICBtX2luc3BlY3RvclN0YXRlLT5zZXRCb29sZWFuKERPTVN0b3JhZ2VBZ2VudFN0YXRlOjpk
b21TdG9yYWdlQWdlbnRFbmFibGVkLCBtX2VuYWJsZWQpOworICAgIG1fc3RhdGUtPnNldEJvb2xl
YW4oRE9NU3RvcmFnZUFnZW50U3RhdGU6OmRvbVN0b3JhZ2VBZ2VudEVuYWJsZWQsIG1fZW5hYmxl
ZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpnZXRET01TdG9yYWdlRW50
cmllcyhFcnJvclN0cmluZyosIGludCBzdG9yYWdlSWQsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4q
IGVudHJpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50LmgKaW5kZXggYjFkYWJmOTQwMWU5NmU2MGMyZTYzNDcyN2EzNTEwZTNjZTA4
OTAxZS4uNWY3ZWQwMjYzNTRkOTRkNWVkZTEzOGEyZGNhZjQxY2U2ZTUzZGIwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaApA
QCAtMjksNiArMjksNyBAQAogI2lmbmRlZiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnRfaAogI2Rl
ZmluZSBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnRfaAogCisjaW5jbHVkZSAiSW5zcGVjdG9yQmFz
ZUFnZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBAIC00Niw3ICs0Nyw3IEBAIGNs
YXNzIFN0b3JhZ2VBcmVhOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3Mg
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50IHsKK2NsYXNzIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
T3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKICAgICB7CkBA
IC01NCwxMSArNTUsMTEgQEAgcHVibGljOgogICAgIH0KICAgICB+SW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50KCk7CiAKLSAgICB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKik7Ci0g
ICAgdm9pZCBjbGVhckZyb250ZW5kKCk7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKElu
c3BlY3RvckZyb250ZW5kKik7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKKyAg
ICB2b2lkIHJlc3RvcmUoKTsKIAogICAgIHZvaWQgY2xlYXJSZXNvdXJjZXMoKTsKLSAgICB2b2lk
IHJlc3RvcmUoKTsKIAogICAgIC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1lbmQuCiAgICAgdm9p
ZCBlbmFibGUoRXJyb3JTdHJpbmcqKTsKQEAgLTc4LDggKzc5LDYgQEAgcHJpdmF0ZToKIAogICAg
IEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZSogZ2V0RE9NU3RvcmFnZVJlc291cmNlRm9ySWQo
aW50IHN0b3JhZ2VJZCk7CiAKLSAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRp
bmdBZ2VudHM7Ci0gICAgSW5zcGVjdG9yU3RhdGUqIG1faW5zcGVjdG9yU3RhdGU7CiAgICAgdHlw
ZWRlZiBIYXNoTWFwPGludCwgUmVmUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZT4gPiBE
T01TdG9yYWdlUmVzb3VyY2VzTWFwOwogICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXAgbV9yZXNv
dXJjZXM7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKaW5kZXggZmI5
NzMzNjZlY2I0YjBmM2VlNGFmMjBlYzEzMDAwODQ5ZWNjYWViOC4uZDY2YThiZGM5MGE0OTY2MWI4
Yjc5YjljYjBhMTdlNTQwZmJkNzJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcApAQCAtMjQzLDggKzI0Myw3IEBAIHZvaWQg
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6Y2xlYXJSZXNvdXJjZXMoKQogfQogCiBJbnNwZWN0b3JE
YXRhYmFzZUFnZW50OjpJbnNwZWN0b3JEYXRhYmFzZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKLSAgICA6IG1faW5z
dHJ1bWVudGluZ0FnZW50cyhpbnN0cnVtZW50aW5nQWdlbnRzKQotICAgICwgbV9pbnNwZWN0b3JT
dGF0ZShzdGF0ZSkKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRz
LCBzdGF0ZSkKICAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICBtX2luc3RydW1lbnRpbmdB
Z2VudHMtPnNldEluc3BlY3RvckRhdGFiYXNlQWdlbnQodGhpcyk7CkBAIC0yNzIsNyArMjcxLDcg
QEAgdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcqKQogICAg
IGlmIChtX2VuYWJsZWQpCiAgICAgICAgIHJldHVybjsKICAgICBtX2VuYWJsZWQgPSB0cnVlOwot
ICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldEJvb2xlYW4oRGF0YWJhc2VBZ2VudFN0YXRlOjpkYXRh
YmFzZUFnZW50RW5hYmxlZCwgbV9lbmFibGVkKTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKERh
dGFiYXNlQWdlbnRTdGF0ZTo6ZGF0YWJhc2VBZ2VudEVuYWJsZWQsIG1fZW5hYmxlZCk7CiAKICAg
ICBEYXRhYmFzZVJlc291cmNlc01hcDo6aXRlcmF0b3IgZGF0YWJhc2VzRW5kID0gbV9yZXNvdXJj
ZXMuZW5kKCk7CiAgICAgZm9yIChEYXRhYmFzZVJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBt
X3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBkYXRhYmFzZXNFbmQ7ICsraXQpCkBAIC0yODQsMTIg
KzI4MywxMiBAQCB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJp
bmcqKQogICAgIGlmICghbV9lbmFibGVkKQogICAgICAgICByZXR1cm47CiAgICAgbV9lbmFibGVk
ID0gZmFsc2U7Ci0gICAgbV9pbnNwZWN0b3JTdGF0ZS0+c2V0Qm9vbGVhbihEYXRhYmFzZUFnZW50
U3RhdGU6OmRhdGFiYXNlQWdlbnRFbmFibGVkLCBtX2VuYWJsZWQpOworICAgIG1fc3RhdGUtPnNl
dEJvb2xlYW4oRGF0YWJhc2VBZ2VudFN0YXRlOjpkYXRhYmFzZUFnZW50RW5hYmxlZCwgbV9lbmFi
bGVkKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpyZXN0b3JlKCkKIHsKLSAg
ICBtX2VuYWJsZWQgPSAgbV9pbnNwZWN0b3JTdGF0ZS0+Z2V0Qm9vbGVhbihEYXRhYmFzZUFnZW50
U3RhdGU6OmRhdGFiYXNlQWdlbnRFbmFibGVkKTsKKyAgICBtX2VuYWJsZWQgPSAgbV9zdGF0ZS0+
Z2V0Qm9vbGVhbihEYXRhYmFzZUFnZW50U3RhdGU6OmRhdGFiYXNlQWdlbnRFbmFibGVkKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpnZXREYXRhYmFzZVRhYmxlTmFtZXMoRXJy
b3JTdHJpbmcqIGVycm9yLCBpbnQgZGF0YWJhc2VJZCwgUmVmUHRyPEluc3BlY3RvckFycmF5Piog
bmFtZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0
YWJhc2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNl
QWdlbnQuaAppbmRleCAzNTRhNmNkZWIzMmQ1ZDE0NDQzMDQ3YzEwNzY0NmQzYjlhMzQwZTk1Li5j
NWQ0MGY4Y2I1MjM5ZTQ2ZDllMjQwYzk5Njc4OTZmMTg3ZGJjYmNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKQEAgLTI5LDYgKzI5
LDcgQEAKICNpZm5kZWYgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudF9oCiAjZGVmaW5lIEluc3BlY3Rv
ckRhdGFiYXNlQWdlbnRfaAogCisjaW5jbHVkZSAiSW5zcGVjdG9yQmFzZUFnZW50LmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBAIC00NCw3ICs0NSw3IEBAIGNsYXNzIEluc3RydW1lbnRp
bmdBZ2VudHM7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0
b3JEYXRhYmFzZUFnZW50IHsKK2NsYXNzIEluc3BlY3RvckRhdGFiYXNlQWdlbnQgOiBwdWJsaWMg
SW5zcGVjdG9yQmFzZUFnZW50IHsKIHB1YmxpYzoKICAgICBjbGFzcyBGcm9udGVuZFByb3ZpZGVy
OwogCkBAIC01NCwxMSArNTUsMTEgQEAgcHVibGljOgogICAgIH0KICAgICB+SW5zcGVjdG9yRGF0
YWJhc2VBZ2VudCgpOwogCi0gICAgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCop
OwotICAgIHZvaWQgY2xlYXJGcm9udGVuZCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVu
ZChJbnNwZWN0b3JGcm9udGVuZCopOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7
CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmUoKTsKIAogICAgIHZvaWQgY2xlYXJSZXNvdXJjZXMo
KTsKLSAgICB2b2lkIHJlc3RvcmUoKTsKIAogICAgIC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1l
bmQuCiAgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKTsKQEAgLTc2LDggKzc3LDYgQEAgcHJp
dmF0ZToKICAgICBEYXRhYmFzZSogZGF0YWJhc2VGb3JJZChpbnQgZGF0YWJhc2VJZCk7CiAgICAg
SW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZSogZmluZEJ5RmlsZU5hbWUoY29uc3QgU3RyaW5nJiBm
aWxlTmFtZSk7CiAKLSAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRpbmdBZ2Vu
dHM7Ci0gICAgSW5zcGVjdG9yU3RhdGUqIG1faW5zcGVjdG9yU3RhdGU7CiAgICAgdHlwZWRlZiBI
YXNoTWFwPGludCwgUmVmUHRyPEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2U+ID4gRGF0YWJhc2VS
ZXNvdXJjZXNNYXA7CiAgICAgRGF0YWJhc2VSZXNvdXJjZXNNYXAgbV9yZXNvdXJjZXM7CiAgICAg
UmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IG1fZnJvbnRlbmRQcm92aWRlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBk
OGQ2NTg3MDJmZDI3MjdjMTM0ZDFkODc2YjNhYzRhN2ZjNmQzN2JlLi5jY2ZlY2YwZWEzNDc1ZTZi
NzExYTRjMzc4YzQzNjYyMjU5Y2QzYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC01Myw4ICs1Myw3IEBAIHN0YXRp
YyBjb25zdCBjaGFyIGphdmFTY3JpcHRCcmVha3BvaW50c1tdID0gImphdmFTY3JpcHRCcmVha29w
aW50cyI7CiBjb25zdCBjaGFyKiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpiYWNrdHJhY2VPYmpl
Y3RHcm91cCA9ICJiYWNrdHJhY2Utb2JqZWN0LWdyb3VwIjsKIAogSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2Ny
aXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgIDogbV9pbnN0cnVtZW50aW5n
QWdlbnRzKGluc3RydW1lbnRpbmdBZ2VudHMpCi0gICAgLCBtX2luc3BlY3RvclN0YXRlKGluc3Bl
Y3RvclN0YXRlKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMs
IGluc3BlY3RvclN0YXRlKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKQogICAgICwgbV9mcm9udGVuZCgwKQogICAgICwgbV9wYXVzZWRTY3JpcHRT
dGF0ZSgwKQpAQCAtODQsNyArODMsNyBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmVu
YWJsZSgpCiAKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlzYWJsZSgpCiB7Ci0gICAg
bV9pbnNwZWN0b3JTdGF0ZS0+c2V0T2JqZWN0KERlYnVnZ2VyQWdlbnRTdGF0ZTo6amF2YVNjcmlw
dEJyZWFrcG9pbnRzLCBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpKTsKKyAgICBtX3N0YXRlLT5z
ZXRPYmplY3QoRGVidWdnZXJBZ2VudFN0YXRlOjpqYXZhU2NyaXB0QnJlYWtwb2ludHMsIEluc3Bl
Y3Rvck9iamVjdDo6Y3JlYXRlKCkpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5z
cGVjdG9yRGVidWdnZXJBZ2VudCgwKTsKIAogICAgIHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1Nl
cnZlcigpOwpAQCAtOTcsNyArOTYsNyBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRp
c2FibGUoKQogCiBib29sIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmVuYWJsZWQoKQogewotICAg
IHJldHVybiBtX2luc3BlY3RvclN0YXRlLT5nZXRCb29sZWFuKERlYnVnZ2VyQWdlbnRTdGF0ZTo6
ZGVidWdnZXJFbmFibGVkKTsKKyAgICByZXR1cm4gbV9zdGF0ZS0+Z2V0Qm9vbGVhbihEZWJ1Z2dl
ckFnZW50U3RhdGU6OmRlYnVnZ2VyRW5hYmxlZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6Z2V0Q2FwYWJpbGl0aWVzKEVycm9yU3RyaW5nKiwgUmVmUHRyPEluc3BlY3RvckFy
cmF5PiogY2FwYWJpbGl0aWVzKQpAQCAtMTEyLDcgKzExMSw3IEBAIHZvaWQgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nKikKICAgICAgICAgcmV0dXJuOwogCiAgICAg
ZW5hYmxlKCk7Ci0gICAgbV9pbnNwZWN0b3JTdGF0ZS0+c2V0Qm9vbGVhbihEZWJ1Z2dlckFnZW50
U3RhdGU6OmRlYnVnZ2VyRW5hYmxlZCwgdHJ1ZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihE
ZWJ1Z2dlckFnZW50U3RhdGU6OmRlYnVnZ2VyRW5hYmxlZCwgdHJ1ZSk7CiAKICAgICBBU1NFUlQo
bV9mcm9udGVuZCk7CiB9CkBAIC0xMjMsNyArMTIyLDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKICAgICAgICAgcmV0dXJuOwogCiAgICAgZGlz
YWJsZSgpOwotICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldEJvb2xlYW4oRGVidWdnZXJBZ2VudFN0
YXRlOjpkZWJ1Z2dlckVuYWJsZWQsIGZhbHNlKTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKERl
YnVnZ2VyQWdlbnRTdGF0ZTo6ZGVidWdnZXJFbmFibGVkLCBmYWxzZSk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6cmVzdG9yZSgpCkBAIC0xNTEsNyArMTUwLDcgQEAgdm9pZCBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpjbGVhckZyb250ZW5kKCkKICAgICAvLyBGSVhNRTogZHVl
IHRvIG1fc3RhdGUtPm11dGUoKSBoYWNrIGluIEluc3BlY3RvckNvbnRyb2xsZXIsIGRlYnVnZ2Vy
RW5hYmxlZCBpcyBhY3R1YWxseSBzZXQgdG8gZmFsc2Ugb25seQogICAgIC8vIGluIEluc3BlY3Rv
clN0YXRlLCBidXQgbm90IGluIGNvb2tpZS4gVGhhdCdzIHdoeSBhZnRlciBuYXZpZ2F0aW9uIGRl
YnVnZ2VyRW5hYmxlZCB3aWxsIGJlIHRydWUsCiAgICAgLy8gYnV0IGFmdGVyIGZyb250LWVuZCBy
ZS1vcGVuIGl0IHdpbGwgc3RpbGwgYmUgZmFsc2UuCi0gICAgbV9pbnNwZWN0b3JTdGF0ZS0+c2V0
Qm9vbGVhbihEZWJ1Z2dlckFnZW50U3RhdGU6OmRlYnVnZ2VyRW5hYmxlZCwgZmFsc2UpOworICAg
IG1fc3RhdGUtPnNldEJvb2xlYW4oRGVidWdnZXJBZ2VudFN0YXRlOjpkZWJ1Z2dlckVuYWJsZWQs
IGZhbHNlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRCcmVha3BvaW50
c0FjdGl2ZShFcnJvclN0cmluZyosIGJvb2wgYWN0aXZlKQpAQCAtMjAzLDE0ICsyMDIsMTQgQEAg
dm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRCcmVha3BvaW50QnlVcmwoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBpbnQgbGkKICAgICBib29sIGlzUmVnZXggPSBvcHRpb25hbFVSTFJl
Z2V4OwogCiAgICAgU3RyaW5nIGJyZWFrcG9pbnRJZCA9IChpc1JlZ2V4ID8gIi8iICsgdXJsICsg
Ii8iIDogdXJsKSArICc6JyArIFN0cmluZzo6bnVtYmVyKGxpbmVOdW1iZXIpICsgJzonICsgU3Ry
aW5nOjpudW1iZXIoY29sdW1uTnVtYmVyKTsKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBi
cmVha3BvaW50c0Nvb2tpZSA9IG1faW5zcGVjdG9yU3RhdGUtPmdldE9iamVjdChEZWJ1Z2dlckFn
ZW50U3RhdGU6OmphdmFTY3JpcHRCcmVha3BvaW50cyk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gYnJlYWtwb2ludHNDb29raWUgPSBtX3N0YXRlLT5nZXRPYmplY3QoRGVidWdnZXJBZ2Vu
dFN0YXRlOjpqYXZhU2NyaXB0QnJlYWtwb2ludHMpOwogICAgIGlmIChicmVha3BvaW50c0Nvb2tp
ZS0+ZmluZChicmVha3BvaW50SWQpICE9IGJyZWFrcG9pbnRzQ29va2llLT5lbmQoKSkgewogICAg
ICAgICAqZXJyb3JTdHJpbmcgPSAiQnJlYWtwb2ludCBhdCBzcGVjaWZpZWQgbG9jYXRpb24gYWxy
ZWFkeSBleGlzdHMuIjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGJyZWFrcG9pbnRz
Q29va2llLT5zZXRPYmplY3QoYnJlYWtwb2ludElkLCBidWlsZE9iamVjdEZvckJyZWFrcG9pbnRD
b29raWUodXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwgaXNSZWdleCkp
OwotICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldE9iamVjdChEZWJ1Z2dlckFnZW50U3RhdGU6Omph
dmFTY3JpcHRCcmVha3BvaW50cywgYnJlYWtwb2ludHNDb29raWUpOworICAgIG1fc3RhdGUtPnNl
dE9iamVjdChEZWJ1Z2dlckFnZW50U3RhdGU6OmphdmFTY3JpcHRCcmVha3BvaW50cywgYnJlYWtw
b2ludHNDb29raWUpOwogCiAgICAgU2NyaXB0QnJlYWtwb2ludCBicmVha3BvaW50KGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uKTsKICAgICBmb3IgKFNjcmlwdHNNYXA6Oml0ZXJh
dG9yIGl0ID0gbV9zY3JpcHRzLmJlZ2luKCk7IGl0ICE9IG1fc2NyaXB0cy5lbmQoKTsgKytpdCkg
ewpAQCAtMjU5LDkgKzI1OCw5IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0QnJl
YWtwb2ludChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIFBhc3NSZWZQdHI8CiAKIHZvaWQgSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6cmVtb3ZlQnJlYWtwb2ludChFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgYnJlYWtwb2ludElkKQogewotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJy
ZWFrcG9pbnRzQ29va2llID0gbV9pbnNwZWN0b3JTdGF0ZS0+Z2V0T2JqZWN0KERlYnVnZ2VyQWdl
bnRTdGF0ZTo6amF2YVNjcmlwdEJyZWFrcG9pbnRzKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBicmVha3BvaW50c0Nvb2tpZSA9IG1fc3RhdGUtPmdldE9iamVjdChEZWJ1Z2dlckFnZW50
U3RhdGU6OmphdmFTY3JpcHRCcmVha3BvaW50cyk7CiAgICAgYnJlYWtwb2ludHNDb29raWUtPnJl
bW92ZShicmVha3BvaW50SWQpOwotICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldE9iamVjdChEZWJ1
Z2dlckFnZW50U3RhdGU6OmphdmFTY3JpcHRCcmVha3BvaW50cywgYnJlYWtwb2ludHNDb29raWUp
OworICAgIG1fc3RhdGUtPnNldE9iamVjdChEZWJ1Z2dlckFnZW50U3RhdGU6OmphdmFTY3JpcHRC
cmVha3BvaW50cywgYnJlYWtwb2ludHNDb29raWUpOwogCiAgICAgQnJlYWtwb2ludElkVG9EZWJ1
Z1NlcnZlckJyZWFrcG9pbnRJZHNNYXA6Oml0ZXJhdG9yIGRlYnVnU2VydmVyQnJlYWtwb2ludElk
c0l0ZXJhdG9yID0gbV9icmVha3BvaW50SWRUb0RlYnVnU2VydmVyQnJlYWtwb2ludElkcy5maW5k
KGJyZWFrcG9pbnRJZCk7CiAgICAgaWYgKGRlYnVnU2VydmVyQnJlYWtwb2ludElkc0l0ZXJhdG9y
ID09IG1fYnJlYWtwb2ludElkVG9EZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHMuZW5kKCkpCkBAIC00
NzcsNyArNDc2LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRQYXJzZVNvdXJj
ZShjb25zdCBTdHJpbmcmIHNjcmlwdElkLCBjb25zdCBTY3JpcHQKICAgICBpZiAoc2NyaXB0LnVy
bC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IGJyZWFrcG9pbnRzQ29va2llID0gbV9pbnNwZWN0b3JTdGF0ZS0+Z2V0T2JqZWN0KERlYnVn
Z2VyQWdlbnRTdGF0ZTo6amF2YVNjcmlwdEJyZWFrcG9pbnRzKTsKKyAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBicmVha3BvaW50c0Nvb2tpZSA9IG1fc3RhdGUtPmdldE9iamVjdChEZWJ1Z2dl
ckFnZW50U3RhdGU6OmphdmFTY3JpcHRCcmVha3BvaW50cyk7CiAgICAgZm9yIChJbnNwZWN0b3JP
YmplY3Q6Oml0ZXJhdG9yIGl0ID0gYnJlYWtwb2ludHNDb29raWUtPmJlZ2luKCk7IGl0ICE9IGJy
ZWFrcG9pbnRzQ29va2llLT5lbmQoKTsgKytpdCkgewogICAgICAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBicmVha3BvaW50T2JqZWN0ID0gaXQtPnNlY29uZC0+YXNPYmplY3QoKTsKICAgICAg
ICAgYm9vbCBpc1JlZ2V4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggNTMyNTM3ZTFiMjliYjE2MGRmNDZhZWMzMjU2YWM2YTQ0
ZWU4ZmE5Mi4uYjkwNTBjOWZkYTU5Yzc5MDFhMTBiMjQ3OWE3MjJhNGU5MjE2NmY3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCkBA
IC0zMiw2ICszMiw3IEBACiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgRU5B
QkxFKElOU1BFQ1RPUikKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgorI2luY2x1ZGUgIklu
c3BlY3RvckJhc2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5j
bHVkZSAiU2NyaXB0QnJlYWtwb2ludC5oIgogI2luY2x1ZGUgIlNjcmlwdERlYnVnTGlzdGVuZXIu
aCIKQEAgLTU3LDcgKzU4LDcgQEAgY2xhc3MgU2NyaXB0VmFsdWU7CiAKIHR5cGVkZWYgU3RyaW5n
IEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50IDogcHVibGljIFNj
cmlwdERlYnVnTGlzdGVuZXIgeworY2xhc3MgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCA6IHB1Ymxp
YyBJbnNwZWN0b3JCYXNlQWdlbnQsIHB1YmxpYyBTY3JpcHREZWJ1Z0xpc3RlbmVyIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KTsgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGJhY2t0cmFjZU9i
amVjdEdyb3VwOwpAQCAtNjcsOSArNjgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0Q2FwYWJp
bGl0aWVzKEVycm9yU3RyaW5nKiwgUmVmUHRyPEluc3BlY3RvckFycmF5PiopOwogICAgIHZvaWQg
ZW5hYmxlKEVycm9yU3RyaW5nKik7CiAgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKik7Ci0g
ICAgdm9pZCByZXN0b3JlKCk7Ci0gICAgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVu
ZCopOwotICAgIHZvaWQgY2xlYXJGcm9udGVuZCgpOworCisgICAgdmlydHVhbCB2b2lkIHNldEZy
b250ZW5kKEluc3BlY3RvckZyb250ZW5kKik7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRl
bmQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZSgpOwogCiAgICAgdm9pZCBkaWRDbGVhck1h
aW5GcmFtZVdpbmRvd09iamVjdCgpOwogCkBAIC0xMzksOCArMTQxLDYgQEAgcHJpdmF0ZToKICAg
ICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBTY3JpcHQ+IFNjcmlwdHNNYXA7CiAgICAgdHlwZWRl
ZiBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4gPiBCcmVha3BvaW50SWRUb0RlYnVnU2Vy
dmVyQnJlYWtwb2ludElkc01hcDsKIAotICAgIEluc3RydW1lbnRpbmdBZ2VudHMqIG1faW5zdHJ1
bWVudGluZ0FnZW50czsKLSAgICBJbnNwZWN0b3JTdGF0ZSogbV9pbnNwZWN0b3JTdGF0ZTsKICAg
ICBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogICAgIElu
c3BlY3RvckZyb250ZW5kOjpEZWJ1Z2dlciogbV9mcm9udGVuZDsKICAgICBTY3JpcHRTdGF0ZSog
bV9wYXVzZWRTY3JpcHRTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKaW5kZXggMWE4YTQyZjYyNDdlOTM1NGQ5YjQ1
NTQwNDA2MjRjYzAzZGNmNjUxYS4uYTY0YTFiMzMxMGFmOWMwNmIyNWI4ZmIyYzAyZmIyOThlYTQ2
NzRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVT
eXN0ZW1BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZp
bGVTeXN0ZW1BZ2VudC5jcHAKQEAgLTEwNyw4ICsxMDcsNyBAQCB2b2lkIEluc3BlY3RvckZpbGVT
eXN0ZW1BZ2VudDo6cmVzdG9yZSgpCiB9CiAKIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6SW5z
cGVjdG9yRmlsZVN5c3RlbUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKLSAgICA6IG1faW5zdHJ1bWVudGluZ0FnZW50
cyhpbnN0cnVtZW50aW5nQWdlbnRzKSwKLSAgICAgIG1fc3RhdGUoc3RhdGUpLAorICAgIDogSW5z
cGVjdG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKSwKICAgICAgIG1fZnJv
bnRlbmQoMCksCiAgICAgICBtX2VuYWJsZWQoZmFsc2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKaW5kZXggNzIyM2I4ZDZk
NWFhYTI3MmM2NDk2YzlhY2Q2ODJjNWIwMzBlZTMxMC4uZWZhNTU4M2UwZjVhZWVhMjM3YjJkMmQ4
ZjA4NGI2NDkxNGJkNDQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikgJiYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisjaW5jbHVkZSAiSW5zcGVjdG9y
QmFzZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKIAogI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CkBAIC00NCw3ICs0NSw3IEBAIGNsYXNzIEluc3BlY3RvckZyb250
ZW5kOwogY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwog
Ci1jbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQgeworY2xhc3MgSW5zcGVjdG9yRmlsZVN5
c3RlbUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudCB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFBhc3NPd25QdHI8SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50KCk7CkBAIC01NSwxNCArNTYsMTIgQEAgcHVibGljOgogICAgIHZvaWQgZW5h
YmxlKEVycm9yU3RyaW5nKik7CiAgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKik7CiAKLSAg
ICB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKik7Ci0gICAgdm9pZCBjbGVhckZy
b250ZW5kKCk7Ci0gICAgdm9pZCByZXN0b3JlKCk7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb250
ZW5kKEluc3BlY3RvckZyb250ZW5kKik7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZSgpOwogcHJpdmF0ZToKICAgICBJbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKik7CiAK
LSAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRpbmdBZ2VudHM7Ci0gICAgSW5z
cGVjdG9yU3RhdGUqIG1fc3RhdGU7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OkZpbGVTeXN0ZW0q
IG1fZnJvbnRlbmQ7CiAgICAgYm9vbCBtX2VuYWJsZWQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCAzMjM5ZTM3ZjhmY2Y1OWYx
OTMxYjE5ZWI2MTcxYmE5NDYyOGEwOGRkLi5mOWViNWI0OWY5MjIwY2Y0NzE1OGRhOGI3ZDlhY2Rm
ZTBjMjg2MjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFn
ZUFnZW50LmNwcApAQCAtMjYxLDExICsyNjEsMTAgQEAgU3RyaW5nIEluc3BlY3RvclBhZ2VBZ2Vu
dDo6Y2FjaGVkUmVzb3VyY2VUeXBlU3RyaW5nKGNvbnN0IENhY2hlZFJlc291cmNlJiBjYWNoZWQK
ICAgICByZXR1cm4gcmVzb3VyY2VUeXBlU3RyaW5nKGNhY2hlZFJlc291cmNlVHlwZShjYWNoZWRS
ZXNvdXJjZSkpOwogfQogCi1JbnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBwYWdlLCBJbnNw
ZWN0b3JTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKQotICAgIDogbV9pbnN0cnVtZW50aW5nQWdlbnRzKGluc3RydW1lbnRpbmdBZ2VudHMp
CitJbnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBwYWdlLCBJbnNwZWN0b3JTdGF0ZSogaW5z
cGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3Rv
clN0YXRlKQogICAgICwgbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdl
cihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAgLCBtX3N0YXRlKHN0YXRlKQogICAgICwgbV9m
cm9udGVuZCgwKQogICAgICwgbV9sYXN0U2NyaXB0SWRlbnRpZmllcigwKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IDA1Njg1MjU0Y2Q2
NWVhMWY2MDk4ODhiMWY2ZWRjYjI5Yzg5NjJiYmQuLmU2MTM0OTgxYWIwM2Q1MmZlN2M4ZmMwODAw
MTEzMTljM2YzNGExZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCiAj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JCYXNlQWdlbnQuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTU5LDcgKzYwLDcgQEAgY2xhc3MgU2hhcmVkQnVm
ZmVyOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSW5zcGVjdG9yUGFn
ZUFnZW50IHsKK2NsYXNzIEluc3BlY3RvclBhZ2VBZ2VudCA6IEluc3BlY3RvckJhc2VBZ2VudCB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yUGFnZUFnZW50KTsKIHB1YmxpYzoK
ICAgICBlbnVtIFJlc291cmNlVHlwZSB7CkBAIC0xMDgsOSArMTA5LDkgQEAgcHVibGljOgogICAg
IHZvaWQgbG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoRG9jdW1lbnRMb2FkZXIqKTsKIAogICAgIC8v
IEluc3BlY3RvciBDb250cm9sbGVyIEFQSQotICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9y
RnJvbnRlbmQqKTsKLSAgICB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKLSAgICB2b2lkIHJlc3RvcmUo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3Jl
KCk7CiAKICAgICAvLyBDcm9zcy1hZ2VudHMgQVBJCiAgICAgRnJhbWUqIG1haW5GcmFtZSgpOwpA
QCAtMTI2LDExICsxMjcsOCBAQCBwcml2YXRlOgogCiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGJ1aWxkT2JqZWN0Rm9yRnJhbWUoRnJhbWUqKTsKICAgICBQYXNzUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JGcmFtZVRyZWUoRnJhbWUqKTsKLQotICAgIEluc3Ry
dW1lbnRpbmdBZ2VudHMqIG1faW5zdHJ1bWVudGluZ0FnZW50czsKICAgICBQYWdlKiBtX3BhZ2U7
CiAgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKLSAg
ICBJbnNwZWN0b3JTdGF0ZSogbV9zdGF0ZTsKICAgICBJbnNwZWN0b3JGcm9udGVuZDo6UGFnZSog
bV9mcm9udGVuZDsKICAgICBsb25nIG1fbGFzdFNjcmlwdElkZW50aWZpZXI7CiAgICAgU3RyaW5n
IG1fcGVuZGluZ1NjcmlwdFRvRXZhbHVhdGVPbkxvYWRPbmNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGM5NmFlZDQz
N2MxZDBhMTQ3YTI5MGRjYzhjMTdkZGI4NjZiZjgzNGEuLmMwYWYxNmM1ODVhZjg4YzE4YzA2MjBi
ODI4M2M5NGM4ZTE5YzIzYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKQEAgLTY4LDEwICs2OCw5IEBAIFBhc3NPd25QdHI8
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKElu
c3RydW1lbnRpbmdBCiB9CiAKIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclByb2Zp
bGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVj
dG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQsIFBhZ2UqIGluc3BlY3RlZFBhZ2UsIEluc3Bl
Y3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3Rl
ZFNjcmlwdE1hbmFnZXIpCi0gICAgOiBtX2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGlu
Z0FnZW50cykKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBp
bnNwZWN0b3JTdGF0ZSkKICAgICAsIG1fY29uc29sZUFnZW50KGNvbnNvbGVBZ2VudCkKICAgICAs
IG1faW5zcGVjdGVkUGFnZShpbnNwZWN0ZWRQYWdlKQotICAgICwgbV9pbnNwZWN0b3JTdGF0ZShp
bnNwZWN0b3JTdGF0ZSkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVjdGVkU2Ny
aXB0TWFuYWdlcikKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1fZW5hYmxlZChmYWxzZSkK
QEAgLTE0MiwxMyArMTQxLDEzIEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nKikKIHsKICAgICBpZiAoZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgbV9pbnNwZWN0b3JTdGF0ZS0+c2V0Qm9vbGVhbihQcm9maWxlckFnZW50U3RhdGU6OnByb2Zp
bGVyRW5hYmxlZCwgdHJ1ZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihQcm9maWxlckFnZW50
U3RhdGU6OnByb2ZpbGVyRW5hYmxlZCwgdHJ1ZSk7CiAgICAgZW5hYmxlKGZhbHNlKTsKIH0KIAog
dm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKIHsKLSAg
ICBtX2luc3BlY3RvclN0YXRlLT5zZXRCb29sZWFuKFByb2ZpbGVyQWdlbnRTdGF0ZTo6cHJvZmls
ZXJFbmFibGVkLCBmYWxzZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihQcm9maWxlckFnZW50
U3RhdGU6OnByb2ZpbGVyRW5hYmxlZCwgZmFsc2UpOwogICAgIGRpc2FibGUoKTsKIH0KIApAQCAt
MjczLDE4ICsyNzIsMTggQEAgdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjbGVhckZyb250
ZW5kKCkKIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpyZXN0b3JlKCkKIHsKLSAgICAv
LyBOZWVkIHRvIHJlc3RvcmUgZW5hYmxlbWVudCBzdGF0ZSBoZXJlIGFzIGluIHNldEZyb250ZW5k
IG1faW5zcGVjdG9yU3RhdGUgd2Fzbid0IGxvYWRlZCB5ZXQuCisgICAgLy8gTmVlZCB0byByZXN0
b3JlIGVuYWJsZW1lbnQgc3RhdGUgaGVyZSBhcyBpbiBzZXRGcm9udGVuZCBtX3N0YXRlIHdhc24n
dCBsb2FkZWQgeWV0LgogICAgIHJlc3RvcmVFbmFibGVtZW50KCk7CiAKICAgICAvLyBSZXZpc2l0
IHRoaXMuCiAgICAgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7Ci0gICAgaWYgKG1faW5zcGVjdG9y
U3RhdGUtPmdldEJvb2xlYW4oUHJvZmlsZXJBZ2VudFN0YXRlOjp1c2VySW5pdGlhdGVkUHJvZmls
aW5nKSkKKyAgICBpZiAobV9zdGF0ZS0+Z2V0Qm9vbGVhbihQcm9maWxlckFnZW50U3RhdGU6OnVz
ZXJJbml0aWF0ZWRQcm9maWxpbmcpKQogICAgICAgICBzdGFydCgpOwogfQogCiB2b2lkIEluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQ6OnJlc3RvcmVFbmFibGVtZW50KCkKIHsKLSAgICBpZiAobV9pbnNw
ZWN0b3JTdGF0ZS0+Z2V0Qm9vbGVhbihQcm9maWxlckFnZW50U3RhdGU6OnByb2ZpbGVyRW5hYmxl
ZCkpIHsKKyAgICBpZiAobV9zdGF0ZS0+Z2V0Qm9vbGVhbihQcm9maWxlckFnZW50U3RhdGU6OnBy
b2ZpbGVyRW5hYmxlZCkpIHsKICAgICAgICAgRXJyb3JTdHJpbmcgZXJyb3I7CiAgICAgICAgIGVu
YWJsZSgmZXJyb3IpOwogICAgIH0KQEAgLTMwOCw3ICszMDcsNyBAQCB2b2lkIEluc3BlY3RvclBy
b2ZpbGVyQWdlbnQ6OnN0YXJ0KEVycm9yU3RyaW5nKikKICAgICBTY3JpcHRQcm9maWxlcjo6c3Rh
cnQoc2NyaXB0U3RhdGUsIHRpdGxlKTsKICAgICBhZGRTdGFydFByb2ZpbGluZ01lc3NhZ2VUb0Nv
bnNvbGUodGl0bGUsIDAsIFN0cmluZygpKTsKICAgICB0b2dnbGVSZWNvcmRCdXR0b24odHJ1ZSk7
Ci0gICAgbV9pbnNwZWN0b3JTdGF0ZS0+c2V0Qm9vbGVhbihQcm9maWxlckFnZW50U3RhdGU6OnVz
ZXJJbml0aWF0ZWRQcm9maWxpbmcsIHRydWUpOworICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oUHJv
ZmlsZXJBZ2VudFN0YXRlOjp1c2VySW5pdGlhdGVkUHJvZmlsaW5nLCB0cnVlKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdG9wKEVycm9yU3RyaW5nKikKQEAgLTMyOCw3ICsz
MjcsNyBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0b3AoRXJyb3JTdHJpbmcqKQog
ICAgIGlmIChwcm9maWxlKQogICAgICAgICBhZGRQcm9maWxlKHByb2ZpbGUsIDAsIFN0cmluZygp
KTsKICAgICB0b2dnbGVSZWNvcmRCdXR0b24oZmFsc2UpOwotICAgIG1faW5zcGVjdG9yU3RhdGUt
PnNldEJvb2xlYW4oUHJvZmlsZXJBZ2VudFN0YXRlOjp1c2VySW5pdGlhdGVkUHJvZmlsaW5nLCBm
YWxzZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihQcm9maWxlckFnZW50U3RhdGU6OnVzZXJJ
bml0aWF0ZWRQcm9maWxpbmcsIGZhbHNlKTsKIH0KIAogbmFtZXNwYWNlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCmluZGV4IDQ4Njkz
NzE2NWY1MmYyZjEyM2E4NDgxMWQ3ZTk0NTE2NTEwODZkZjEuLmIwZWIwZmEzOGFjYzIyZmYzZDBm
ZWE5YzE4N2I0ZDJlNTAwZWE3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaApAQCAtMzIsNiArMzIsNyBAQAogCiAjaWYgRU5BQkxF
KEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCiAKKyNpbmNsdWRlICJJ
bnNwZWN0b3JCYXNlQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTU0
LDcgKzU1LDcgQEAgY2xhc3MgU2NyaXB0UHJvZmlsZTsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JT
dHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvclByb2ZpbGVyQWdlbnQgeworY2xhc3MgSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKEluc3BlY3RvclByb2ZpbGVyQWdlbnQpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JQcm9maWxlckFn
ZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNvbGVBZ2VudCos
IFBhZ2UqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOwpAQCAtODEs
OSArODIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRQcm9maWxlKEVycm9yU3RyaW5nKiBlcnJv
ciwgY29uc3QgU3RyaW5nJiB0eXBlLCB1bnNpZ25lZCB1aWQsIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+KiBwcm9maWxlT2JqZWN0KTsKICAgICB2b2lkIHJlbW92ZVByb2ZpbGUoRXJyb3JTdHJpbmcq
IGVycm9yLCBjb25zdCBTdHJpbmcmIHR5cGUsIHVuc2lnbmVkIHVpZCk7CiAKLSAgICB2b2lkIHNl
dEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKik7Ci0gICAgdm9pZCBjbGVhckZyb250ZW5kKCk7
Ci0gICAgdm9pZCByZXN0b3JlKCk7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3Bl
Y3RvckZyb250ZW5kKik7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVzdG9yZSgpOwogCiAgICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEVycm9y
U3RyaW5nKik7CiAgICAgdm9pZCB0b2dnbGVSZWNvcmRCdXR0b24oYm9vbCBpc1Byb2ZpbGluZyk7
CkBAIC0xMDEsMTAgKzEwMiw4IEBAIHByaXZhdGU6CiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGNyZWF0ZVByb2ZpbGVIZWFkZXIoY29uc3QgU2NyaXB0UHJvZmlsZSYgcHJvZmlsZSk7
CiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVNuYXBzaG90SGVhZGVyKGNv
bnN0IFNjcmlwdEhlYXBTbmFwc2hvdCYgc25hcHNob3QpOwogCi0gICAgSW5zdHJ1bWVudGluZ0Fn
ZW50cyogbV9pbnN0cnVtZW50aW5nQWdlbnRzOwogICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudCog
bV9jb25zb2xlQWdlbnQ7CiAgICAgUGFnZSogbV9pbnNwZWN0ZWRQYWdlOwotICAgIEluc3BlY3Rv
clN0YXRlKiBtX2luc3BlY3RvclN0YXRlOwogICAgIEluamVjdGVkU2NyaXB0TWFuYWdlciogbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXI7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OlByb2ZpbGVyKiBt
X2Zyb250ZW5kOwogICAgIGJvb2wgbV9lbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IDQwYTE1NjVhMzRlNjYz
MjAxMTJiNjI2MzJmMDhmMGM2ZWY3NTZmMTcuLjM4MTMyODZlZjg5MzU5NTRkNmI1MmYxMWFhNmQ0
YzlhOGE3NTA3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTUzMCwxMCArNTMwLDkgQEAgdm9pZCBJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50OjptYWluRnJhbWVOYXZpZ2F0ZWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikK
IH0KIAogSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQq
IHBhZ2VBZ2VudCwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0
ZSkKLSAgICA6IG1faW5zdHJ1bWVudGluZ0FnZW50cyhpbnN0cnVtZW50aW5nQWdlbnRzKQorICAg
IDogSW5zcGVjdG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQogICAgICwg
bV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9jbGllbnQoY2xpZW50KQotICAgICwgbV9z
dGF0ZShzdGF0ZSkKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1fcmVzb3VyY2VzRGF0YShh
ZG9wdFB0cihuZXcgTmV0d29ya1Jlc291cmNlc0RhdGEoKSkpCiAgICAgLCBtX2xvYWRpbmdYSFJT
eW5jaHJvbm91c2x5KGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggZTEwNzUzYzBjMmMyZWZjMThjOTAwMWY2ODMzN2Jm
ZjIxMzliMGZlNi4uYjFiNDlmNjNmZTlmZjY0OTRkYTBiOTJiODI2MDA1NDg0NTIwZGFjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5o
CkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIEluc3BlY3RvclJlc291cmNlQWdlbnRfaAogI2Rl
ZmluZSBJbnNwZWN0b3JSZXNvdXJjZUFnZW50X2gKIAorI2luY2x1ZGUgIkluc3BlY3RvckJhc2VB
Z2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKIApAQCAtNzIsMTYgKzczLDE2IEBAIGNsYXNzIFdlYlNvY2tldEhhbmRzaGFr
ZVJlc3BvbnNlOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudCA6IHB1YmxpYyBSZWZDb3VudGVkPEluc3BlY3RvclJlc291cmNlQWdl
bnQ+IHsKK2NsYXNzIEluc3BlY3RvclJlc291cmNlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFz
ZUFnZW50LCBwdWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JSZXNvdXJjZUFnZW50PiB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4gY3JlYXRl
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VB
Z2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCwgSW5zcGVjdG9yU3RhdGUq
IHN0YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNwZWN0b3JSZXNv
dXJjZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHBhZ2VBZ2VudCwgY2xpZW50LCBzdGF0ZSkp
OwogICAgIH0KIAotICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKTsKLSAg
ICB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKLSAgICB2b2lkIHJlc3RvcmUoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJGcm9udGVuZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCk7CiAKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JSZXNvdXJjZUFnZW50PiByZXN0b3JlKFBhZ2UqLCBJbnNw
ZWN0b3JTdGF0ZSosIEluc3BlY3RvckZyb250ZW5kKik7CiAKQEAgLTEzOCwxMCArMTM5LDggQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgZW5hYmxlKCk7CiAKLSAgICBJbnN0cnVtZW50aW5nQWdlbnRz
KiBtX2luc3RydW1lbnRpbmdBZ2VudHM7CiAgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBtX3BhZ2VB
Z2VudDsKICAgICBJbnNwZWN0b3JDbGllbnQqIG1fY2xpZW50OwotICAgIEluc3BlY3RvclN0YXRl
KiBtX3N0YXRlOwogICAgIEluc3BlY3RvckZyb250ZW5kOjpOZXR3b3JrKiBtX2Zyb250ZW5kOwog
ICAgIFN0cmluZyBtX3VzZXJBZ2VudE92ZXJyaWRlOwogICAgIE93blB0cjxOZXR3b3JrUmVzb3Vy
Y2VzRGF0YT4gbV9yZXNvdXJjZXNEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcAppbmRleCA3NmRhY2EwY2M3YjExYmZiYjhjODA5
ZWE5ZTY2NGE2M2U5MjUwOGJhLi5mNGIyMWU3YjNjODYxNmIxZmMzMGMzNTIzMjZiNmIwMTk3Y2Jj
MDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmNwcApAQCAtNTUsMTIgKzU1LDEyIEBAIHN0YXRpYyBib29sIGFzQm9vbChjb25zdCBi
b29sKiBjb25zdCBiKQogICAgIHJldHVybiBiID8gKmIgOiBmYWxzZTsKIH0KIAotSW5zcGVjdG9y
UnVudGltZUFnZW50OjpJbnNwZWN0b3JSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlw
dE1hbmFnZXIpCi0gICAgOiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1h
bmFnZXIpCitJbnNwZWN0b3JSdW50aW1lQWdlbnQ6Okluc3BlY3RvclJ1bnRpbWVBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3Rh
dGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgIDog
SW5zcGVjdG9yQmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorICAgICwgbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogI2lmIEVOQUJMRShK
QVZBU0NSSVBUX0RFQlVHR0VSKQogICAgICwgbV9zY3JpcHREZWJ1Z1NlcnZlcigwKQogI2VuZGlm
Ci0gICAgLCBtX2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICAs
IG1fcGF1c2VkKGZhbHNlKQogewogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVj
dG9yUnVudGltZUFnZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5oCmluZGV4IGQwNGU1OTBiNDFlMWFiMjY3MzhhNjc0Yjc2ODZl
N2RjZTA0MThjOGYuLmVhNTQ4YWM0ZjdjZWRiOTU5N2YzYzljMDRiZDcxM2E2Y2Q2ZWQ5MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgK
QEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKKyNpbmNsdWRlICJJ
bnNwZWN0b3JCYXNlQWdlbnQuaCIKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC01MCw3ICs1
MSw3IEBAIGNsYXNzIFdvcmtlckNvbnRleHQ7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5n
OwogCi1jbGFzcyBJbnNwZWN0b3JSdW50aW1lQWdlbnQgeworY2xhc3MgSW5zcGVjdG9yUnVudGlt
ZUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoSW5zcGVjdG9yUnVudGltZUFnZW50KTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNw
ZWN0b3JSdW50aW1lQWdlbnQoKTsKQEAgLTc3LDYgKzc4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlbGVhc2VPYmplY3RHcm91cChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0R3Jv
dXApOwogICAgIHZvaWQgcnVuKEVycm9yU3RyaW5nKik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJG
cm9udGVuZCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCkgeyB9CisKICNpZiBFTkFC
TEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICB2b2lkIHNldFNjcmlwdERlYnVnU2VydmVyKFNj
cmlwdERlYnVnU2VydmVyKik7CiAjaWYgRU5BQkxFKFdPUktFUlMpCkBAIC04NSw3ICs5MCw3IEBA
IHB1YmxpYzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAgSW5zcGVjdG9yUnVudGltZUFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKKyAgICBJbnNw
ZWN0b3JSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAgICAgdmlydHVhbCBTY3JpcHRTdGF0ZSogc2NyaXB0
U3RhdGVGb3JGcmFtZUlkKGNvbnN0IFN0cmluZyYgZnJhbWVJZCkgPSAwOwogICAgIHZpcnR1YWwg
U2NyaXB0U3RhdGUqIGdldERlZmF1bHRJbnNwZWN0ZWRTdGF0ZSgpID0gMDsKIApAQCAtOTQsNyAr
OTksNiBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIFNj
cmlwdERlYnVnU2VydmVyKiBtX3NjcmlwdERlYnVnU2VydmVyOwogI2VuZGlmCi0gICAgSW5zdHJ1
bWVudGluZ0FnZW50cyogbV9pbnN0cnVtZW50aW5nQWdlbnRzOwogICAgIGJvb2wgbV9wYXVzZWQ7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5jcHAKaW5kZXggZDEyNmE4NDE3Zjk2MmYxNDMyNDBiNzIzZDZiMGY3MDE1MjM5MDA0
YS4uMWRkZTAwMDU0NGRlYWFkYzUzYThjYWIxOTVmMzhiZGQ4YjgxYzgxYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAt
NDAwLDggKzQwMCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcGxldGVD
dXJyZW50UmVjb3JkKGNvbnN0IFN0cmluZyYgdHlwZSkKIH0KIAogSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCi0gICAgOiBtX2luc3RydW1lbnRp
bmdBZ2VudHMoaW5zdHJ1bWVudGluZ0FnZW50cykKLSAgICAsIG1fc3RhdGUoc3RhdGUpCisgICAg
OiBJbnNwZWN0b3JCYXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCiAgICAgLCBt
X2Zyb250ZW5kKDApCiAgICAgLCBtX2lkKDEpCiAgICAgLCBtX21heENhbGxTdGFja0RlcHRoKDUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
aAppbmRleCBjM2M0NmFjYzUyMTA3ZTdjNzIwZDAxMTJmMmVkZWMzMTc5OTQ0YTZhLi4xYTUyMDNj
OTg2NTBiYzFhMDBmY2JjNWM4NGVhNWYxNWU5NzExYjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTMzLDYgKzMzLDcgQEAK
IAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKKyNpbmNsdWRlICJJbnNwZWN0b3JCYXNlQWdlbnQu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZh
bHVlcy5oIgogI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCkBAIC01Miw3ICs1Myw3IEBAIGNsYXNz
IFJlc291cmNlUmVzcG9uc2U7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFz
cyBJbnNwZWN0b3JUaW1lbGluZUFnZW50IDogU2NyaXB0R0NFdmVudExpc3RlbmVyIHsKK2NsYXNz
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50LCBTY3Jp
cHRHQ0V2ZW50TGlzdGVuZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvclRp
bWVsaW5lQWdlbnQpOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCkBAIC02Miw5ICs2Myw5IEBAIHB1YmxpYzoKIAog
ICAgIH5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CiAKLSAgICB2b2lkIHNldEZyb250ZW5kKElu
c3BlY3RvckZyb250ZW5kKik7Ci0gICAgdm9pZCBjbGVhckZyb250ZW5kKCk7Ci0gICAgdm9pZCBy
ZXN0b3JlKCk7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5k
Kik7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVzdG9yZSgpOwogCiAgICAgdm9pZCBzdGFydChFcnJvclN0cmluZyosIGludCogbWF4Q2FsbFN0
YWNrRGVwdGgpOwogICAgIHZvaWQgc3RvcChFcnJvclN0cmluZyopOwpAQCAtMTUxLDggKzE1Miw2
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwdXNoR0NFdmVudFJlY29yZHMoKTsKICAgICB2b2lkIGNs
ZWFyUmVjb3JkU3RhY2soKTsKIAotICAgIEluc3RydW1lbnRpbmdBZ2VudHMqIG1faW5zdHJ1bWVu
dGluZ0FnZW50czsKLSAgICBJbnNwZWN0b3JTdGF0ZSogbV9zdGF0ZTsKICAgICBJbnNwZWN0b3JG
cm9udGVuZDo6VGltZWxpbmUqIG1fZnJvbnRlbmQ7CiAKICAgICBWZWN0b3I8VGltZWxpbmVSZWNv
cmRFbnRyeT4gbV9yZWNvcmRTdGFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4IGFmOWY1MDc3N2E3OWQ4MWFlNDM2MGVhNTFi
YTdkMTIwMDQ1NDQ0MGUuLjI1NTc0NTA1MzQwNDNkZDdmMWExZDg1N2QxOTU4ZDc5NzI5NjNkY2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50
LmNwcApAQCAtMTExLDkgKzExMSw4IEBAIFBhc3NPd25QdHI8SW5zcGVjdG9yV29ya2VyQWdlbnQ+
IEluc3BlY3RvcldvcmtlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50CiB9CiAKIElu
c3BlY3RvcldvcmtlckFnZW50OjpJbnNwZWN0b3JXb3JrZXJBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUp
Ci0gICAgOiBtX2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGluZ0FnZW50cykKKyAgICA6
IEluc3BlY3RvckJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkK
ICAgICAsIG1faW5zcGVjdG9yRnJvbnRlbmQoMCkKLSAgICAsIG1faW5zcGVjdG9yU3RhdGUoaW5z
cGVjdG9yU3RhdGUpCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JX
b3JrZXJBZ2VudCh0aGlzKTsKIH0KQEAgLTEzMCwyMCArMTI5LDIwIEBAIHZvaWQgSW5zcGVjdG9y
V29ya2VyQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKIAog
dm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6cmVzdG9yZSgpCiB7Ci0gICAgaWYgKG1faW5zcGVj
dG9yU3RhdGUtPmdldEJvb2xlYW4oV29ya2VyQWdlbnRTdGF0ZTo6d29ya2VySW5zcGVjdGlvbkVu
YWJsZWQpKQorICAgIGlmIChtX3N0YXRlLT5nZXRCb29sZWFuKFdvcmtlckFnZW50U3RhdGU6Ondv
cmtlckluc3BlY3Rpb25FbmFibGVkKSkKICAgICAgICAgY3JlYXRlV29ya2VyRnJvbnRlbmRDaGFu
bmVsc0ZvckV4aXN0aW5nV29ya2VycygpOwogfQogCiB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50
OjpjbGVhckZyb250ZW5kKCkKIHsKICAgICBtX2luc3BlY3RvckZyb250ZW5kID0gMDsKLSAgICBt
X2luc3BlY3RvclN0YXRlLT5zZXRCb29sZWFuKFdvcmtlckFnZW50U3RhdGU6OmF1dG9jb25uZWN0
VG9Xb3JrZXJzLCBmYWxzZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihXb3JrZXJBZ2VudFN0
YXRlOjphdXRvY29ubmVjdFRvV29ya2VycywgZmFsc2UpOwogICAgIGRlc3Ryb3lXb3JrZXJGcm9u
dGVuZENoYW5uZWxzKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNldFdvcmtl
ckluc3BlY3Rpb25FbmFibGVkKEVycm9yU3RyaW5nKiwgYm9vbCB2YWx1ZSkKIHsKLSAgICBtX2lu
c3BlY3RvclN0YXRlLT5zZXRCb29sZWFuKFdvcmtlckFnZW50U3RhdGU6Ondvcmtlckluc3BlY3Rp
b25FbmFibGVkLCB2YWx1ZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihXb3JrZXJBZ2VudFN0
YXRlOjp3b3JrZXJJbnNwZWN0aW9uRW5hYmxlZCwgdmFsdWUpOwogICAgIGlmICghbV9pbnNwZWN0
b3JGcm9udGVuZCkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICh2YWx1ZSkKQEAgLTE4MSwxOCAr
MTgwLDE4IEBAIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNlbmRNZXNzYWdlVG9Xb3JrZXIo
RXJyb3JTdHJpbmcqIGVycm9yLCBpbnQgd29ya2VySWQsCiAKIHZvaWQgSW5zcGVjdG9yV29ya2Vy
QWdlbnQ6OnNldEF1dG9jb25uZWN0VG9Xb3JrZXJzKEVycm9yU3RyaW5nKiwgYm9vbCB2YWx1ZSkK
IHsKLSAgICBtX2luc3BlY3RvclN0YXRlLT5zZXRCb29sZWFuKFdvcmtlckFnZW50U3RhdGU6OmF1
dG9jb25uZWN0VG9Xb3JrZXJzLCB2YWx1ZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihXb3Jr
ZXJBZ2VudFN0YXRlOjphdXRvY29ubmVjdFRvV29ya2VycywgdmFsdWUpOwogfQogCiBib29sIElu
c3BlY3RvcldvcmtlckFnZW50OjpzaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQoKQog
ewotICAgIHJldHVybiBtX2luc3BlY3RvclN0YXRlLT5nZXRCb29sZWFuKFdvcmtlckFnZW50U3Rh
dGU6OmF1dG9jb25uZWN0VG9Xb3JrZXJzKTsKKyAgICByZXR1cm4gbV9zdGF0ZS0+Z2V0Qm9vbGVh
bihXb3JrZXJBZ2VudFN0YXRlOjphdXRvY29ubmVjdFRvV29ya2Vycyk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yV29ya2VyQWdlbnQ6OmRpZFN0YXJ0V29ya2VyQ29udGV4dChXb3JrZXJDb250ZXh0UHJv
eHkqIHdvcmtlckNvbnRleHRQcm94eSwgY29uc3QgS1VSTCYgdXJsKQogewogICAgIG1fZGVkaWNh
dGVkV29ya2Vycy5zZXQod29ya2VyQ29udGV4dFByb3h5LCB1cmwuc3RyaW5nKCkpOwotICAgIGlm
IChtX2luc3BlY3RvckZyb250ZW5kICYmIG1faW5zcGVjdG9yU3RhdGUtPmdldEJvb2xlYW4oV29y
a2VyQWdlbnRTdGF0ZTo6d29ya2VySW5zcGVjdGlvbkVuYWJsZWQpKQorICAgIGlmIChtX2luc3Bl
Y3RvckZyb250ZW5kICYmIG1fc3RhdGUtPmdldEJvb2xlYW4oV29ya2VyQWdlbnRTdGF0ZTo6d29y
a2VySW5zcGVjdGlvbkVuYWJsZWQpKQogICAgICAgICBjcmVhdGVXb3JrZXJGcm9udGVuZENoYW5u
ZWwod29ya2VyQ29udGV4dFByb3h5LCB1cmwuc3RyaW5nKCkpOwogfQogCkBAIC0yMzAsNyArMjI5
LDcgQEAgdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6Y3JlYXRlV29ya2VyRnJvbnRlbmRDaGFu
bmVsKFdvcmtlckNvbnRleHRQcm94eSogd29ya2UKICAgICBtX2lkVG9DaGFubmVsLnNldChjaGFu
bmVsLT5pZCgpLCBjaGFubmVsKTsKIAogICAgIEFTU0VSVChtX2luc3BlY3RvckZyb250ZW5kKTsK
LSAgICBib29sIGF1dG9jb25uZWN0VG9Xb3JrZXJzID0gbV9pbnNwZWN0b3JTdGF0ZS0+Z2V0Qm9v
bGVhbihXb3JrZXJBZ2VudFN0YXRlOjphdXRvY29ubmVjdFRvV29ya2Vycyk7CisgICAgYm9vbCBh
dXRvY29ubmVjdFRvV29ya2VycyA9IG1fc3RhdGUtPmdldEJvb2xlYW4oV29ya2VyQWdlbnRTdGF0
ZTo6YXV0b2Nvbm5lY3RUb1dvcmtlcnMpOwogICAgIGlmIChhdXRvY29ubmVjdFRvV29ya2VycykK
ICAgICAgICAgY2hhbm5lbC0+Y29ubmVjdFRvV29ya2VyQ29udGV4dCgpOwogICAgIG1faW5zcGVj
dG9yRnJvbnRlbmQtPndvcmtlcigpLT53b3JrZXJDcmVhdGVkKGNoYW5uZWwtPmlkKCksIHVybCwg
YXV0b2Nvbm5lY3RUb1dvcmtlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvcldvcmtlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuaAppbmRleCBiOTRkYThjNmFhNDhiMDA1MmMyNDQ5MzQwMjM1ZjU1
Y2E5OGFmZjQ1Li5mNzU3Y2FhMjczM2Q0NzYyNTE5YTlkZjI3MjkwYzExZDVhZmIyMGExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaApAQCAt
MzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKFdPUktFUlMpCiAKKyNpbmNsdWRlICJJbnNwZWN0
b3JCYXNlQWdlbnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAKQEAgLTQ2LDE0ICs0NywxNCBAQCBjbGFzcyBXb3JrZXJDb250ZXh0UHJveHk7
CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JXb3JrZXJB
Z2VudCB7CitjbGFzcyBJbnNwZWN0b3JXb3JrZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNl
QWdlbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvcldvcmtlckFn
ZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKik7CiAgICAg
fkluc3BlY3RvcldvcmtlckFnZW50KCk7CiAKLSAgICB2b2lkIHNldEZyb250ZW5kKEluc3BlY3Rv
ckZyb250ZW5kKik7Ci0gICAgdm9pZCByZXN0b3JlKCk7Ci0gICAgdm9pZCBjbGVhckZyb250ZW5k
KCk7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKik7Cisg
ICAgdmlydHVhbCB2b2lkIHJlc3RvcmUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVu
ZCgpOwogCiAgICAgLy8gQ2FsbGVkIGZyb20gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAg
Ym9vbCBzaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQoKTsKQEAgLTczLDkgKzc0LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZVdvcmtlckZyb250ZW5kQ2hhbm5lbChXb3JrZXJD
b250ZXh0UHJveHkqLCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBkZXN0cm95V29ya2Vy
RnJvbnRlbmRDaGFubmVscygpOwogCi0gICAgSW5zdHJ1bWVudGluZ0FnZW50cyogbV9pbnN0cnVt
ZW50aW5nQWdlbnRzOwogICAgIEluc3BlY3RvckZyb250ZW5kKiBtX2luc3BlY3RvckZyb250ZW5k
OwotICAgIEluc3BlY3RvclN0YXRlKiBtX2luc3BlY3RvclN0YXRlOwogCiAgICAgY2xhc3MgV29y
a2VyRnJvbnRlbmRDaGFubmVsOwogICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFdvcmtlckZyb250
ZW5kQ2hhbm5lbCo+IFdvcmtlckNoYW5uZWxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IGNlZjU1NGU4M2M4OGJiNjQ1NDZkMTRjMWFhNTU2
NzdlMTA0MDlkNGMuLjE3MzllMzVhYWM0N2FiYzY2NTdiNjAzNDlkZThkMTIwOTUzNjdiM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTQw
LDggKzQwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYWdlUnVudGltZUFnZW50OjpQ
YWdlUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBQYWdlKiBwYWdl
LCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKLSAgICA6IEluc3BlY3RvclJ1bnRpbWVB
Z2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCitQYWdlUnVu
dGltZUFnZW50OjpQYWdlUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFBhZ2UqIHBhZ2UsIEluc3BlY3RvclBhZ2VBZ2VudCog
cGFnZUFnZW50KQorICAgIDogSW5zcGVjdG9yUnVudGltZUFnZW50KGluc3RydW1lbnRpbmdBZ2Vu
dHMsIHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBtX2luc3BlY3RlZFBhZ2Uo
cGFnZSkKICAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oCmluZGV4IDQyODI3NGVmZGNiOGIxNDEzMzJhMWUw
NWFhZDE5M2IyM2Y3YmQ0MmUuLmI1YzQxYzc4NDY1Zjk1M2FkM2U3NGUwMzdlYzU4MjRlMzBhNjk4
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaApAQCAt
NDIsNyArNDIsNyBAQCBjbGFzcyBQYWdlOwogCiBjbGFzcyBQYWdlUnVudGltZUFnZW50IDogcHVi
bGljIEluc3BlY3RvclJ1bnRpbWVBZ2VudCB7CiBwdWJsaWM6Ci0gICAgUGFnZVJ1bnRpbWVBZ2Vu
dChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgUGFnZSosIElu
c3BlY3RvclBhZ2VBZ2VudCopOworICAgIFBhZ2VSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgUGFnZSosIElu
c3BlY3RvclBhZ2VBZ2VudCopOwogICAgIHZpcnR1YWwgflBhZ2VSdW50aW1lQWdlbnQoKTsKIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBhNjc5ZDAxYTcwYTljMmU1M2M1ODNlMjQ1NWZlODE0
YjNjYzcyM2ZmLi43YTAxNmIwNTI1YjA5MTM4MTQ5MDlkOTJjYzE5YjUwZjJmZjJkNzE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRy
b2xsZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBAIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4CiAjaWYg
RU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgLCBtX2RlYnVnZ2VyQWdlbnQoV29ya2Vy
RGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0
ZS5nZXQoKSwgd29ya2VyQ29udGV4dCwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKQog
I2VuZGlmCi0gICAgLCBtX3J1bnRpbWVBZ2VudChhZG9wdFB0cihuZXcgV29ya2VyUnVudGltZUFn
ZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIu
Z2V0KCksIHdvcmtlckNvbnRleHQpKSkKKyAgICAsIG1fcnVudGltZUFnZW50KGFkb3B0UHRyKG5l
dyBXb3JrZXJSdW50aW1lQWdlbnQobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRl
LmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgd29ya2VyQ29udGV4dCkpKQog
ICAgICwgbV9jb25zb2xlQWdlbnQoYWRvcHRQdHIobmV3IFdvcmtlckNvbnNvbGVBZ2VudChtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLmdldCgpKSkpCiB7CiAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVk
U2NyaXB0SG9zdCgpLT5pbml0KDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtl
clJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggYTk4ZTVkZmZiY2E5YmM1NzViOGY2OWRmZGY4MjUzZDJi
OTI5NTQyOS4uNmM0MDM2MmQ1YmJiZDhlOWJjZTEyNWQ2YzM3OTgwOGY1YzYwZjU2OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTM4
LDggKzM4LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Xb3JrZXJSdW50aW1lQWdlbnQ6
OldvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgV29ya2Vy
Q29udGV4dCogd29ya2VyQ29udGV4dCkKLSAgICA6IEluc3BlY3RvclJ1bnRpbWVBZ2VudChpbnN0
cnVtZW50aW5nQWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCitXb3JrZXJSdW50aW1lQWdl
bnQ6OldvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLCBXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0KQorICAgIDog
SW5zcGVjdG9yUnVudGltZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlLCBpbmplY3Rl
ZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBtX3dvcmtlckNvbnRleHQod29ya2VyQ29udGV4dCkKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaAppbmRl
eCA1ZDAxMGU1MWI3MzlkYTZhNDhjZGIzMjQyNjQ2ODBmNTJhYjFjYTBjLi5mMWI1MzhhMmE2ZmRl
ZDFjYTk1MDA1ZjU4OWUzMzA4N2QwYmRjY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIFdvcmtlckNv
bnRleHQ7CiAKIGNsYXNzIFdvcmtlclJ1bnRpbWVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JSdW50
aW1lQWdlbnQgewogcHVibGljOgotICAgIFdvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgV29ya2VyQ29udGV4dCopOworICAgIFdv
cmtlclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJ
bmplY3RlZFNjcmlwdE1hbmFnZXIqLCBXb3JrZXJDb250ZXh0Kik7CiAgICAgdmlydHVhbCB+V29y
a2VyUnVudGltZUFnZW50KCk7CiAKIHByaXZhdGU6Cg==
</data>
<flag name="review"
          id="115989"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>