<?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>202339</bug_id>
          
          <creation_ts>2019-09-27 17:44:37 -0700</creation_ts>
          <short_desc>Move DownloadMonitor test speed multiplier from WebProcessPool to WebsiteDataStoreConfiguration</short_desc>
          <delta_ts>2019-09-30 11:51:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1575023</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-27 17:44:37 -0700</bug_when>
    <thetext>Move DownloadMonitor test speed multiplier from WebProcessPool to WebsiteDataStoreConfiguration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575024</commentid>
    <comment_count>1</comment_count>
      <attachid>379779</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-27 17:46:52 -0700</bug_when>
    <thetext>Created attachment 379779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575025</commentid>
    <comment_count>2</comment_count>
      <attachid>379780</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-27 17:51:26 -0700</bug_when>
    <thetext>Created attachment 379780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575266</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-30 09:23:47 -0700</bug_when>
    <thetext>Ping review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575283</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-30 11:50:56 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/250521/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575284</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-30 11:51:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/55848624&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379779</attachid>
            <date>2019-09-27 17:46:52 -0700</date>
            <delta_ts>2019-09-27 17:51:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202339-20190927174651.patch</filename>
            <type>text/plain</type>
            <size>32644</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA0NTgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDE5LTA5LTI3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBEb3dubG9h
ZE1vbml0b3IgdGVzdCBzcGVlZCBtdWx0aXBsaWVyIGZyb20gV2ViUHJvY2Vzc1Bvb2wgdG8gV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMjMzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgd2FzIG9ubHkgdXNlZCBmb3Igc29tZSB1bml0IHRlc3Rz
LCB3aGljaCBzdGlsbCBhcmUgYWNjZWxlcmF0ZWQgc28gdGhleSBwYXNzIGluIHRoZSBzYW1lIGFt
b3VudCBvZiB0aW1lIGFzIGJlZm9yZS4KKyAgICAgICAgSSBuZWVkIHRoaXMgdmFsdWUgdG8gbm90
IGJlIHByb2Nlc3MtZ2xvYmFsIGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRv
d25sb2FkOjpEb3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6CisgICAgICAg
IChXZWJLaXQ6OkRvd25sb2FkOjp0ZXN0U3BlZWRNdWx0aXBsaWVyIGNvbnN0KToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpyZXN1bWVEb3dubG9hZCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1vbml0b3IuY3BwOgorICAgICAgICAoV2ViS2l0
OjpEb3dubG9hZE1vbml0b3I6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKToKKyAgICAg
ICAgKFdlYktpdDo6RG93bmxvYWRNb25pdG9yOjp0ZXN0U3BlZWRNdWx0aXBsaWVyIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNb25pdG9yOjp0aW1lckZpcmVkKToKKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWRNb25pdG9yOjpzcGVlZE11bHRpcGxpZXIgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1vbml0b3IuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQmxvYjo6ZG93bmxvYWQpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6dGVz
dFNwZWVkTXVsdGlwbGllciBjb25zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAg
ICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgVVJMU2Vzc2lvbjpkYXRhVGFzazpkaWRCZWNv
bWVEb3dubG9hZFRhc2s6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b246OmNvcHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uIGRvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllckZvclRlc3RpbmddKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldERvd25sb2FkTW9uaXRv
clNwZWVkTXVsdGlwbGllckZvclRlc3Rpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
bW06CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHRlc3RTcGVl
ZE11bHRpcGxpZXJdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24gc2V0VGVzdFNwZWVkTXVsdGlwbGllcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Y29weSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjp0ZXN0U3BlZWRN
dWx0aXBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb246OnNldFRlc3RTcGVlZE11bHRpcGxpZXIpOgorCiAyMDE5LTA5LTI3ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBzaG91
bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24gZnJvbSBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyB0byBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycwpJbmRleDogU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuY3Bw
CShyZXZpc2lvbiAyNTA0MjEpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtEYXRhVGFza0Jsb2IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjcsNyArNDY3LDcgQEAgdm9p
ZCBOZXR3b3JrRGF0YVRhc2tCbG9iOjpkb3dubG9hZCgpCiAgICAgfQogCiAgICAgYXV0byYgZG93
bmxvYWRNYW5hZ2VyID0gbV9uZXR3b3JrUHJvY2Vzcy0+ZG93bmxvYWRNYW5hZ2VyKCk7Ci0gICAg
YXV0byBkb3dubG9hZCA9IG1ha2VVbmlxdWU8RG93bmxvYWQ+KGRvd25sb2FkTWFuYWdlciwgbV9w
ZW5kaW5nRG93bmxvYWRJRCwgKnRoaXMsIG1fc2Vzc2lvbi0+c2Vzc2lvbklEKCksIHN1Z2dlc3Rl
ZEZpbGVuYW1lKCkpOworICAgIGF1dG8gZG93bmxvYWQgPSBtYWtlVW5pcXVlPERvd25sb2FkPihk
b3dubG9hZE1hbmFnZXIsIG1fcGVuZGluZ0Rvd25sb2FkSUQsICp0aGlzLCAqbV9zZXNzaW9uLCBz
dWdnZXN0ZWRGaWxlbmFtZSgpKTsKICAgICBhdXRvKiBkb3dubG9hZFB0ciA9IGRvd25sb2FkLmdl
dCgpOwogICAgIGRvd25sb2FkTWFuYWdlci5kYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhtX3Bl
bmRpbmdEb3dubG9hZElELCBXVEZNb3ZlKGRvd25sb2FkKSk7CiAgICAgZG93bmxvYWRQdHItPmRp
ZENyZWF0ZURlc3RpbmF0aW9uKG1fcGVuZGluZ0Rvd25sb2FkTG9jYXRpb24pOwpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlz
aW9uIDI1MDQ1OCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjIsOCArMzYyLDYgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcgogICAgIGZvciAoYXV0byYgc2NoZW1lIDogcGFyYW1l
dGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QpCiAg
ICAgICAgIHJlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdChzY2hl
bWUpOwogICAgIAotICAgIG1fZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyID0gcGFyYW1l
dGVycy5kb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXI7Ci0KICAgICBSRUxFQVNFX0xPRyhQ
cm9jZXNzLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzOiBQ
cmVzZW50aW5nIHByb2Nlc3MgPSAlZCIsIHRoaXMsIFdlYkNvcmU6OnByZXNlbnRpbmdBcHBsaWNh
dGlvblBJRCgpKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAkocmV2aXNpb24gMjUwNDU4KQorKysgU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zODAsNyArMzgw
LDYgQEAgcHJpdmF0ZToKICAgICBJUEM6OkNvbm5lY3Rpb24qIHBhcmVudFByb2Nlc3NDb25uZWN0
aW9uRm9yRG93bmxvYWRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gcGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKTsgfQogICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlciYgZG93bmxvYWRzQXV0aGVudGljYXRp
b25NYW5hZ2VyKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwZW5kaW5nRG93bmxvYWRDYW5jZWxlZChE
b3dubG9hZElEKSBvdmVycmlkZTsKLSAgICB1aW50MzJfdCBkb3dubG9hZE1vbml0b3JTcGVlZE11
bHRpcGxpZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Rvd25sb2FkTW9uaXRvclNwZWVk
TXVsdGlwbGllcjsgfQogCiAgICAgLy8gTWVzc2FnZSBIYW5kbGVycwogICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNOZXR3b3JrUHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKQEAgLTU1Nyw3ICs1NTYsNiBA
QCBwcml2YXRlOgogICAgICAgICBIYXNoTWFwPFdlYkNvcmU6OkNsaWVudE9yaWdpbiwgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlN0b3JhZ2VRdW90YU1hbmFnZXI+PiBtX21hbmFnZXJzUGVyT3Jp
Z2luOwogICAgIH07CiAgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgU3RvcmFnZVF1b3RhTWFu
YWdlcnM+IG1fc3RvcmFnZVF1b3RhTWFuYWdlcnM7Ci0gICAgdWludDMyX3QgbV9kb3dubG9hZE1v
bml0b3JTcGVlZE11bHRpcGxpZXIgeyAxIH07CiAKICAgICBPcHRpb25TZXQ8TmV0d29ya0NhY2hl
OjpDYWNoZU9wdGlvbj4gbV9jYWNoZU9wdGlvbnM7CiAgICAgV2ViQ29yZTo6TWVzc2FnZVBvcnRD
aGFubmVsUmVnaXN0cnkgbV9tZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTA0NTgpCisrKyBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplCiAgICAgZW5jb2RlciA8PCBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGlyZWN0b3J5IDw8IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUgPDwgdXJsU2NoZW1lc1NlcnZpY2VXb3JrZXJzQ2FuSGFuZGxlIDw8IHNob3VsZERp
c2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXk7CiAjZW5kaWYKICAgICBl
bmNvZGVyIDw8IHNob3VsZEVuYWJsZUlUUERhdGFiYXNlOwotICAgIGVuY29kZXIgPDwgZG93bmxv
YWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyOwogICAgIGVuY29kZXIgPDwgZW5hYmxlQWRDbGlja0F0
dHJpYnV0aW9uRGVidWdNb2RlOwogICAgIGVuY29kZXIgPDwgaHN0c1N0b3JhZ2VEaXJlY3Rvcnk7
CiAgICAgZW5jb2RlciA8PCBoc3RzU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKQEAg
LTE4OCwxMiArMTg3LDYgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNob3VsZEVuYWJsZUlUUERhdGFiYXNl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgT3B0aW9uYWw8dWludDMyX3Q+IGRvd25s
b2FkTW9uaXRvclNwZWVkTXVsdGlwbGllcjsKLSAgICBkZWNvZGVyID4+IGRvd25sb2FkTW9uaXRv
clNwZWVkTXVsdGlwbGllcjsKLSAgICBpZiAoIWRvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGll
cikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlc3VsdC5kb3dubG9hZE1vbml0b3JTcGVl
ZE11bHRpcGxpZXIgPSAqZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyOwotCiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZW5hYmxlQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2Rl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCShyZXZpc2lvbiAyNTA0NTgpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEw
MCw3ICsxMDAsNiBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgCiAg
ICAgYm9vbCBzaG91bGREaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5
IHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgc2hvdWxkRW5hYmxlSVRQRGF0YWJhc2UgeyBm
YWxzZSB9OwotICAgIHVpbnQzMl90IGRvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllciB7IDEg
fTsKICAgICBib29sIGVuYWJsZUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSB7IGZhbHNlIH07
CiAgICAgU3RyaW5nIGhzdHNTdG9yYWdlRGlyZWN0b3J5OwogICAgIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBoc3RzU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCShyZXZpc2lv
biAyNTA0NTgpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsNyBAQCBOZXR3b3JrU2Vzc2lvbjo6TmV0
d29ya1Nlc3Npb24oTmV0d29ya1ByCiAgICAgLCBtX2VuYWJsZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NMb2dUZXN0aW5nRXZlbnQocGFyYW1ldGVycy5lbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TG9nVGVzdGluZ0V2ZW50KQogI2VuZGlmCiAgICAgLCBtX2FkQ2xpY2tBdHRyaWJ1dGlvbihtYWtl
VW5pcXVlUmVmPEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI+KHBhcmFtZXRlcnMuc2Vzc2lvbklE
KSkKKyAgICAsIG1fdGVzdFNwZWVkTXVsdGlwbGllcihwYXJhbWV0ZXJzLnRlc3RTcGVlZE11bHRp
cGxpZXIpCiB7CiAgICAgaWYgKCFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7CiAgICAgICAg
IFN0cmluZyBuZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSBwYXJhbWV0ZXJzLm5ldHdvcmtDYWNoZURp
cmVjdG9yeTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmgJKHJldmlzaW9uIDI1MDQyMSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDYgKzEyMiw4IEBAIHB1
YmxpYzoKIAogICAgIFdlYkNvcmU6OkJsb2JSZWdpc3RyeUltcGwmIGJsb2JSZWdpc3RyeSgpIHsg
cmV0dXJuIG1fYmxvYlJlZ2lzdHJ5OyB9CiAKKyAgICB1bnNpZ25lZCB0ZXN0U3BlZWRNdWx0aXBs
aWVyKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0U3BlZWRNdWx0aXBsaWVyOyB9CisKIHByb3RlY3Rl
ZDoKICAgICBOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKQEAgLTE1Myw2ICsxNTUsNyBAQCBwcm90ZWN0ZWQ6
CiAjZW5kaWYKICAgICBSZWZQdHI8TmV0d29ya0NhY2hlOjpDYWNoZT4gbV9jYWNoZTsKICAgICBX
ZWJDb3JlOjpCbG9iUmVnaXN0cnlJbXBsIG1fYmxvYlJlZ2lzdHJ5OworICAgIHVuc2lnbmVkIG1f
dGVzdFNwZWVkTXVsdGlwbGllciB7IDEgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJ
bmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI1MDQ1OCkK
KysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw2ICs3OCw3IEBAIHZvaWQgTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmUKICAgICBlbmNvZGVyIDw8IGZhc3RTZXJ2ZXJU
cnVzdEV2YWx1YXRpb25FbmFibGVkOwogICAgIGVuY29kZXIgPDwgbmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVWYWxpZGF0aW9uRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IHNob3VsZFVzZVRlc3RpbmdO
ZXR3b3JrU2Vzc2lvbjsKKyAgICBlbmNvZGVyIDw8IHRlc3RTcGVlZE11bHRpcGxpZXI7CiB9CiAK
IE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTI0
Miw2ICsyNDMsMTEgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcgog
ICAgIGlmICghc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKQogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogICAgIAorICAgIE9wdGlvbmFsPHVuc2lnbmVkPiB0ZXN0U3BlZWRNdWx0
aXBsaWVyOworICAgIGRlY29kZXIgPj4gdGVzdFNwZWVkTXVsdGlwbGllcjsKKyAgICBpZiAoIXRl
c3RTcGVlZE11bHRpcGxpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCiAg
ICAgcmV0dXJuIHt7CiAgICAgICAgICpzZXNzaW9uSUQKICAgICAgICAgLCBXVEZNb3ZlKCpib3Vu
ZEludGVyZmFjZUlkZW50aWZpZXIpCkBAIC0yODAsNiArMjg2LDcgQEAgT3B0aW9uYWw8TmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcgogICAgICAgICAsIFdURk1vdmUoKmZhc3RTZXJ2ZXJU
cnVzdEV2YWx1YXRpb25FbmFibGVkKQogICAgICAgICAsIFdURk1vdmUoKm5ldHdvcmtDYWNoZVNw
ZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQpCiAgICAgICAgICwgV1RGTW92ZSgqc2hvdWxkVXNl
VGVzdGluZ05ldHdvcmtTZXNzaW9uKQorICAgICAgICAsIFdURk1vdmUoKnRlc3RTcGVlZE11bHRp
cGxpZXIpCiAgICAgfX07CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgJ
KHJldmlzaW9uIDI1MDQ1OCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtOTYsNiArOTYs
NyBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgCiAgICAgYm9vbCBm
YXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBuZXR3
b3JrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlkYXRpb25FbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29s
IHNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbiB7IGZhbHNlIH07CisgICAgdW5zaWduZWQg
dGVzdFNwZWVkTXVsdGlwbGllciB7IDEgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJ
bmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmNwcAkocmV2aXNpb24gMjUwNDIxKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCwxMyArNTAs
MTQgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLURv
d25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgRG93bmxv
YWRJRCBkb3dubG9hZElELCBOZXR3b3JrRGF0YVRhc2smIGRvd25sb2FkLCBjb25zdCBQQUw6OlNl
c3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCitEb3dubG9h
ZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIsIERvd25sb2FkSUQg
ZG93bmxvYWRJRCwgTmV0d29ya0RhdGFUYXNrJiBkb3dubG9hZCwgTmV0d29ya1Nlc3Npb24mIHNl
c3Npb24sIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSkKICAgICA6IG1fZG93bmxvYWRNYW5h
Z2VyKGRvd25sb2FkTWFuYWdlcikKICAgICAsIG1fZG93bmxvYWRJRChkb3dubG9hZElEKQogICAg
ICwgbV9jbGllbnQoZG93bmxvYWRNYW5hZ2VyLmNsaWVudCgpKQogICAgICwgbV9kb3dubG9hZCgm
ZG93bmxvYWQpCi0gICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgLCBtX3Nlc3Npb25J
RChzZXNzaW9uLnNlc3Npb25JRCgpKQogICAgICwgbV9zdWdnZXN0ZWROYW1lKHN1Z2dlc3RlZE5h
bWUpCisgICAgLCBtX3Rlc3RTcGVlZE11bHRpcGxpZXIoc2Vzc2lvbi50ZXN0U3BlZWRNdWx0aXBs
aWVyKCkpCiB7CiAgICAgQVNTRVJUKG1fZG93bmxvYWRJRC5kb3dubG9hZElEKCkpOwogCkBAIC02
NCwxMyArNjUsMTQgQEAgRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYgZG93bgog
fQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi1Eb3dubG9hZDo6RG93bmxvYWQoRG93bmxvYWRNYW5h
Z2VyJiBkb3dubG9hZE1hbmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgTlNVUkxTZXNzaW9u
RG93bmxvYWRUYXNrKiBkb3dubG9hZCwgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwg
Y29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKQorRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2Fk
TWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIE5TVVJMU2Vz
c2lvbkRvd25sb2FkVGFzayogZG93bmxvYWQsIE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCiAgICAgOiBtX2Rvd25sb2FkTWFuYWdlcihkb3dubG9h
ZE1hbmFnZXIpCiAgICAgLCBtX2Rvd25sb2FkSUQoZG93bmxvYWRJRCkKICAgICAsIG1fY2xpZW50
KGRvd25sb2FkTWFuYWdlci5jbGllbnQoKSkKICAgICAsIG1fZG93bmxvYWRUYXNrKGRvd25sb2Fk
KQotICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lv
bi5zZXNzaW9uSUQoKSkKICAgICAsIG1fc3VnZ2VzdGVkTmFtZShzdWdnZXN0ZWROYW1lKQorICAg
ICwgbV90ZXN0U3BlZWRNdWx0aXBsaWVyKHNlc3Npb24udGVzdFNwZWVkTXVsdGlwbGllcigpKQog
ewogICAgIEFTU0VSVChtX2Rvd25sb2FkSUQuZG93bmxvYWRJRCgpKTsKIApJbmRleDogU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCShyZXZp
c2lvbiAyNTA0MjEpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw5ICs2OCw5IEBAIGNsYXNzIFdlYlBhZ2U7
CiBjbGFzcyBEb3dubG9hZCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxEb3dubG9hZD4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERvd25sb2Fk
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgRG93bmxvYWQoRG93bmxv
YWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgTmV0d29ya0RhdGFUYXNrJiwgY29uc3QgUEFMOjpTZXNz
aW9uSUQmIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSA9IHsgfSk7
CisgICAgRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgTmV0d29ya0RhdGFU
YXNrJiwgTmV0d29ya1Nlc3Npb24mLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0g
eyB9KTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBEb3dubG9hZChEb3dubG9hZE1hbmFnZXIm
LCBEb3dubG9hZElELCBOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sqLCBjb25zdCBQQUw6OlNlc3Np
b25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsK
KyAgICBEb3dubG9hZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9hZElELCBOU1VSTFNlc3Npb25E
b3dubG9hZFRhc2sqLCBOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmls
ZW5hbWUgPSB7IH0pOwogI2VuZGlmCiAKICAgICB+RG93bmxvYWQoKTsKQEAgLTk5LDYgKzk5LDgg
QEAgcHVibGljOgogICAgIHZvaWQgYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCkgeyBt
X21vbml0b3IuYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7IH0KICAgICBEb3dubG9h
ZE1hbmFnZXImIG1hbmFnZXIoKSBjb25zdCB7IHJldHVybiBtX2Rvd25sb2FkTWFuYWdlcjsgfQog
CisgICAgdW5zaWduZWQgdGVzdFNwZWVkTXVsdGlwbGllcigpIGNvbnN0IHsgcmV0dXJuIG1fdGVz
dFNwZWVkTXVsdGlwbGllcjsgfQorCiBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRl
cgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBv
dmVycmlkZTsKQEAgLTEyNCw2ICsxMjYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YXNDYW5j
ZWxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1JlY2VpdmVkRGF0YSB7IGZhbHNlIH07CiAg
ICAgRG93bmxvYWRNb25pdG9yIG1fbW9uaXRvciB7ICp0aGlzIH07CisgICAgdW5zaWduZWQgbV90
ZXN0U3BlZWRNdWx0aXBsaWVyIHsgMSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFn
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFuYWdlci5jcHAJKHJldmlzaW9uIDI1MDQyMSkKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEyMyw3ICsxMjMsMTAgQEAgdm9pZCBEb3dubG9hZE1hbmFnZXI6OnJlc3VtZURv
d25sb2FkKFBBTAogI2lmICFQTEFURk9STShDT0NPQSkKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
I2Vsc2UKLSAgICBhdXRvIGRvd25sb2FkID0gbWFrZVVuaXF1ZTxEb3dubG9hZD4oKnRoaXMsIGRv
d25sb2FkSUQsIG51bGxwdHIsIHNlc3Npb25JRCk7CisgICAgYXV0byogbmV0d29ya1Nlc3Npb24g
PSBtX2NsaWVudC5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpOworICAgIGlmICghbmV0d29ya1Nl
c3Npb24pCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRvd25sb2FkID0gbWFrZVVuaXF1ZTxE
b3dubG9hZD4oKnRoaXMsIGRvd25sb2FkSUQsIG51bGxwdHIsICpuZXR3b3JrU2Vzc2lvbik7CiAK
ICAgICBkb3dubG9hZC0+cmVzdW1lKHJlc3VtZURhdGEsIHBhdGgsIFdURk1vdmUoc2FuZGJveEV4
dGVuc2lvbkhhbmRsZSkpOwogICAgIEFTU0VSVCghbV9kb3dubG9hZHMuY29udGFpbnMoZG93bmxv
YWRJRCkpOwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgJKHJldmlzaW9uIDI1MDQyMSkKKysrIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03Niw3ICs3Niw2IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCBOZXR3
b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQpIGNvbnN0ID0gMDsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHJlZigpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lk
IGRlcmVmKCkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IGRvd25sb2FkTW9u
aXRvclNwZWVkTXVsdGlwbGllcigpIGNvbnN0ID0gMDsKICAgICB9OwogCiAgICAgZXhwbGljaXQg
RG93bmxvYWRNYW5hZ2VyKENsaWVudCYpOwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNb25pdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1vbml0b3IuY3BwCShyZXZp
c2lvbiAyNTA0MjEpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1vbml0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsMTIgKzEwMywxMiBAQCB2
b2lkIERvd25sb2FkTW9uaXRvcjo6YXBwbGljYXRpb25EaWRFbnRlCiAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQgKGlkID0gJSIgUFJJdTY0
ICIpIiwgbV9kb3dubG9hZC5kb3dubG9hZElEKCkuZG93bmxvYWRJRCgpKTsKICAgICBBU1NFUlQo
IW1fdGltZXIuaXNBY3RpdmUoKSk7CiAgICAgQVNTRVJUKCFtX2ludGVydmFsKTsKLSAgICBtX3Rp
bWVyLnN0YXJ0T25lU2hvdCh0aHJvdWdocHV0SW50ZXJ2YWxzWzBdLnRpbWUgLyBzcGVlZE11bHRp
cGxpZXIoKSk7CisgICAgbV90aW1lci5zdGFydE9uZVNob3QodGhyb3VnaHB1dEludGVydmFsc1sw
XS50aW1lIC8gdGVzdFNwZWVkTXVsdGlwbGllcigpKTsKIH0KIAotdWludDMyX3QgRG93bmxvYWRN
b25pdG9yOjpzcGVlZE11bHRpcGxpZXIoKSBjb25zdAordWludDMyX3QgRG93bmxvYWRNb25pdG9y
Ojp0ZXN0U3BlZWRNdWx0aXBsaWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9kb3dubG9hZC5t
YW5hZ2VyKCkuY2xpZW50KCkuZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyKCk7CisgICAg
cmV0dXJuIG1fZG93bmxvYWQudGVzdFNwZWVkTXVsdGlwbGllcigpOwogfQogCiB2b2lkIERvd25s
b2FkTW9uaXRvcjo6dGltZXJGaXJlZCgpCkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBEb3dubG9h
ZE1vbml0b3I6OnRpbWVyRmlyZWQoKQogICAgICAgICBtX2Rvd25sb2FkLmNhbmNlbCgpOwogICAg
IH0gZWxzZSBpZiAobV9pbnRlcnZhbCArIDEgPCBXVEZfQVJSQVlfTEVOR1RIKHRocm91Z2hwdXRJ
bnRlcnZhbHMpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInRpbWVyRmlyZWQ6
IHN1ZmZpY2llbnQgdGhyb3VnaHB1dCByYXRlIChpZCA9ICUiIFBSSXU2NCAiKSIsIG1fZG93bmxv
YWQuZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7Ci0gICAgICAgIG1fdGltZXIuc3RhcnRPbmVT
aG90KHRpbWVVbnRpbE5leHRJbnRlcnZhbChtX2ludGVydmFsKyspIC8gc3BlZWRNdWx0aXBsaWVy
KCkpOworICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCh0aW1lVW50aWxOZXh0SW50ZXJ2YWwo
bV9pbnRlcnZhbCsrKSAvIHRlc3RTcGVlZE11bHRpcGxpZXIoKSk7CiAgICAgfSBlbHNlCiAgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInRpbWVyRmlyZWQ6IERvd25sb2FkIHJlYWNoZWQg
dGhyZXNob2xkIHRvIG5vdCBiZSB0ZXJtaW5hdGVkIChpZCA9ICUiIFBSSXU2NCAiKSIsIG1fZG93
bmxvYWQuZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1vbml0b3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1vbml0b3Iu
aAkocmV2aXNpb24gMjUwNDIxKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRNb25pdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAg
cHJpdmF0ZToKICAgICBEb3dubG9hZCYgbV9kb3dubG9hZDsKIAogICAgIGRvdWJsZSBtZWFzdXJl
ZFRocm91Z2hwdXRSYXRlKCkgY29uc3Q7Ci0gICAgdWludDMyX3Qgc3BlZWRNdWx0aXBsaWVyKCkg
Y29uc3Q7CisgICAgdWludDMyX3QgdGVzdFNwZWVkTXVsdGlwbGllcigpIGNvbnN0OwogICAgIAog
ICAgIHN0cnVjdCBUaW1lc3RhbXAgewogICAgICAgICBNb25vdG9uaWNUaW1lIHRpbWU7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tCShyZXZpc2lvbiAyNTA0MjIpCisrKyBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0JKHdvcmtpbmcgY29weSkK
QEAgLTc4Nyw3ICs3ODcsNyBAQCAtICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNl
c3NpCiAgICAgICAgIFJlZjxOZXR3b3JrRGF0YVRhc2tDb2NvYT4gcHJvdGVjdGVkTmV0d29ya0Rh
dGFUYXNrKCpuZXR3b3JrRGF0YVRhc2spOwogICAgICAgICBhdXRvIGRvd25sb2FkSUQgPSBuZXR3
b3JrRGF0YVRhc2stPnBlbmRpbmdEb3dubG9hZElEKCk7CiAgICAgICAgIGF1dG8mIGRvd25sb2Fk
TWFuYWdlciA9IF9zZXNzaW9uLT5uZXR3b3JrUHJvY2VzcygpLmRvd25sb2FkTWFuYWdlcigpOwot
ICAgICAgICBhdXRvIGRvd25sb2FkID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OkRvd25sb2FkPihkb3du
bG9hZE1hbmFnZXIsIGRvd25sb2FkSUQsIGRvd25sb2FkVGFzaywgX3Nlc3Npb24tPnNlc3Npb25J
RCgpLCBuZXR3b3JrRGF0YVRhc2stPnN1Z2dlc3RlZEZpbGVuYW1lKCkpOworICAgICAgICBhdXRv
IGRvd25sb2FkID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OkRvd25sb2FkPihkb3dubG9hZE1hbmFnZXIs
IGRvd25sb2FkSUQsIGRvd25sb2FkVGFzaywgKl9zZXNzaW9uLCBuZXR3b3JrRGF0YVRhc2stPnN1
Z2dlc3RlZEZpbGVuYW1lKCkpOwogICAgICAgICBuZXR3b3JrRGF0YVRhc2stPnRyYW5zZmVyU2Fu
ZGJveEV4dGVuc2lvblRvRG93bmxvYWQoKmRvd25sb2FkKTsKICAgICAgICAgQVNTRVJUKEZpbGVT
eXN0ZW06OmZpbGVFeGlzdHMobmV0d29ya0RhdGFUYXNrLT5wZW5kaW5nRG93bmxvYWRMb2NhdGlv
bigpKSk7CiAgICAgICAgIGRvd25sb2FkLT5kaWRDcmVhdGVEZXN0aW5hdGlvbihuZXR3b3JrRGF0
YVRhc2stPnBlbmRpbmdEb3dubG9hZExvY2F0aW9uKCkpOwpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5jcHAJKHJldmlzaW9uIDI1MDQyMSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1
OSw2IEBAIFJlZjxQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IFByb2Nlc3NQb28KICAgICBjb3B5
LT5tX3Nob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgPSB0aGlzLT5tX3Nob3VsZENhcHR1
cmVEaXNwbGF5SW5VSVByb2Nlc3M7CiAgICAgY29weS0+bV9zaG91bGRDb25maWd1cmVKU0NGb3JU
ZXN0aW5nID0gdGhpcy0+bV9zaG91bGRDb25maWd1cmVKU0NGb3JUZXN0aW5nOwogICAgIGNvcHkt
Pm1faXNKSVRFbmFibGVkID0gdGhpcy0+bV9pc0pJVEVuYWJsZWQ7Ci0gICAgY29weS0+bV9kb3du
bG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXIgPSB0aGlzLT5tX2Rvd25sb2FkTW9uaXRvclNwZWVk
TXVsdGlwbGllcjsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGNvcHktPm1fY3REYXRh
Q29ubmVjdGlvblNlcnZpY2VUeXBlID0gdGhpcy0+bV9jdERhdGFDb25uZWN0aW9uU2VydmljZVR5
cGU7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDI1MDQyMSkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
aAkod29ya2luZyBjb3B5KQpAQCAtNTQsOSArNTQsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCB1c2Vz
U2luZ2xlV2ViUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc1NpbmdsZVdlYlByb2Nlc3M7
IH0KICAgICB2b2lkIHNldFVzZXNTaW5nbGVXZWJQcm9jZXNzKGJvb2wgZW5hYmxlZCkgeyBtX3Vz
ZXNTaW5nbGVXZWJQcm9jZXNzID0gZW5hYmxlZDsgfQogCi0gICAgdWludDMyX3QgZG93bmxvYWRN
b25pdG9yU3BlZWRNdWx0aXBsaWVyKCkgY29uc3QgeyByZXR1cm4gbV9kb3dubG9hZE1vbml0b3JT
cGVlZE11bHRpcGxpZXI7IH0KLSAgICB2b2lkIHNldERvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlw
bGllcih1aW50MzJfdCBtdWx0aXBsaWVyKSB7IG1fZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBs
aWVyID0gbXVsdGlwbGllcjsgfQotICAgIAogICAgIGJvb2wgaXNBdXRvbWF0aWNQcm9jZXNzV2Fy
bWluZ0VuYWJsZWQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1faXNBdXRvbWF0aWNQ
cm9jZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudC52YWx1ZU9yKG1fY2xpZW50V291bGRCZW5lZml0
RnJvbUF1dG9tYXRpY1Byb2Nlc3NQcmV3YXJtaW5nKTsKQEAgLTE3OCw3ICsxNzUsNiBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9zaG91bGRDb25maWd1cmVKU0NGb3JUZXN0aW5nIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faXNKSVRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV91c2VzU2luZ2xl
V2ViUHJvY2VzcyB7IGZhbHNlIH07Ci0gICAgdWludDMyX3QgbV9kb3dubG9hZE1vbml0b3JTcGVl
ZE11bHRpcGxpZXIgeyAxIH07CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFdURjo6
U3RyaW5nIG1fY3REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlOwpJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uaAkocmV2aXNpb24gMjUwNDIxKQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC03MCw3ICs3MCw2IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlv
cyg4LjAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHBhZ2VDYWNoZUVuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgZ2V0dGVyPWlzSklURW5hYmxlZCkgQk9PTCBKSVRFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgTlNV
SW50ZWdlciBkb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXJGb3JUZXN0aW5nIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIU1RTU3RvcmFnZURpcmVjdG9y
eTopIE5TVVJMICpoc3RzU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBjb25maWd1cmVKU0NGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
bW0JKHJldmlzaW9uIDI1MDQyMSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTM0Niwx
MSArMzQ2LDYgQEAgLSAodm9pZClzZXRKSVRFbmFibGVkOihCT09MKWVuYWJsZWQKICAgICBfcHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5zZXRKSVRFbmFibGVkKGVuYWJsZWQpOwogfQogCi0tIChO
U1VJbnRlZ2VyKWRvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllckZvclRlc3RpbmcKLXsKLSAg
ICByZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+ZG93bmxvYWRNb25pdG9yU3BlZWRN
dWx0aXBsaWVyKCk7Ci19Ci0KIC0gKHZvaWQpc2V0SFNUU1N0b3JhZ2VEaXJlY3Rvcnk6KE5TVVJM
ICopZGlyZWN0b3J5CiB7CiAgICAgaWYgKGRpcmVjdG9yeSAmJiAhW2RpcmVjdG9yeSBpc0ZpbGVV
UkxdKQpAQCAtMzY1LDExICszNjAsNiBAQCAtIChOU1VSTCAqKWhzdHNTdG9yYWdlRGlyZWN0b3J5
CiAgICAgcmV0dXJuIFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6V2ViS2l0OjpMZWdhY3lHbG9iYWxT
ZXR0aW5nczo6c2luZ2xldG9uKCkuaHN0c1N0b3JhZ2VEaXJlY3RvcnkoKSBpc0RpcmVjdG9yeTpZ
RVNdOwogfQogCi0tICh2b2lkKXNldERvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllckZvclRl
c3Rpbmc6KE5TVUludGVnZXIpbXVsdGlwbGllcgotewotICAgIF9wcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24tPnNldERvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllcihtdWx0aXBsaWVyKTsKLX0K
LQogLSAodm9pZClzZXRTdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFu
Z2U6KEJPT0wpc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlCiB7
CiAgICAgX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0U3VwcHJlc3Nlc0Nvbm5lY3Rpb25U
ZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlKHN1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25P
blN5c3RlbUNoYW5nZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24uaAkocmV2aXNpb24gMjUwNDI2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTY3LDYgKzY3LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLgog
QHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqYXBwbGljYXRp
b25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxh
YmxlLCBjb3B5KSBOU1VSTCAqbWVkaWFDYWNoZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMs
IG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5
IChub25hdG9taWMpIE5TVUludGVnZXIgdGVzdFNwZWVkTXVsdGlwbGllciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvLyBUZXN0aW5nIG9u
bHkuCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1h
bmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLm1tCShyZXZpc2lvbiAyNTA0MjYpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0JKHdv
cmtpbmcgY29weSkKQEAgLTMzMCw2ICszMzAsMTYgQEAgLSAodm9pZClzZXRQZXJPcmlnaW5TdG9y
YWdlUXVvdGE6KE5TVUludAogICAgIF9jb25maWd1cmF0aW9uLT5zZXRQZXJPcmlnaW5TdG9yYWdl
UXVvdGEocXVvdGEpOwogfQogCistIChOU1VJbnRlZ2VyKXRlc3RTcGVlZE11bHRpcGxpZXIKK3sK
KyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPnRlc3RTcGVlZE11bHRpcGxpZXIoKTsKK30KKwor
LSAodm9pZClzZXRUZXN0U3BlZWRNdWx0aXBsaWVyOihOU1VJbnRlZ2VyKXF1b3RhCit7CisgICAg
X2NvbmZpZ3VyYXRpb24tPnNldFRlc3RTcGVlZE11bHRpcGxpZXIocXVvdGEpOworfQorCiAtIChO
U1N0cmluZyAqKWJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcgogewogICAgIHJldHVybiBfY29uZmln
dXJhdGlvbi0+Ym91bmRJbnRlcmZhY2VJZGVudGlmaWVyKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlz
aW9uIDI1MDQyMSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwNSw3ICszMDUsNiBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOCiAgICAgcGFyYW1ldGVycy5zdXBwcmVzc2Vz
Q29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UgPSBtX2NvbmZpZ3VyYXRpb24tPnN1
cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5c3RlbUNoYW5nZSgpOwogCiAgICAgcGFy
YW1ldGVycy5zaG91bGRFbmFibGVJVFBEYXRhYmFzZSA9IFtkZWZhdWx0cyBib29sRm9yS2V5OltO
U1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiSW50ZXJuYWxEZWJ1ZyVAIiwgV2ViUHJlZmVyZW5j
ZXNLZXk6OmlzSVRQRGF0YWJhc2VFbmFibGVkS2V5KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKV1d
OwotICAgIHBhcmFtZXRlcnMuZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyID0gbV9jb25m
aWd1cmF0aW9uLT5kb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXIoKTsKIAogICAgIHBhcmFt
ZXRlcnMuZW5hYmxlQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlID0gW2RlZmF1bHRzIGJvb2xG
b3JLZXk6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJFeHBlcmltZW50YWwlQCIsIFdlYlBy
ZWZlcmVuY2VzS2V5OjphZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkS2V5KCkuY3Jl
YXRlQ0ZTdHJpbmcoKS5nZXQoKV1dOwogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmNwcAkocmV2aXNpb24gMjUwNDU4KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04NCw2ICs4NCw3IEBAIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbj4gV2Vic2kKICAgICBjb3B5LT5tX2FsbG93c0NlbGx1bGFyQWNjZXNzID0gdGhpcy0+bV9h
bGxvd3NDZWxsdWxhckFjY2VzczsKICAgICBjb3B5LT5tX2RhdGFDb25uZWN0aW9uU2VydmljZVR5
cGUgPSB0aGlzLT5tX2RhdGFDb25uZWN0aW9uU2VydmljZVR5cGU7CiAgICAgY29weS0+bV90ZXN0
aW5nU2Vzc2lvbkVuYWJsZWQgPSB0aGlzLT5tX3Rlc3RpbmdTZXNzaW9uRW5hYmxlZDsKKyAgICBj
b3B5LT5tX3Rlc3RTcGVlZE11bHRpcGxpZXIgPSB0aGlzLT5tX3Rlc3RTcGVlZE11bHRpcGxpZXI7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKG1fcHJveHlDb25maWd1cmF0aW9uKQogICAg
ICAgICBjb3B5LT5tX3Byb3h5Q29uZmlndXJhdGlvbiA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3Jl
YXRlQ29weShudWxscHRyLCB0aGlzLT5tX3Byb3h5Q29uZmlndXJhdGlvbi5nZXQoKSkpOwpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyNTA0NTgp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4NSw5IEBAIHB1YmxpYzoK
ICAgICBib29sIHRlc3RpbmdTZXNzaW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdGlu
Z1Nlc3Npb25FbmFibGVkOyB9CiAgICAgdm9pZCBzZXRUZXN0aW5nU2Vzc2lvbkVuYWJsZWQoYm9v
bCBlbmFibGVkKSB7IG1fdGVzdGluZ1Nlc3Npb25FbmFibGVkID0gZW5hYmxlZDsgfQogICAgIAor
ICAgIHVuc2lnbmVkIHRlc3RTcGVlZE11bHRpcGxpZXIoKSBjb25zdCB7IHJldHVybiBtX3Rlc3RT
cGVlZE11bHRpcGxpZXI7IH0KKyAgICB2b2lkIHNldFRlc3RTcGVlZE11bHRpcGxpZXIodW5zaWdu
ZWQgbXVsdGlwbGllcikgeyBtX3Rlc3RTcGVlZE11bHRpcGxpZXIgPSBtdWx0aXBsaWVyOyB9Cisg
ICAgCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgQ0ZEaWN0aW9uYXJ5UmVmIHByb3h5Q29uZmln
dXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcHJveHlDb25maWd1cmF0aW9uLmdldCgpOyB9CiAg
ICAgdm9pZCBzZXRQcm94eUNvbmZpZ3VyYXRpb24oQ0ZEaWN0aW9uYXJ5UmVmIGNvbmZpZ3VyYXRp
b24pIHsgbV9wcm94eUNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOyB9CkBAIC0xNzEsNiAr
MTc0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVu
YWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0
aW9uRGVsYXlFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV90ZXN0aW5nU2Vzc2lvbkVuYWJs
ZWQgeyBmYWxzZSB9OworICAgIHVuc2lnbmVkIG1fdGVzdFNwZWVkTXVsdGlwbGllciB7IDEgfTsK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBtX3By
b3h5Q29uZmlndXJhdGlvbjsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3Rv
cmVDb2NvYS5tbQkocmV2aXNpb24gMjUwNDU4KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDUsNyArMTQ1LDggQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURh
dGFTdAogICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPmRhdGFDb25uZWN0aW9uU2VydmljZVR5cGUo
KSwKICAgICAgICAgbV9jb25maWd1cmF0aW9uLT5mYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5h
YmxlZCgpLAogICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPm5ldHdvcmtDYWNoZVNwZWN1bGF0aXZl
VmFsaWRhdGlvbkVuYWJsZWQoKSwKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT50ZXN0aW5nU2Vz
c2lvbkVuYWJsZWQoKQorICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnRlc3RpbmdTZXNzaW9uRW5h
YmxlZCgpLAorICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnRlc3RTcGVlZE11bHRpcGxpZXIoKSwK
ICAgICB9OwogICAgIG5ldHdvcmtpbmdIYXNCZWd1bigpOwogCkluZGV4OiBUb29scy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA0NzEpCisrKyBU
b29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wOS0y
NyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAg
IE1vdmUgRG93bmxvYWRNb25pdG9yIHRlc3Qgc3BlZWQgbXVsdGlwbGllciBmcm9tIFdlYlByb2Nl
c3NQb29sIHRvIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIzMzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRG93bmxvYWQubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp3ZWJWaWV3V2l0
aERvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllcik6CisKIDIwMTktMDktMjcgIEFuZHJlcyBH
b256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgYWNjZXNz
aWJpbGl0eSBmb3IgPGZpZ3VyZT4gZWxlbWVudCBvbiBpT1MuCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0JKHJldmlzaW9uIDI1
MDQyMSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTM5LDkgKzM5LDExIEBACiAjaW1wb3J0IDxXZWJLaXQvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlldy5oPgogI2ltcG9y
dCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dl
YnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLRG93bmxvYWQuaD4K
ICNpbXBvcnQgPFdlYktpdC9fV0tEb3dubG9hZERlbGVnYXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9GaWxlU3lzdGVtLmg+CiAj
aW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL01vbm90b25pY1RpbWUuaD4K
QEAgLTg0OSwxMCArODUxLDExIEBAIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXdXaXRoRG93
bmxvYWQKICAgICBzdGF0aWMgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtEb3du
bG9hZE5hdmlnYXRpb25EZWxlZ2F0ZSBuZXddKTsKICAgICBzdGF0aWMgYXV0byBkb3dubG9hZERl
bGVnYXRlID0gYWRvcHROUyhbRG93bmxvYWRNb25pdG9yVGVzdERlbGVnYXRlIG5ld10pOwogICAg
IGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gYWRvcHROUyhbX1dLUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uIG5ld10pOwotICAgIFtwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gc2V0RG93
bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyRm9yVGVzdGluZzptdWx0aXBsaWVyXTsKICAgICBh
dXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0
aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBb
W19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIG5ld10gYXV0b3JlbGVhc2VdOworICAg
IGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24udGVzdFNwZWVkTXVsdGlwbGllciA9IG11bHRpcGxpZXI7
CiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gbmV3XSk7Ci0gICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29s
OnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0
ZURhdGFTdG9yZTpbW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3Vy
YXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbl0gYXV0b3JlbGVhc2VdXTsKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVn
YXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcm9jZXNzUG9vbC5fZG93
bmxvYWREZWxlZ2F0ZSA9IGRvd25sb2FkRGVsZWdhdGUuZ2V0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379780</attachid>
            <date>2019-09-27 17:51:26 -0700</date>
            <delta_ts>2019-09-30 11:03:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202339-20190927175125.patch</filename>
            <type>text/plain</type>
            <size>33602</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA0NTgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDE5LTA5LTI3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBEb3dubG9h
ZE1vbml0b3IgdGVzdCBzcGVlZCBtdWx0aXBsaWVyIGZyb20gV2ViUHJvY2Vzc1Bvb2wgdG8gV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMjMzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgd2FzIG9ubHkgdXNlZCBmb3Igc29tZSB1bml0IHRlc3Rz
LCB3aGljaCBzdGlsbCBhcmUgYWNjZWxlcmF0ZWQgc28gdGhleSBwYXNzIGluIHRoZSBzYW1lIGFt
b3VudCBvZiB0aW1lIGFzIGJlZm9yZS4KKyAgICAgICAgSSBuZWVkIHRoaXMgdmFsdWUgdG8gbm90
IGJlIHByb2Nlc3MtZ2xvYmFsIGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRv
d25sb2FkOjpEb3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6CisgICAgICAg
IChXZWJLaXQ6OkRvd25sb2FkOjp0ZXN0U3BlZWRNdWx0aXBsaWVyIGNvbnN0KToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpyZXN1bWVEb3dubG9hZCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1vbml0b3IuY3BwOgorICAgICAgICAoV2ViS2l0
OjpEb3dubG9hZE1vbml0b3I6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKToKKyAgICAg
ICAgKFdlYktpdDo6RG93bmxvYWRNb25pdG9yOjp0ZXN0U3BlZWRNdWx0aXBsaWVyIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNb25pdG9yOjp0aW1lckZpcmVkKToKKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWRNb25pdG9yOjpzcGVlZE11bHRpcGxpZXIgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1vbml0b3IuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQmxvYjo6ZG93bmxvYWQpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6dGVz
dFNwZWVkTXVsdGlwbGllciBjb25zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAg
ICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgVVJMU2Vzc2lvbjpkYXRhVGFzazpkaWRCZWNv
bWVEb3dubG9hZFRhc2s6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b246OmNvcHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uIGRvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllckZvclRlc3RpbmddKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldERvd25sb2FkTW9uaXRv
clNwZWVkTXVsdGlwbGllckZvclRlc3Rpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
bW06CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHRlc3RTcGVl
ZE11bHRpcGxpZXJdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24gc2V0VGVzdFNwZWVkTXVsdGlwbGllcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Y29weSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjp0ZXN0U3BlZWRN
dWx0aXBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb246OnNldFRlc3RTcGVlZE11bHRpcGxpZXIpOgorCiAyMDE5LTA5LTI3ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBzaG91
bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24gZnJvbSBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyB0byBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycwpJbmRleDogU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuY3Bw
CShyZXZpc2lvbiAyNTA0MjEpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtEYXRhVGFza0Jsb2IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjcsNyArNDY3LDcgQEAgdm9p
ZCBOZXR3b3JrRGF0YVRhc2tCbG9iOjpkb3dubG9hZCgpCiAgICAgfQogCiAgICAgYXV0byYgZG93
bmxvYWRNYW5hZ2VyID0gbV9uZXR3b3JrUHJvY2Vzcy0+ZG93bmxvYWRNYW5hZ2VyKCk7Ci0gICAg
YXV0byBkb3dubG9hZCA9IG1ha2VVbmlxdWU8RG93bmxvYWQ+KGRvd25sb2FkTWFuYWdlciwgbV9w
ZW5kaW5nRG93bmxvYWRJRCwgKnRoaXMsIG1fc2Vzc2lvbi0+c2Vzc2lvbklEKCksIHN1Z2dlc3Rl
ZEZpbGVuYW1lKCkpOworICAgIGF1dG8gZG93bmxvYWQgPSBtYWtlVW5pcXVlPERvd25sb2FkPihk
b3dubG9hZE1hbmFnZXIsIG1fcGVuZGluZ0Rvd25sb2FkSUQsICp0aGlzLCAqbV9zZXNzaW9uLCBz
dWdnZXN0ZWRGaWxlbmFtZSgpKTsKICAgICBhdXRvKiBkb3dubG9hZFB0ciA9IGRvd25sb2FkLmdl
dCgpOwogICAgIGRvd25sb2FkTWFuYWdlci5kYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhtX3Bl
bmRpbmdEb3dubG9hZElELCBXVEZNb3ZlKGRvd25sb2FkKSk7CiAgICAgZG93bmxvYWRQdHItPmRp
ZENyZWF0ZURlc3RpbmF0aW9uKG1fcGVuZGluZ0Rvd25sb2FkTG9jYXRpb24pOwpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlz
aW9uIDI1MDQ1OCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjIsOCArMzYyLDYgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcgogICAgIGZvciAoYXV0byYgc2NoZW1lIDogcGFyYW1l
dGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QpCiAg
ICAgICAgIHJlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdChzY2hl
bWUpOwogICAgIAotICAgIG1fZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyID0gcGFyYW1l
dGVycy5kb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXI7Ci0KICAgICBSRUxFQVNFX0xPRyhQ
cm9jZXNzLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzOiBQ
cmVzZW50aW5nIHByb2Nlc3MgPSAlZCIsIHRoaXMsIFdlYkNvcmU6OnByZXNlbnRpbmdBcHBsaWNh
dGlvblBJRCgpKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAkocmV2aXNpb24gMjUwNDU4KQorKysgU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zODAsNyArMzgw
LDYgQEAgcHJpdmF0ZToKICAgICBJUEM6OkNvbm5lY3Rpb24qIHBhcmVudFByb2Nlc3NDb25uZWN0
aW9uRm9yRG93bmxvYWRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gcGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKTsgfQogICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlciYgZG93bmxvYWRzQXV0aGVudGljYXRp
b25NYW5hZ2VyKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwZW5kaW5nRG93bmxvYWRDYW5jZWxlZChE
b3dubG9hZElEKSBvdmVycmlkZTsKLSAgICB1aW50MzJfdCBkb3dubG9hZE1vbml0b3JTcGVlZE11
bHRpcGxpZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Rvd25sb2FkTW9uaXRvclNwZWVk
TXVsdGlwbGllcjsgfQogCiAgICAgLy8gTWVzc2FnZSBIYW5kbGVycwogICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNOZXR3b3JrUHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKQEAgLTU1Nyw3ICs1NTYsNiBA
QCBwcml2YXRlOgogICAgICAgICBIYXNoTWFwPFdlYkNvcmU6OkNsaWVudE9yaWdpbiwgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlN0b3JhZ2VRdW90YU1hbmFnZXI+PiBtX21hbmFnZXJzUGVyT3Jp
Z2luOwogICAgIH07CiAgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgU3RvcmFnZVF1b3RhTWFu
YWdlcnM+IG1fc3RvcmFnZVF1b3RhTWFuYWdlcnM7Ci0gICAgdWludDMyX3QgbV9kb3dubG9hZE1v
bml0b3JTcGVlZE11bHRpcGxpZXIgeyAxIH07CiAKICAgICBPcHRpb25TZXQ8TmV0d29ya0NhY2hl
OjpDYWNoZU9wdGlvbj4gbV9jYWNoZU9wdGlvbnM7CiAgICAgV2ViQ29yZTo6TWVzc2FnZVBvcnRD
aGFubmVsUmVnaXN0cnkgbV9tZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTA0NTgpCisrKyBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplCiAgICAgZW5jb2RlciA8PCBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGlyZWN0b3J5IDw8IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUgPDwgdXJsU2NoZW1lc1NlcnZpY2VXb3JrZXJzQ2FuSGFuZGxlIDw8IHNob3VsZERp
c2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXk7CiAjZW5kaWYKICAgICBl
bmNvZGVyIDw8IHNob3VsZEVuYWJsZUlUUERhdGFiYXNlOwotICAgIGVuY29kZXIgPDwgZG93bmxv
YWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyOwogICAgIGVuY29kZXIgPDwgZW5hYmxlQWRDbGlja0F0
dHJpYnV0aW9uRGVidWdNb2RlOwogICAgIGVuY29kZXIgPDwgaHN0c1N0b3JhZ2VEaXJlY3Rvcnk7
CiAgICAgZW5jb2RlciA8PCBoc3RzU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKQEAg
LTE4OCwxMiArMTg3LDYgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNob3VsZEVuYWJsZUlUUERhdGFiYXNl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgT3B0aW9uYWw8dWludDMyX3Q+IGRvd25s
b2FkTW9uaXRvclNwZWVkTXVsdGlwbGllcjsKLSAgICBkZWNvZGVyID4+IGRvd25sb2FkTW9uaXRv
clNwZWVkTXVsdGlwbGllcjsKLSAgICBpZiAoIWRvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGll
cikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlc3VsdC5kb3dubG9hZE1vbml0b3JTcGVl
ZE11bHRpcGxpZXIgPSAqZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyOwotCiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZW5hYmxlQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2Rl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCShyZXZpc2lvbiAyNTA0NTgpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEw
MCw3ICsxMDAsNiBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgCiAg
ICAgYm9vbCBzaG91bGREaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5
IHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgc2hvdWxkRW5hYmxlSVRQRGF0YWJhc2UgeyBm
YWxzZSB9OwotICAgIHVpbnQzMl90IGRvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllciB7IDEg
fTsKICAgICBib29sIGVuYWJsZUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSB7IGZhbHNlIH07
CiAgICAgU3RyaW5nIGhzdHNTdG9yYWdlRGlyZWN0b3J5OwogICAgIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBoc3RzU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCShyZXZpc2lv
biAyNTA0NTgpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsNyBAQCBOZXR3b3JrU2Vzc2lvbjo6TmV0
d29ya1Nlc3Npb24oTmV0d29ya1ByCiAgICAgLCBtX2VuYWJsZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NMb2dUZXN0aW5nRXZlbnQocGFyYW1ldGVycy5lbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TG9nVGVzdGluZ0V2ZW50KQogI2VuZGlmCiAgICAgLCBtX2FkQ2xpY2tBdHRyaWJ1dGlvbihtYWtl
VW5pcXVlUmVmPEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI+KHBhcmFtZXRlcnMuc2Vzc2lvbklE
KSkKKyAgICAsIG1fdGVzdFNwZWVkTXVsdGlwbGllcihwYXJhbWV0ZXJzLnRlc3RTcGVlZE11bHRp
cGxpZXIpCiB7CiAgICAgaWYgKCFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7CiAgICAgICAg
IFN0cmluZyBuZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSBwYXJhbWV0ZXJzLm5ldHdvcmtDYWNoZURp
cmVjdG9yeTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmgJKHJldmlzaW9uIDI1MDQyMSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDYgKzEyMiw4IEBAIHB1
YmxpYzoKIAogICAgIFdlYkNvcmU6OkJsb2JSZWdpc3RyeUltcGwmIGJsb2JSZWdpc3RyeSgpIHsg
cmV0dXJuIG1fYmxvYlJlZ2lzdHJ5OyB9CiAKKyAgICB1bnNpZ25lZCB0ZXN0U3BlZWRNdWx0aXBs
aWVyKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0U3BlZWRNdWx0aXBsaWVyOyB9CisKIHByb3RlY3Rl
ZDoKICAgICBOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKQEAgLTE1Myw2ICsxNTUsNyBAQCBwcm90ZWN0ZWQ6
CiAjZW5kaWYKICAgICBSZWZQdHI8TmV0d29ya0NhY2hlOjpDYWNoZT4gbV9jYWNoZTsKICAgICBX
ZWJDb3JlOjpCbG9iUmVnaXN0cnlJbXBsIG1fYmxvYlJlZ2lzdHJ5OworICAgIHVuc2lnbmVkIG1f
dGVzdFNwZWVkTXVsdGlwbGllciB7IDEgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJ
bmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI1MDQ1OCkK
KysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw2ICs3OCw3IEBAIHZvaWQgTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmUKICAgICBlbmNvZGVyIDw8IGZhc3RTZXJ2ZXJU
cnVzdEV2YWx1YXRpb25FbmFibGVkOwogICAgIGVuY29kZXIgPDwgbmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVWYWxpZGF0aW9uRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IHNob3VsZFVzZVRlc3RpbmdO
ZXR3b3JrU2Vzc2lvbjsKKyAgICBlbmNvZGVyIDw8IHRlc3RTcGVlZE11bHRpcGxpZXI7CiB9CiAK
IE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTI0
Miw2ICsyNDMsMTEgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcgog
ICAgIGlmICghc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKQogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogICAgIAorICAgIE9wdGlvbmFsPHVuc2lnbmVkPiB0ZXN0U3BlZWRNdWx0
aXBsaWVyOworICAgIGRlY29kZXIgPj4gdGVzdFNwZWVkTXVsdGlwbGllcjsKKyAgICBpZiAoIXRl
c3RTcGVlZE11bHRpcGxpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCiAg
ICAgcmV0dXJuIHt7CiAgICAgICAgICpzZXNzaW9uSUQKICAgICAgICAgLCBXVEZNb3ZlKCpib3Vu
ZEludGVyZmFjZUlkZW50aWZpZXIpCkBAIC0yODAsNiArMjg2LDcgQEAgT3B0aW9uYWw8TmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcgogICAgICAgICAsIFdURk1vdmUoKmZhc3RTZXJ2ZXJU
cnVzdEV2YWx1YXRpb25FbmFibGVkKQogICAgICAgICAsIFdURk1vdmUoKm5ldHdvcmtDYWNoZVNw
ZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQpCiAgICAgICAgICwgV1RGTW92ZSgqc2hvdWxkVXNl
VGVzdGluZ05ldHdvcmtTZXNzaW9uKQorICAgICAgICAsIFdURk1vdmUoKnRlc3RTcGVlZE11bHRp
cGxpZXIpCiAgICAgfX07CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgJ
KHJldmlzaW9uIDI1MDQ1OCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtOTYsNiArOTYs
NyBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgCiAgICAgYm9vbCBm
YXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBuZXR3
b3JrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlkYXRpb25FbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29s
IHNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbiB7IGZhbHNlIH07CisgICAgdW5zaWduZWQg
dGVzdFNwZWVkTXVsdGlwbGllciB7IDEgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJ
bmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmNwcAkocmV2aXNpb24gMjUwNDIxKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCwxMyArNTAs
MTQgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLURv
d25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgRG93bmxv
YWRJRCBkb3dubG9hZElELCBOZXR3b3JrRGF0YVRhc2smIGRvd25sb2FkLCBjb25zdCBQQUw6OlNl
c3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCitEb3dubG9h
ZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIsIERvd25sb2FkSUQg
ZG93bmxvYWRJRCwgTmV0d29ya0RhdGFUYXNrJiBkb3dubG9hZCwgTmV0d29ya1Nlc3Npb24mIHNl
c3Npb24sIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSkKICAgICA6IG1fZG93bmxvYWRNYW5h
Z2VyKGRvd25sb2FkTWFuYWdlcikKICAgICAsIG1fZG93bmxvYWRJRChkb3dubG9hZElEKQogICAg
ICwgbV9jbGllbnQoZG93bmxvYWRNYW5hZ2VyLmNsaWVudCgpKQogICAgICwgbV9kb3dubG9hZCgm
ZG93bmxvYWQpCi0gICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgLCBtX3Nlc3Npb25J
RChzZXNzaW9uLnNlc3Npb25JRCgpKQogICAgICwgbV9zdWdnZXN0ZWROYW1lKHN1Z2dlc3RlZE5h
bWUpCisgICAgLCBtX3Rlc3RTcGVlZE11bHRpcGxpZXIoc2Vzc2lvbi50ZXN0U3BlZWRNdWx0aXBs
aWVyKCkpCiB7CiAgICAgQVNTRVJUKG1fZG93bmxvYWRJRC5kb3dubG9hZElEKCkpOwogCkBAIC02
NCwxMyArNjUsMTQgQEAgRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYgZG93bgog
fQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi1Eb3dubG9hZDo6RG93bmxvYWQoRG93bmxvYWRNYW5h
Z2VyJiBkb3dubG9hZE1hbmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgTlNVUkxTZXNzaW9u
RG93bmxvYWRUYXNrKiBkb3dubG9hZCwgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwg
Y29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKQorRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2Fk
TWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIE5TVVJMU2Vz
c2lvbkRvd25sb2FkVGFzayogZG93bmxvYWQsIE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCiAgICAgOiBtX2Rvd25sb2FkTWFuYWdlcihkb3dubG9h
ZE1hbmFnZXIpCiAgICAgLCBtX2Rvd25sb2FkSUQoZG93bmxvYWRJRCkKICAgICAsIG1fY2xpZW50
KGRvd25sb2FkTWFuYWdlci5jbGllbnQoKSkKICAgICAsIG1fZG93bmxvYWRUYXNrKGRvd25sb2Fk
KQotICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lv
bi5zZXNzaW9uSUQoKSkKICAgICAsIG1fc3VnZ2VzdGVkTmFtZShzdWdnZXN0ZWROYW1lKQorICAg
ICwgbV90ZXN0U3BlZWRNdWx0aXBsaWVyKHNlc3Npb24udGVzdFNwZWVkTXVsdGlwbGllcigpKQog
ewogICAgIEFTU0VSVChtX2Rvd25sb2FkSUQuZG93bmxvYWRJRCgpKTsKIApJbmRleDogU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCShyZXZp
c2lvbiAyNTA0MjEpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw5ICs2OCw5IEBAIGNsYXNzIFdlYlBhZ2U7
CiBjbGFzcyBEb3dubG9hZCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxEb3dubG9hZD4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERvd25sb2Fk
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgRG93bmxvYWQoRG93bmxv
YWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgTmV0d29ya0RhdGFUYXNrJiwgY29uc3QgUEFMOjpTZXNz
aW9uSUQmIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSA9IHsgfSk7
CisgICAgRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgTmV0d29ya0RhdGFU
YXNrJiwgTmV0d29ya1Nlc3Npb24mLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0g
eyB9KTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBEb3dubG9hZChEb3dubG9hZE1hbmFnZXIm
LCBEb3dubG9hZElELCBOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sqLCBjb25zdCBQQUw6OlNlc3Np
b25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsK
KyAgICBEb3dubG9hZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9hZElELCBOU1VSTFNlc3Npb25E
b3dubG9hZFRhc2sqLCBOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmls
ZW5hbWUgPSB7IH0pOwogI2VuZGlmCiAKICAgICB+RG93bmxvYWQoKTsKQEAgLTk5LDYgKzk5LDgg
QEAgcHVibGljOgogICAgIHZvaWQgYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCkgeyBt
X21vbml0b3IuYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7IH0KICAgICBEb3dubG9h
ZE1hbmFnZXImIG1hbmFnZXIoKSBjb25zdCB7IHJldHVybiBtX2Rvd25sb2FkTWFuYWdlcjsgfQog
CisgICAgdW5zaWduZWQgdGVzdFNwZWVkTXVsdGlwbGllcigpIGNvbnN0IHsgcmV0dXJuIG1fdGVz
dFNwZWVkTXVsdGlwbGllcjsgfQorCiBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRl
cgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBv
dmVycmlkZTsKQEAgLTEyNCw2ICsxMjYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YXNDYW5j
ZWxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1JlY2VpdmVkRGF0YSB7IGZhbHNlIH07CiAg
ICAgRG93bmxvYWRNb25pdG9yIG1fbW9uaXRvciB7ICp0aGlzIH07CisgICAgdW5zaWduZWQgbV90
ZXN0U3BlZWRNdWx0aXBsaWVyIHsgMSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFn
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFuYWdlci5jcHAJKHJldmlzaW9uIDI1MDQyMSkKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEyMyw3ICsxMjMsMTAgQEAgdm9pZCBEb3dubG9hZE1hbmFnZXI6OnJlc3VtZURv
d25sb2FkKFBBTAogI2lmICFQTEFURk9STShDT0NPQSkKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
I2Vsc2UKLSAgICBhdXRvIGRvd25sb2FkID0gbWFrZVVuaXF1ZTxEb3dubG9hZD4oKnRoaXMsIGRv
d25sb2FkSUQsIG51bGxwdHIsIHNlc3Npb25JRCk7CisgICAgYXV0byogbmV0d29ya1Nlc3Npb24g
PSBtX2NsaWVudC5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpOworICAgIGlmICghbmV0d29ya1Nl
c3Npb24pCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRvd25sb2FkID0gbWFrZVVuaXF1ZTxE
b3dubG9hZD4oKnRoaXMsIGRvd25sb2FkSUQsIG51bGxwdHIsICpuZXR3b3JrU2Vzc2lvbik7CiAK
ICAgICBkb3dubG9hZC0+cmVzdW1lKHJlc3VtZURhdGEsIHBhdGgsIFdURk1vdmUoc2FuZGJveEV4
dGVuc2lvbkhhbmRsZSkpOwogICAgIEFTU0VSVCghbV9kb3dubG9hZHMuY29udGFpbnMoZG93bmxv
YWRJRCkpOwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgJKHJldmlzaW9uIDI1MDQyMSkKKysrIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03Niw3ICs3Niw2IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCBOZXR3
b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQpIGNvbnN0ID0gMDsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHJlZigpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lk
IGRlcmVmKCkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IGRvd25sb2FkTW9u
aXRvclNwZWVkTXVsdGlwbGllcigpIGNvbnN0ID0gMDsKICAgICB9OwogCiAgICAgZXhwbGljaXQg
RG93bmxvYWRNYW5hZ2VyKENsaWVudCYpOwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNb25pdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1vbml0b3IuY3BwCShyZXZp
c2lvbiAyNTA0MjEpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1vbml0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsMTIgKzEwMywxMiBAQCB2
b2lkIERvd25sb2FkTW9uaXRvcjo6YXBwbGljYXRpb25EaWRFbnRlCiAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQgKGlkID0gJSIgUFJJdTY0
ICIpIiwgbV9kb3dubG9hZC5kb3dubG9hZElEKCkuZG93bmxvYWRJRCgpKTsKICAgICBBU1NFUlQo
IW1fdGltZXIuaXNBY3RpdmUoKSk7CiAgICAgQVNTRVJUKCFtX2ludGVydmFsKTsKLSAgICBtX3Rp
bWVyLnN0YXJ0T25lU2hvdCh0aHJvdWdocHV0SW50ZXJ2YWxzWzBdLnRpbWUgLyBzcGVlZE11bHRp
cGxpZXIoKSk7CisgICAgbV90aW1lci5zdGFydE9uZVNob3QodGhyb3VnaHB1dEludGVydmFsc1sw
XS50aW1lIC8gdGVzdFNwZWVkTXVsdGlwbGllcigpKTsKIH0KIAotdWludDMyX3QgRG93bmxvYWRN
b25pdG9yOjpzcGVlZE11bHRpcGxpZXIoKSBjb25zdAordWludDMyX3QgRG93bmxvYWRNb25pdG9y
Ojp0ZXN0U3BlZWRNdWx0aXBsaWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9kb3dubG9hZC5t
YW5hZ2VyKCkuY2xpZW50KCkuZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyKCk7CisgICAg
cmV0dXJuIG1fZG93bmxvYWQudGVzdFNwZWVkTXVsdGlwbGllcigpOwogfQogCiB2b2lkIERvd25s
b2FkTW9uaXRvcjo6dGltZXJGaXJlZCgpCkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBEb3dubG9h
ZE1vbml0b3I6OnRpbWVyRmlyZWQoKQogICAgICAgICBtX2Rvd25sb2FkLmNhbmNlbCgpOwogICAg
IH0gZWxzZSBpZiAobV9pbnRlcnZhbCArIDEgPCBXVEZfQVJSQVlfTEVOR1RIKHRocm91Z2hwdXRJ
bnRlcnZhbHMpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInRpbWVyRmlyZWQ6
IHN1ZmZpY2llbnQgdGhyb3VnaHB1dCByYXRlIChpZCA9ICUiIFBSSXU2NCAiKSIsIG1fZG93bmxv
YWQuZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7Ci0gICAgICAgIG1fdGltZXIuc3RhcnRPbmVT
aG90KHRpbWVVbnRpbE5leHRJbnRlcnZhbChtX2ludGVydmFsKyspIC8gc3BlZWRNdWx0aXBsaWVy
KCkpOworICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCh0aW1lVW50aWxOZXh0SW50ZXJ2YWwo
bV9pbnRlcnZhbCsrKSAvIHRlc3RTcGVlZE11bHRpcGxpZXIoKSk7CiAgICAgfSBlbHNlCiAgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInRpbWVyRmlyZWQ6IERvd25sb2FkIHJlYWNoZWQg
dGhyZXNob2xkIHRvIG5vdCBiZSB0ZXJtaW5hdGVkIChpZCA9ICUiIFBSSXU2NCAiKSIsIG1fZG93
bmxvYWQuZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1vbml0b3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1vbml0b3Iu
aAkocmV2aXNpb24gMjUwNDIxKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRNb25pdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAg
cHJpdmF0ZToKICAgICBEb3dubG9hZCYgbV9kb3dubG9hZDsKIAogICAgIGRvdWJsZSBtZWFzdXJl
ZFRocm91Z2hwdXRSYXRlKCkgY29uc3Q7Ci0gICAgdWludDMyX3Qgc3BlZWRNdWx0aXBsaWVyKCkg
Y29uc3Q7CisgICAgdWludDMyX3QgdGVzdFNwZWVkTXVsdGlwbGllcigpIGNvbnN0OwogICAgIAog
ICAgIHN0cnVjdCBUaW1lc3RhbXAgewogICAgICAgICBNb25vdG9uaWNUaW1lIHRpbWU7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tCShyZXZpc2lvbiAyNTA0MjIpCisrKyBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0JKHdvcmtpbmcgY29weSkK
QEAgLTc4Nyw3ICs3ODcsNyBAQCAtICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNl
c3NpCiAgICAgICAgIFJlZjxOZXR3b3JrRGF0YVRhc2tDb2NvYT4gcHJvdGVjdGVkTmV0d29ya0Rh
dGFUYXNrKCpuZXR3b3JrRGF0YVRhc2spOwogICAgICAgICBhdXRvIGRvd25sb2FkSUQgPSBuZXR3
b3JrRGF0YVRhc2stPnBlbmRpbmdEb3dubG9hZElEKCk7CiAgICAgICAgIGF1dG8mIGRvd25sb2Fk
TWFuYWdlciA9IF9zZXNzaW9uLT5uZXR3b3JrUHJvY2VzcygpLmRvd25sb2FkTWFuYWdlcigpOwot
ICAgICAgICBhdXRvIGRvd25sb2FkID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OkRvd25sb2FkPihkb3du
bG9hZE1hbmFnZXIsIGRvd25sb2FkSUQsIGRvd25sb2FkVGFzaywgX3Nlc3Npb24tPnNlc3Npb25J
RCgpLCBuZXR3b3JrRGF0YVRhc2stPnN1Z2dlc3RlZEZpbGVuYW1lKCkpOworICAgICAgICBhdXRv
IGRvd25sb2FkID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OkRvd25sb2FkPihkb3dubG9hZE1hbmFnZXIs
IGRvd25sb2FkSUQsIGRvd25sb2FkVGFzaywgKl9zZXNzaW9uLCBuZXR3b3JrRGF0YVRhc2stPnN1
Z2dlc3RlZEZpbGVuYW1lKCkpOwogICAgICAgICBuZXR3b3JrRGF0YVRhc2stPnRyYW5zZmVyU2Fu
ZGJveEV4dGVuc2lvblRvRG93bmxvYWQoKmRvd25sb2FkKTsKICAgICAgICAgQVNTRVJUKEZpbGVT
eXN0ZW06OmZpbGVFeGlzdHMobmV0d29ya0RhdGFUYXNrLT5wZW5kaW5nRG93bmxvYWRMb2NhdGlv
bigpKSk7CiAgICAgICAgIGRvd25sb2FkLT5kaWRDcmVhdGVEZXN0aW5hdGlvbihuZXR3b3JrRGF0
YVRhc2stPnBlbmRpbmdEb3dubG9hZExvY2F0aW9uKCkpOwpJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNw
cAkocmV2aXNpb24gMjUwNDIxKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MDksNyArOTA5LDcg
QEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkb3dubG9hZCgpCiAgICAgbV9kb3dubG9hZE91
dHB1dFN0cmVhbSA9IGFkb3B0R1JlZihHX09VVFBVVF9TVFJFQU0ob3V0cHV0U3RyZWFtLmxlYWtS
ZWYoKSkpOwogCiAgICAgYXV0byYgZG93bmxvYWRNYW5hZ2VyID0gbV9zZXNzaW9uLT5uZXR3b3Jr
UHJvY2VzcygpLmRvd25sb2FkTWFuYWdlcigpOwotICAgIGF1dG8gZG93bmxvYWQgPSBtYWtlVW5p
cXVlPERvd25sb2FkPihkb3dubG9hZE1hbmFnZXIsIG1fcGVuZGluZ0Rvd25sb2FkSUQsICp0aGlz
LCBtX3Nlc3Npb24tPnNlc3Npb25JRCgpLCBzdWdnZXN0ZWRGaWxlbmFtZSgpKTsKKyAgICBhdXRv
IGRvd25sb2FkID0gbWFrZVVuaXF1ZTxEb3dubG9hZD4oZG93bmxvYWRNYW5hZ2VyLCBtX3BlbmRp
bmdEb3dubG9hZElELCAqdGhpcywgKm1fc2Vzc2lvbiwgc3VnZ2VzdGVkRmlsZW5hbWUoKSk7CiAg
ICAgYXV0byogZG93bmxvYWRQdHIgPSBkb3dubG9hZC5nZXQoKTsKICAgICBkb3dubG9hZE1hbmFn
ZXIuZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2sobV9wZW5kaW5nRG93bmxvYWRJRCwgV1RGTW92
ZShkb3dubG9hZCkpOwogICAgIGRvd25sb2FkUHRyLT5kaWRDcmVhdGVEZXN0aW5hdGlvbihtX3Bl
bmRpbmdEb3dubG9hZExvY2F0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCShyZXZp
c2lvbiAyNTA0MjEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNiBAQCBSZWY8
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBQcm9jZXNzUG9vCiAgICAgY29weS0+bV9zaG91bGRD
YXB0dXJlRGlzcGxheUluVUlQcm9jZXNzID0gdGhpcy0+bV9zaG91bGRDYXB0dXJlRGlzcGxheUlu
VUlQcm9jZXNzOwogICAgIGNvcHktPm1fc2hvdWxkQ29uZmlndXJlSlNDRm9yVGVzdGluZyA9IHRo
aXMtPm1fc2hvdWxkQ29uZmlndXJlSlNDRm9yVGVzdGluZzsKICAgICBjb3B5LT5tX2lzSklURW5h
YmxlZCA9IHRoaXMtPm1faXNKSVRFbmFibGVkOwotICAgIGNvcHktPm1fZG93bmxvYWRNb25pdG9y
U3BlZWRNdWx0aXBsaWVyID0gdGhpcy0+bV9kb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXI7
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBjb3B5LT5tX2N0RGF0YUNvbm5lY3Rpb25T
ZXJ2aWNlVHlwZSA9IHRoaXMtPm1fY3REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlOwogI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyNTA0MjEpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU0LDkgKzU0LDYgQEAgcHVibGljOgogICAgIGJvb2wgdXNlc1NpbmdsZVdlYlBy
b2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3VzZXNTaW5nbGVXZWJQcm9jZXNzOyB9CiAgICAgdm9p
ZCBzZXRVc2VzU2luZ2xlV2ViUHJvY2Vzcyhib29sIGVuYWJsZWQpIHsgbV91c2VzU2luZ2xlV2Vi
UHJvY2VzcyA9IGVuYWJsZWQ7IH0KIAotICAgIHVpbnQzMl90IGRvd25sb2FkTW9uaXRvclNwZWVk
TXVsdGlwbGllcigpIGNvbnN0IHsgcmV0dXJuIG1fZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBs
aWVyOyB9Ci0gICAgdm9pZCBzZXREb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXIodWludDMy
X3QgbXVsdGlwbGllcikgeyBtX2Rvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllciA9IG11bHRp
cGxpZXI7IH0KLSAgICAKICAgICBib29sIGlzQXV0b21hdGljUHJvY2Vzc1dhcm1pbmdFbmFibGVk
KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2lzQXV0b21hdGljUHJvY2Vzc1dhcm1p
bmdFbmFibGVkQnlDbGllbnQudmFsdWVPcihtX2NsaWVudFdvdWxkQmVuZWZpdEZyb21BdXRvbWF0
aWNQcm9jZXNzUHJld2FybWluZyk7CkBAIC0xNzgsNyArMTc1LDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fc2hvdWxkQ29uZmlndXJlSlNDRm9yVGVzdGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2lzSklURW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fdXNlc1NpbmdsZVdlYlByb2Nlc3Mg
eyBmYWxzZSB9OwotICAgIHVpbnQzMl90IG1fZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVy
IHsgMSB9OwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBXVEY6OlN0cmluZyBtX2N0
RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmgJKHJldmlzaW9uIDI1MDQyMSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNzAs
NyArNzAsNiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wCiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBwYWdlQ2FjaGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc3Vw
cHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRl
cj1pc0pJVEVuYWJsZWQpIEJPT0wgSklURW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE0LjQpLCBpb3MoMTIuMikpOwotQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgZG93
bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMs
IG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFNUU1N0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAq
aHN0c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgY29uZmlndXJl
SlNDRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCShyZXZpc2lv
biAyNTA0MjEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNDYsMTEgKzM0Niw2IEBA
IC0gKHZvaWQpc2V0SklURW5hYmxlZDooQk9PTCllbmFibGVkCiAgICAgX3Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi0+c2V0SklURW5hYmxlZChlbmFibGVkKTsKIH0KIAotLSAoTlNVSW50ZWdlcilk
b3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXJGb3JUZXN0aW5nCi17Ci0gICAgcmV0dXJuIF9w
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPmRvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllcigp
OwotfQotCiAtICh2b2lkKXNldEhTVFNTdG9yYWdlRGlyZWN0b3J5OihOU1VSTCAqKWRpcmVjdG9y
eQogewogICAgIGlmIChkaXJlY3RvcnkgJiYgIVtkaXJlY3RvcnkgaXNGaWxlVVJMXSkKQEAgLTM2
NSwxMSArMzYwLDYgQEAgLSAoTlNVUkwgKiloc3RzU3RvcmFnZURpcmVjdG9yeQogICAgIHJldHVy
biBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOldlYktpdDo6TGVnYWN5R2xvYmFsU2V0dGluZ3M6OnNp
bmdsZXRvbigpLmhzdHNTdG9yYWdlRGlyZWN0b3J5KCkgaXNEaXJlY3Rvcnk6WUVTXTsKIH0KIAot
LSAodm9pZClzZXREb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXJGb3JUZXN0aW5nOihOU1VJ
bnRlZ2VyKW11bHRpcGxpZXIKLXsKLSAgICBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5zZXRE
b3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXIobXVsdGlwbGllcik7Ci19Ci0KIC0gKHZvaWQp
c2V0U3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlOihCT09MKXN1
cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5c3RlbUNoYW5nZQogewogICAgIF9wcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldFN1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25P
blN5c3RlbUNoYW5nZShzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFu
Z2UpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgJKHJldmlz
aW9uIDI1MDQyNikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw2ICs2Nyw3
IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4KIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmFwcGxpY2F0aW9uQ2FjaGVGbGF0
RmlsZVN1YmRpcmVjdG9yeU5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkg
TlNVUkwgKm1lZGlhQ2FjaGVEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwg
Y29weSkgTlNVUkwgKm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
KSBOU1VJbnRlZ2VyIHRlc3RTcGVlZE11bHRpcGxpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLy8gVGVzdGluZyBvbmx5LgogQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVz
dHJpY3Rpb25zRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5tbQkocmV2aXNpb24gMjUwNDI2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zMzAsNiArMzMwLDE2IEBAIC0gKHZvaWQpc2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhOihO
U1VJbnQKICAgICBfY29uZmlndXJhdGlvbi0+c2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhKHF1b3Rh
KTsKIH0KIAorLSAoTlNVSW50ZWdlcil0ZXN0U3BlZWRNdWx0aXBsaWVyCit7CisgICAgcmV0dXJu
IF9jb25maWd1cmF0aW9uLT50ZXN0U3BlZWRNdWx0aXBsaWVyKCk7Cit9CisKKy0gKHZvaWQpc2V0
VGVzdFNwZWVkTXVsdGlwbGllcjooTlNVSW50ZWdlcilxdW90YQoreworICAgIF9jb25maWd1cmF0
aW9uLT5zZXRUZXN0U3BlZWRNdWx0aXBsaWVyKHF1b3RhKTsKK30KKwogLSAoTlNTdHJpbmcgKili
b3VuZEludGVyZmFjZUlkZW50aWZpZXIKIHsKICAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmJv
dW5kSW50ZXJmYWNlSWRlbnRpZmllcigpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTA0MjEp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0zMDUsNyArMzA1LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cGxhdGZvcm1Jbml0aWFsaXplTgogICAgIHBhcmFtZXRlcnMuc3VwcHJlc3Nlc0Nvbm5lY3Rpb25U
ZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlID0gbV9jb25maWd1cmF0aW9uLT5zdXBwcmVzc2VzQ29u
bmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UoKTsKIAogICAgIHBhcmFtZXRlcnMuc2hv
dWxkRW5hYmxlSVRQRGF0YWJhc2UgPSBbZGVmYXVsdHMgYm9vbEZvcktleTpbTlNTdHJpbmcgc3Ry
aW5nV2l0aEZvcm1hdDpAIkludGVybmFsRGVidWclQCIsIFdlYlByZWZlcmVuY2VzS2V5Ojppc0lU
UERhdGFiYXNlRW5hYmxlZEtleSgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCldXTsKLSAgICBwYXJh
bWV0ZXJzLmRvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllciA9IG1fY29uZmlndXJhdGlvbi0+
ZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyKCk7CiAKICAgICBwYXJhbWV0ZXJzLmVuYWJs
ZUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSA9IFtkZWZhdWx0cyBib29sRm9yS2V5OltOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiRXhwZXJpbWVudGFsJUAiLCBXZWJQcmVmZXJlbmNlc0tl
eTo6YWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZEtleSgpLmNyZWF0ZUNGU3RyaW5n
KCkuZ2V0KCldXTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5jcHAJKHJldmlzaW9uIDI1MDQ1OCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODQsNiArODQsNyBAQCBSZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNp
CiAgICAgY29weS0+bV9hbGxvd3NDZWxsdWxhckFjY2VzcyA9IHRoaXMtPm1fYWxsb3dzQ2VsbHVs
YXJBY2Nlc3M7CiAgICAgY29weS0+bV9kYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlID0gdGhpcy0+
bV9kYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlOwogICAgIGNvcHktPm1fdGVzdGluZ1Nlc3Npb25F
bmFibGVkID0gdGhpcy0+bV90ZXN0aW5nU2Vzc2lvbkVuYWJsZWQ7CisgICAgY29weS0+bV90ZXN0
U3BlZWRNdWx0aXBsaWVyID0gdGhpcy0+bV90ZXN0U3BlZWRNdWx0aXBsaWVyOwogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIGlmIChtX3Byb3h5Q29uZmlndXJhdGlvbikKICAgICAgICAgY29weS0+
bV9wcm94eUNvbmZpZ3VyYXRpb24gPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZUNvcHkobnVs
bHB0ciwgdGhpcy0+bV9wcm94eUNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAkocmV2aXNpb24gMjUwNDU4KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtODUsNiArODUsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCB0
ZXN0aW5nU2Vzc2lvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Rlc3RpbmdTZXNzaW9uRW5h
YmxlZDsgfQogICAgIHZvaWQgc2V0VGVzdGluZ1Nlc3Npb25FbmFibGVkKGJvb2wgZW5hYmxlZCkg
eyBtX3Rlc3RpbmdTZXNzaW9uRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICAKKyAgICB1bnNpZ25l
ZCB0ZXN0U3BlZWRNdWx0aXBsaWVyKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0U3BlZWRNdWx0aXBs
aWVyOyB9CisgICAgdm9pZCBzZXRUZXN0U3BlZWRNdWx0aXBsaWVyKHVuc2lnbmVkIG11bHRpcGxp
ZXIpIHsgbV90ZXN0U3BlZWRNdWx0aXBsaWVyID0gbXVsdGlwbGllcjsgfQorICAgIAogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIENGRGljdGlvbmFyeVJlZiBwcm94eUNvbmZpZ3VyYXRpb24oKSBj
b25zdCB7IHJldHVybiBtX3Byb3h5Q29uZmlndXJhdGlvbi5nZXQoKTsgfQogICAgIHZvaWQgc2V0
UHJveHlDb25maWd1cmF0aW9uKENGRGljdGlvbmFyeVJlZiBjb25maWd1cmF0aW9uKSB7IG1fcHJv
eHlDb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsgfQpAQCAtMTcxLDYgKzE3NCw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2Zhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fc2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5h
YmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fdGVzdGluZ1Nlc3Npb25FbmFibGVkIHsgZmFsc2Ug
fTsKKyAgICB1bnNpZ25lZCBtX3Rlc3RTcGVlZE11bHRpcGxpZXIgeyAxIH07CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbV9wcm94eUNvbmZpZ3Vy
YXRpb247CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0J
KHJldmlzaW9uIDI1MDQ1OCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQ1LDcg
KzE0NSw4IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3QKICAgICAg
ICAgbV9jb25maWd1cmF0aW9uLT5kYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKCksCiAgICAgICAg
IG1fY29uZmlndXJhdGlvbi0+ZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQoKSwKICAg
ICAgICAgbV9jb25maWd1cmF0aW9uLT5uZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlkYXRpb25F
bmFibGVkKCksCi0gICAgICAgIG1fY29uZmlndXJhdGlvbi0+dGVzdGluZ1Nlc3Npb25FbmFibGVk
KCkKKyAgICAgICAgbV9jb25maWd1cmF0aW9uLT50ZXN0aW5nU2Vzc2lvbkVuYWJsZWQoKSwKKyAg
ICAgICAgbV9jb25maWd1cmF0aW9uLT50ZXN0U3BlZWRNdWx0aXBsaWVyKCksCiAgICAgfTsKICAg
ICBuZXR3b3JraW5nSGFzQmVndW4oKTsKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjUwNDcxKQorKysgVG9vbHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMDktMjcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIERvd25s
b2FkTW9uaXRvciB0ZXN0IHNwZWVkIG11bHRpcGxpZXIgZnJvbSBXZWJQcm9jZXNzUG9vbCB0byBX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rv
d25sb2FkLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2ViVmlld1dpdGhEb3dubG9hZE1v
bml0b3JTcGVlZE11bHRpcGxpZXIpOgorCiAyMDE5LTA5LTI3ICBBbmRyZXMgR29uemFsZXogIDxh
bmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IGFjY2Vzc2liaWxpdHkgZm9y
IDxmaWd1cmU+IGVsZW1lbnQgb24gaU9TLgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tCShyZXZpc2lvbiAyNTA0MjEpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0zOSw5ICszOSwxMSBAQAogI2ltcG9ydCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZVBy
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KICNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXdDb25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0Rvd25sb2FkLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvX1dLRG93bmxvYWREZWxlZ2F0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvRmlsZVN5c3RlbS5oPgogI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CkBAIC04NDksMTAg
Kzg1MSwxMSBAQCBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3V2l0aERvd25sb2FkCiAgICAg
c3RhdGljIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbRG93bmxvYWROYXZpZ2F0
aW9uRGVsZWdhdGUgbmV3XSk7CiAgICAgc3RhdGljIGF1dG8gZG93bmxvYWREZWxlZ2F0ZSA9IGFk
b3B0TlMoW0Rvd25sb2FkTW9uaXRvclRlc3REZWxlZ2F0ZSBuZXddKTsKICAgICBhdXRvIHByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
biBuZXddKTsKLSAgICBbcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldERvd25sb2FkTW9uaXRv
clNwZWVkTXVsdGlwbGllckZvclRlc3Rpbmc6bXVsdGlwbGllcl07CiAgICAgYXV0byBwcm9jZXNz
UG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIF9XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uICpkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gW1tfV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbiBuZXddIGF1dG9yZWxlYXNlXTsKKyAgICBkYXRhU3RvcmVD
b25maWd1cmF0aW9uLnRlc3RTcGVlZE11bHRpcGxpZXIgPSBtdWx0aXBsaWVyOwogICAgIGF1dG8g
d2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5l
d10pOwotICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9v
bC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6
W1tbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFT
dG9yZUNvbmZpZ3VyYXRpb25dIGF1dG9yZWxlYXNlXV07CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAg
W3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07
CiAgICAgW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ucHJvY2Vzc1Bvb2wuX2Rvd25sb2FkRGVsZWdh
dGUgPSBkb3dubG9hZERlbGVnYXRlLmdldCgpOwo=
</data>
<flag name="review"
          id="395513"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
      

    </bug>

</bugzilla>