<?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>121393</bug_id>
          
          <creation_ts>2013-09-15 10:54:43 -0700</creation_ts>
          <short_desc>CTTE: Node subclasses should take a Document by reference in their constructor (Part 8)</short_desc>
          <delta_ts>2013-09-15 11:05:00 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>fmalita</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>929456</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-15 10:54:43 -0700</bug_when>
    <thetext>CTTE: Node subclasses should take a Document by reference in their constructor (Part 8)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929457</commentid>
    <comment_count>1</comment_count>
      <attachid>211714</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-15 11:01:44 -0700</bug_when>
    <thetext>Created attachment 211714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929459</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-15 11:05:00 -0700</bug_when>
    <thetext>Committed r155815: &lt;http://trac.webkit.org/changeset/155815&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211714</attachid>
            <date>2013-09-15 11:01:44 -0700</date>
            <delta_ts>2013-09-15 11:03:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121393-20130915110142.patch</filename>
            <type>text/plain</type>
            <size>167979</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTgxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEzLTA5LTE1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1RURTogTm9kZSBzdWJjbGFzc2VzIHNo
b3VsZCB0YWtlIGEgRG9jdW1lbnQgYnkgcmVmZXJlbmNlIGluIHRoZWlyIGNvbnN0cnVjdG9yIChQ
YXJ0IDgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjEzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
b252ZXJ0cyB0aGUgZm9sbG93aW5nIHRvIHRha2UgYSBEb2N1bWVudCByZWZlcmVuY2U6CisgICAg
ICAgICAgICAtIEFsbCBvZiBTVkcKKwogMjAxMy0wOS0xNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFtDVFRFXSBOb2RlIHN1YmNsYXNzZXMgc2hvdWxkIHRha2UgYSBE
b2N1bWVudCBieSByZWZlcmVuY2UgaW4gdGhlaXIgY29uc3RydWN0b3IgKFBhcnQgNykKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTQgKzYz
LDE0IEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHQUUKICAgICBSRUdJ
U1RFUl9QQVJFTlRfQU5JTUFURURfUFJPUEVSVElFUyhTVkdHcmFwaGljc0VsZW1lbnQpCiBFTkRf
UkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCi1pbmxpbmUgU1ZHQUVsZW1lbnQ6OlNWR0FF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkK
K2lubGluZSBTVkdBRWxlbWVudDo6U1ZHQUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjphVGFnKSk7
CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdBRWxlbWVudCgpOwogfQogCi1Q
YXNzUmVmUHRyPFNWR0FFbGVtZW50PiBTVkdBRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHQUVsZW1l
bnQ+IFNWR0FFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHQUVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCShy
ZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzQsMTAgKzM0LDEwIEBAIGNsYXNzIFNWR0FFbGVtZW50IEZJTkFMIDog
cHVibGljIFNWR0dyYXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1VSSVJl
ZmVyZW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1ZHQUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBTVkdBRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKKyAgICBTVkdBRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZH
VGVzdHM6OmlzVmFsaWQoKTsgfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fs
dEdseXBoRGVmRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FsdEdseXBoRGVmRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwx
MyArMjgsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1pbmxpbmUgU1ZHQWx0R2x5cGhE
ZWZFbGVtZW50OjpTVkdBbHRHbHlwaERlZkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFNWR0FsdEdseXBoRGVmRWxlbWVudDo6
U1ZHQWx0R2x5cGhEZWZFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7CiAg
ICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFsdEdseXBoRGVmVGFnKSk7CiB9CiAKLVBh
c3NSZWZQdHI8U1ZHQWx0R2x5cGhEZWZFbGVtZW50PiBTVkdBbHRHbHlwaERlZkVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQ
YXNzUmVmUHRyPFNWR0FsdEdseXBoRGVmRWxlbWVudD4gU1ZHQWx0R2x5cGhEZWZFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHQWx0R2x5cGhEZWZFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVm
RWxlbWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0
R2x5cGhEZWZFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEyICsyOCwxMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0FsdEdseXBoRGVmRWxlbWVudCBGSU5BTCA6IHB1
YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdBbHRH
bHlwaERlZkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdBbHRHbHlwaERlZkVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaGFzVmFsaWRHbHlwaEVs
ZW1lbnRzKFZlY3RvcjxTdHJpbmc+JiBnbHlwaE5hbWVzKSBjb25zdDsKIAogcHJpdmF0ZToKLSAg
ICBTVkdBbHRHbHlwaERlZkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CisgICAgU1ZHQWx0R2x5cGhEZWZFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5
bGUmKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMs
MTQgKzQzLDE0IEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHQWwKICAg
ICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJPUEVSVElFUyhTVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50KQogRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAotaW5saW5lIFNWR0Fs
dEdseXBoRWxlbWVudDo6U1ZHQWx0R2x5cGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdBbHRHbHlwaEVsZW1lbnQ6OlNW
R0FsdEdseXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjphbHRHbHlwaFRhZykpOwog
ICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHQWx0R2x5cGhFbGVtZW50KCk7CiB9
CiAKLVBhc3NSZWZQdHI8U1ZHQWx0R2x5cGhFbGVtZW50PiBTVkdBbHRHbHlwaEVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQ
YXNzUmVmUHRyPFNWR0FsdEdseXBoRWxlbWVudD4gU1ZHQWx0R2x5cGhFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU1ZHQWx0R2x5cGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCShyZXZp
c2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgU1ZHR2x5cGhFbGVtZW50Owog
Y2xhc3MgU1ZHQWx0R2x5cGhFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR1RleHRQb3NpdGlvbmlu
Z0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVVJJ
UmVmZXJlbmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdBbHRHbHlwaEVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTVkdBbHRHbHlwaEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZ2x5cGhSZWYoKSBj
b25zdDsKICAgICB2b2lkIHNldEdseXBoUmVmKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlv
bkNvZGUmKTsKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzVmFsaWRHbHlw
aEVsZW1lbnRzKFZlY3RvcjxTdHJpbmc+JiBnbHlwaE5hbWVzKSBjb25zdDsKIAogcHJpdmF0ZToK
LSAgICBTVkdBbHRHbHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CisgICAgU1ZHQWx0R2x5cGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiwgUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5k
ZXJlcihjb25zdCBOb2RlKikgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0
R2x5cGhJdGVtRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FsdEdseXBoSXRlbUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDEzICsyOCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBTVkdBbHRHbHlw
aEl0ZW1FbGVtZW50OjpTVkdBbHRHbHlwaEl0ZW1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdBbHRHbHlwaEl0ZW1FbGVt
ZW50OjpTVkdBbHRHbHlwaEl0ZW1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
CiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFsdEdseXBoSXRlbVRhZykpOwog
fQogCi1QYXNzUmVmUHRyPFNWR0FsdEdseXBoSXRlbUVsZW1lbnQ+IFNWR0FsdEdseXBoSXRlbUVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQpCitQYXNzUmVmUHRyPFNWR0FsdEdseXBoSXRlbUVsZW1lbnQ+IFNWR0FsdEdseXBoSXRl
bUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdBbHRHbHlwaEl0ZW1FbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QWx0R2x5cGhJdGVtRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbHRHbHlwaEl0ZW1FbGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEy
ICsyOCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0FsdEdseXBoSXRlbUVs
ZW1lbnQgRklOQUwgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8U1ZHQWx0R2x5cGhJdGVtRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FsdEdseXBoSXRlbUVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJv
b2wgaGFzVmFsaWRHbHlwaEVsZW1lbnRzKFZlY3RvcjxTdHJpbmc+JiBnbHlwaE5hbWVzKSBjb25z
dDsKIAogcHJpdmF0ZToKLSAgICBTVkdBbHRHbHlwaEl0ZW1FbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR0FsdEdseXBoSXRlbUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05l
ZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAko
cmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMyArMjcsMTMgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIAotaW5saW5lIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ6OlNWR0FuaW1h
dGVDb2xvckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
Y3VtZW50KQoraW5saW5lIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ6OlNWR0FuaW1hdGVDb2xvckVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogU1ZHQW5pbWF0ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7CiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFuaW1hdGVDb2xvclRhZykpOwogfQogCi1QYXNzUmVmUHRy
PFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ+IFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVm
UHRyPFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ+IFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdBbmltYXRlQ29sb3JFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JF
bGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlQ29sb3JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSwxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQgRklOQUwgOiBw
dWJsaWMgU1ZHQW5pbWF0ZUVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdBbmltYXRlQ29sb3JFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAg
U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
KyAgICBTVkdBbmltYXRlQ29sb3JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVQcm9wZXJ0eVZhbHVlVHlwZXMoY29uc3Qg
U3RyaW5nJiBmcm9tLCBjb25zdCBTdHJpbmcmIHRvKTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYs
MTQgKzM2LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHQW5pbWF0ZUVsZW1lbnQ6
OlNWR0FuaW1hdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKK1NWR0FuaW1hdGVFbGVtZW50OjpTVkdBbmltYXRlRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdBbmlt
YXRpb25FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV9hbmltYXRlZFByb3BlcnR5
VHlwZShBbmltYXRlZFN0cmluZykKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6
YW5pbWF0ZVRhZykgfHwgaGFzVGFnTmFtZShTVkdOYW1lczo6c2V0VGFnKSB8fCBoYXNUYWdOYW1l
KFNWR05hbWVzOjphbmltYXRlQ29sb3JUYWcpIHx8IGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFuaW1h
dGVUcmFuc2Zvcm1UYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdBbmltYXRlRWxlbWVudD4gU1ZH
QW5pbWF0ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPFNWR0FuaW1hdGVFbGVtZW50PiBTVkdBbmltYXRl
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0FuaW1hdGVFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVs
ZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDEzICszNiwxMyBAQCBjbGFzcyBTVkdB
bmltYXRlZFByb3BlcnR5OwogCiBjbGFzcyBTVkdBbmltYXRlRWxlbWVudCA6IHB1YmxpYyBTVkdB
bmltYXRpb25FbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdBbmlt
YXRlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FuaW1hdGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZUVsZW1lbnQoKTsK
IAogICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIGRldGVybWluZUFuaW1hdGVkUHJvcGVydHlUeXBl
KFNWR0VsZW1lbnQqKSBjb25zdDsKICAgICAKIHByb3RlY3RlZDoKLSAgICBTVkdBbmltYXRlRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdBbmltYXRlRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCByZXNldEFuaW1hdGVkVHlwZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckFuaW1hdGVkVHlw
ZShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB1c2luZyBuYW1l
c3BhY2UgU1ZHTmFtZXM7CiAKLWlubGluZSBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6U1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
IGRvY3VtZW50KQoraW5saW5lIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpTVkdBbmltYXRlTW90
aW9uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCiAgICAgOiBTVkdBbmltYXRpb25FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwg
bV9oYXNUb1BvaW50QXRFbmRPZkR1cmF0aW9uKGZhbHNlKQogewpAQCAtNTIsNyArNTIsNyBAQCBp
bmxpbmUgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OlNWR0FuaW1hCiAgICAgQVNTRVJUKGhhc1Rh
Z05hbWUoYW5pbWF0ZU1vdGlvblRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0FuaW1hdGVNb3Rp
b25FbGVtZW50PiBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHQW5pbWF0
ZU1vdGlvbkVsZW1lbnQ+IFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5o
CShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlv
bkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTEgKzMwLDExIEBAIGNsYXNzIEFmZmlu
ZVRyYW5zZm9ybTsKICAgICAgICAgICAgIAogY2xhc3MgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQg
RklOQUwgOiBwdWJsaWMgU1ZHQW5pbWF0aW9uRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdBbmltYXRlTW90
aW9uRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAg
IHZvaWQgdXBkYXRlQW5pbWF0aW9uUGF0aCgpOwogCiBwcml2YXRlOgotICAgIFNWR0FuaW1hdGVN
b3Rpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAg
ICAgdmlydHVhbCBib29sIGhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpOwogICAgIHZpcnR1YWwgYm9v
bCBoYXNWYWxpZEF0dHJpYnV0ZU5hbWUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsMTQgKzMxLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5s
aW5lIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxp
bmUgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6
IFNWR0FuaW1hdGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV90eXBlKFNWR1Ry
YW5zZm9ybTo6U1ZHX1RSQU5TRk9STV9VTktOT1dOKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjphbmltYXRlVHJhbnNmb3JtVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQ+IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1Jl
ZlB0cjxTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudD4gU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMywxMiArMzMsMTIgQEAgY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogCiBjbGFzcyBTVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdBbmltYXRlRWxlbWVudCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgU1ZHVHJhbnNmb3JtOjpTVkdUcmFuc2Zvcm1U
eXBlIHRyYW5zZm9ybVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAogcHJpdmF0ZToK
LSAgICBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKKyAgICBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaGFzVmFsaWRBdHRyaWJ1
dGVUeXBlKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRp
b25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBCRUdJTl9SRUdJ
U1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0FuCiAgICAgUkVHSVNURVJfUEFSRU5UX0FOSU1B
VEVEX1BST1BFUlRJRVMoU1ZHVGVzdHMpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElF
UwogCi1TVkdBbmltYXRpb25FbGVtZW50OjpTVkdBbmltYXRpb25FbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1NWR0FuaW1hdGlvbkVsZW1l
bnQ6OlNWR0FuaW1hdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHU01JTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
CiAgICAgLCBtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZShSZWd1bGFyUHJvcGVydHlWYWx1ZSkKICAg
ICAsIG1fdG9Qcm9wZXJ0eVZhbHVlVHlwZShSZWd1bGFyUHJvcGVydHlWYWx1ZSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTY0LDcgKzE2NCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBT
VkdBbmltYXRpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAg
IFNWR0FuaW1hdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
ICAgICB2b2lkIGNvbXB1dGVDU1NQcm9wZXJ0eVZhbHVlKFNWR0VsZW1lbnQqLCBDU1NQcm9wZXJ0
eUlELCBTdHJpbmcmIHZhbHVlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lUHJvcGVydHlW
YWx1ZVR5cGVzKGNvbnN0IFN0cmluZyYgZnJvbSwgY29uc3QgU3RyaW5nJiB0byk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUwLDcgKzUwLDcgQEAgQkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdD
aQogICAgIFJFR0lTVEVSX1BBUkVOVF9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0dyYXBoaWNzRWxl
bWVudCkKIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBTVkdDaXJj
bGVFbGVtZW50OjpTVkdDaXJjbGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdDaXJjbGVFbGVtZW50OjpTVkdDaXJjbGVF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
ICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fY3go
TGVuZ3RoTW9kZVdpZHRoKQogICAgICwgbV9jeShMZW5ndGhNb2RlSGVpZ2h0KQpAQCAtNjAsNyAr
NjAsNyBAQCBpbmxpbmUgU1ZHQ2lyY2xlRWxlbWVudDo6U1ZHQ2lyY2xlRWxlbWVuCiAgICAgcmVn
aXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdDaXJjbGVFbGVtZW50KCk7CiB9CiAKLVBhc3NS
ZWZQdHI8U1ZHQ2lyY2xlRWxlbWVudD4gU1ZHQ2lyY2xlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZH
Q2lyY2xlRWxlbWVudD4gU1ZHQ2lyY2xlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNWR0NpcmNsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTAg
KzMyLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNWR0NpcmNsZUVsZW1lbnQgRklO
QUwgOiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdDaXJjbGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQ2lyY2xlRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRl
OgotICAgIFNWR0NpcmNsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CisgICAgU1ZHQ2lyY2xlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6Omlz
VmFsaWQoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gdHJ1ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRo
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRo
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
bGlwUGF0aEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIEJFR0lO
X1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHQ2wKICAgICBSRUdJU1RFUl9QQVJFTlRf
QU5JTUFURURfUFJPUEVSVElFUyhTVkdHcmFwaGljc0VsZW1lbnQpCiBFTkRfUkVHSVNURVJfQU5J
TUFURURfUFJPUEVSVElFUwogCi1pbmxpbmUgU1ZHQ2xpcFBhdGhFbGVtZW50OjpTVkdDbGlwUGF0
aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQoraW5saW5lIFNWR0NsaXBQYXRoRWxlbWVudDo6U1ZHQ2xpcFBhdGhFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBo
aWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fY2xpcFBhdGhVbml0cyhTVkdV
bml0VHlwZXM6OlNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpCiB7CkBAIC01Miw3ICs1Miw3
IEBAIGlubGluZSBTVkdDbGlwUGF0aEVsZW1lbnQ6OlNWR0NsaXBQYXRoRWwKICAgICByZWdpc3Rl
ckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0NsaXBQYXRoRWxlbWVudCgpOwogfQogCi1QYXNzUmVm
UHRyPFNWR0NsaXBQYXRoRWxlbWVudD4gU1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxT
VkdDbGlwUGF0aEVsZW1lbnQ+IFNWR0NsaXBQYXRoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFNWR0NsaXBQYXRoRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEy
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNSwxMCArMzUsMTAgQEAgY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgU1ZHQ2xp
cFBhdGhFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0dyYXBoaWNzRWxlbWVudCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdDbGlwUGF0aEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTVkdDbGlwUGF0aEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBTVkdDbGlwUGF0aEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgU1ZHQ2xpcFBhdGhFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBj
b25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CiAgICAgdmlydHVhbCBib29sIG5l
ZWRzUGVuZGluZ1Jlc291cmNlSGFuZGxpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNm
ZXJGdW5jdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MCw3ICs1MCw3IEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMo
U1ZHQ28KICAgICBSRUdJU1RFUl9MT0NBTF9BTklNQVRFRF9QUk9QRVJUWShvZmZzZXQpCiBFTkRf
UkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCi1TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0
aW9uRWxlbWVudDo6U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorU1ZHQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbkVsZW1lbnQ6OlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6
IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3R5cGUoRkVDT01QT05FTlRU
UkFOU0ZFUl9UWVBFX0lERU5USVRZKQogICAgICwgbV9zbG9wZSgxKQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVt
ZW50LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3
IEBAIHB1YmxpYzoKICAgICBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uIHRyYW5zZmVyRnVuY3Rp
b24oKSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rp
b25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQ3Vyc29yRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBA
QCBCRUdJTl9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0N1CiAgICAgUkVHSVNURVJf
UEFSRU5UX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHVGVzdHMpCiBFTkRfUkVHSVNURVJfQU5JTUFU
RURfUFJPUEVSVElFUwogCi1pbmxpbmUgU1ZHQ3Vyc29yRWxlbWVudDo6U1ZHQ3Vyc29yRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxp
bmUgU1ZHQ3Vyc29yRWxlbWVudDo6U1ZHQ3Vyc29yRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KQogICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKICAgICAsIG1feShMZW5ndGhN
b2RlSGVpZ2h0KQpAQCAtNTQsNyArNTQsNyBAQCBpbmxpbmUgU1ZHQ3Vyc29yRWxlbWVudDo6U1ZH
Q3Vyc29yRWxlbWVuCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdDdXJzb3JF
bGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHQ3Vyc29yRWxlbWVudD4gU1ZHQ3Vyc29yRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKK1Bhc3NSZWZQdHI8U1ZHQ3Vyc29yRWxlbWVudD4gU1ZHQ3Vyc29yRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsK
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0N1cnNvckVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAkocmV2aXNp
b24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBTVkdDdXJzb3JFbGVtZW50IEZJTkFM
IDogcHVibGljIFNWCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVibGljIFNWR1VSSVJlZmVyZW5jZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U1ZHQ3Vyc29yRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0N1cnNvckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgflNWR0N1cnNvckVsZW1l
bnQoKTsKIApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVSZWZlcmVu
Y2VkRWxlbWVudChTVkdFbGVtZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgU1ZHQ3Vyc29yRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdDdXJzb3JFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIGlz
VmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYs
MTQgKzM2LDE0IEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRGUKICAg
ICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJPUEVSVElFUyhTVkdHcmFwaGljc0VsZW1lbnQp
CiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCi1pbmxpbmUgU1ZHRGVmc0VsZW1l
bnQ6OlNWR0RlZnNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKK2lubGluZSBTVkdEZWZzRWxlbWVudDo6U1ZHRGVmc0VsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3Jh
cGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjpkZWZzVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JT
VkdEZWZzRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR0RlZnNFbGVtZW50PiBTVkdEZWZz
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHRGVmc0VsZW1lbnQ+IFNWR0RlZnNFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewog
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRGVmc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCShyZXZpc2lvbiAxNTU4
MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzEsMTAgKzMxLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNWR0RlZnNF
bGVtZW50IEZJTkFMIDogcHVibGljIFNWR0dyYXBoaWNzRWxlbWVudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0RlZnNFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRGVm
c0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJp
dmF0ZToKLSAgICBTVkdEZWZzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKKyAgICBTVkdEZWZzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdEZXNjRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0Rlc2NFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0Rlc2NFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTMgKzI1LDEz
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIFNWR0Rlc2NFbGVtZW50OjpTVkdE
ZXNjRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCitpbmxpbmUgU1ZHRGVzY0VsZW1lbnQ6OlNWR0Rlc2NFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmRlc2NU
YWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdEZXNjRWxlbWVudD4gU1ZHRGVzY0VsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQ
YXNzUmVmUHRyPFNWR0Rlc2NFbGVtZW50PiBTVkdEZXNjRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNWR0Rlc2NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0Rlc2NFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEy
ICsyOCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0Rlc2NFbGVtZW50IEZJ
TkFMIDogcHVibGljIFNWR0VsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNWR0Rlc2NFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRGVzY0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0
OwogCiBwcml2YXRlOgotICAgIFNWR0Rlc2NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOworICAgIFNWR0Rlc2NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVy
U3R5bGUmKSB7IHJldHVybiBmYWxzZTsgfQogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUyLDggKzE1Miw4IEBAIHN0YXRpYyBpbmxpbmUgQXR0
cmlidXRlVG9Qcm9wZXJ0eVR5cGVNYXAKICAgICByZXR1cm4gc19jc3NQcm9wZXJ0eU1hcDsKIH0K
IAotU1ZHRWxlbWVudDo6U1ZHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBTdHlsZWRFbGVtZW50KHRhZ05hbWUsICpkb2N1bWVu
dCwgQ3JlYXRlU1ZHRWxlbWVudCkKK1NWR0VsZW1lbnQ6OlNWR0VsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogU3R5bGVkRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCwgQ3JlYXRlU1ZHRWxlbWVudCkKIHsKICAgICByZWdpc3RlckFu
aW1hdGVkUHJvcGVydGllc0ZvclNWR0VsZW1lbnQoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Vs
ZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDcgKzEzOSw3IEBAIHB1YmxpYzoKICNlbmRpZgog
CiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKKyAgICBTVkdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
ICAgIHZpcnR1YWwgflNWR0VsZW1lbnQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RWxsaXBzZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGxpcHNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAg
QkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdFbAogICAgIFJFR0lTVEVSX1BB
UkVOVF9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0dyYXBoaWNzRWxlbWVudCkKIEVORF9SRUdJU1RF
Ul9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBTVkdFbGxpcHNlRWxlbWVudDo6U1ZHRWxs
aXBzZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQoraW5saW5lIFNWR0VsbGlwc2VFbGVtZW50OjpTVkdFbGxpcHNlRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFw
aGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX2N4KExlbmd0aE1vZGVXaWR0
aCkKICAgICAsIG1fY3koTGVuZ3RoTW9kZUhlaWdodCkKQEAgLTYxLDcgKzYxLDcgQEAgaW5saW5l
IFNWR0VsbGlwc2VFbGVtZW50OjpTVkdFbGxpcHNlRWxlbQogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQ
cm9wZXJ0aWVzRm9yU1ZHRWxsaXBzZUVsZW1lbnQoKTsKIH0gICAgCiAKLVBhc3NSZWZQdHI8U1ZH
RWxsaXBzZUVsZW1lbnQ+IFNWR0VsbGlwc2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxTVkdFbGxpcHNl
RWxlbWVudD4gU1ZHRWxsaXBzZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
VkdFbGxpcHNlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMCAr
MzIsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1ZHRWxsaXBzZUVsZW1lbnQgRklO
QUwgOiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRWxsaXBzZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdFbGxpcHNl
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2
YXRlOgotICAgIFNWR0VsbGlwc2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOworICAgIFNWR0VsbGlwc2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZH
VGVzdHM6OmlzVmFsaWQoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQmxlbmRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVCbGVuZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBA
IEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRkUKICAgICBSRUdJU1RFUl9Q
QVJFTlRfQU5JTUFURURfUFJPUEVSVElFUyhTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCi1pbmxpbmUgU1ZHRkVC
bGVuZEVsZW1lbnQ6OlNWR0ZFQmxlbmRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdGRUJsZW5kRWxlbWVudDo6U1ZHRkVC
bGVuZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogICAgIDogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKHRhZ05hbWUs
IGRvY3VtZW50KQogICAgICwgbV9tb2RlKEZFQkxFTkRfTU9ERV9OT1JNQUwpCiB7CkBAIC01MSw3
ICs1MSw3IEBAIGlubGluZSBTVkdGRUJsZW5kRWxlbWVudDo6U1ZHRkVCbGVuZEVsZW0KICAgICBy
ZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ZFQmxlbmRFbGVtZW50KCk7CiB9CiAKLVBh
c3NSZWZQdHI8U1ZHRkVCbGVuZEVsZW1lbnQ+IFNWR0ZFQmxlbmRFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0
cjxTVkdGRUJsZW5kRWxlbWVudD4gU1ZHRkVCbGVuZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTVkdGRUJsZW5kRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC03MSwxMCArNzEsMTAgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPEJsZW5kTW9kZVR5
cGU+IAogCiBjbGFzcyBTVkdGRUJsZW5kRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR0ZFQmxlbmRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVCbGVuZEVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBTVkdGRUJs
ZW5kRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdGRUJs
ZW5kRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wg
aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJp
eEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9y
TWF0cml4RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQz
LDcgQEAgQkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdGRQogICAgIFJFR0lT
VEVSX1BBUkVOVF9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcykKIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBT
VkdGRUNvbG9yTWF0cml4RWxlbWVudDo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFNWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50OjpTVkdGRUNvbG9yTWF0cml4RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXModGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3R5cGUoRkVD
T0xPUk1BVFJJWF9UWVBFX01BVFJJWCkKIHsKQEAgLTUxLDcgKzUxLDcgQEAgaW5saW5lIFNWR0ZF
Q29sb3JNYXRyaXhFbGVtZW50OjpTVkdGRUNvbAogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0
aWVzRm9yU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRUNv
bG9yTWF0cml4RWxlbWVudD4gU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPFNW
R0ZFQ29sb3JNYXRyaXhFbGVtZW50PiBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDEwICs2OCwxMCBAQCBzdHJ1
Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Q29sb3JNYXRyaXhUeXBlCiAKIGNsYXNzIFNWR0ZFQ29sb3JN
YXRyaXhFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVDb2xvck1hdHJp
eEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTVkdGRUNvbG9yTWF0cml4RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIFNWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAg
Ym9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmly
dHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBv
bmVudFRyYW5zZmVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDMsMTQgKzQzLDE0IEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BS
T1BFUlRJRVMoU1ZHRkUKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJPUEVSVElFUyhT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMpCiBFTkRfUkVHSVNURVJfQU5JTUFU
RURfUFJPUEVSVElFUwogCi1pbmxpbmUgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OlNW
R0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVu
dDo6U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzKHRhZ05hbWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjpmZUNvbXBvbmVudFRyYW5zZmVyVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRl
ZFByb3BlcnRpZXNGb3JTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCgpOwogfQogCi1QYXNz
UmVmUHRyPFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50PiBTVkdGRUNvbXBvbmVudFRyYW5z
ZmVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ+IFNW
R0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxl
bWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21w
b25lbnRUcmFuc2ZlckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTAgKzI5LDEwIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1l
bnQgRklOQUwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgU1ZHRkVDb21wb25l
bnRUcmFuc2ZlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAg
U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKICAgICAvLyBGSVhNRTogc3ZnQXR0cmlidXRlQ2hhbmdlZCBtaXNzaW5nLgogICAg
IGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAJKHJldmlzaW9u
IDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVE
X1BST1BFUlRJRVMoU1ZHRkUKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJPUEVSVElF
UyhTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMpCiBFTkRfUkVHSVNURVJfQU5J
TUFURURfUFJPUEVSVElFUwogCi1pbmxpbmUgU1ZHRkVDb21wb3NpdGVFbGVtZW50OjpTVkdGRUNv
bXBvc2l0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
Y3VtZW50KQoraW5saW5lIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6U1ZHRkVDb21wb3NpdGVFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICA6IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyh0YWdOYW1lLCBkb2N1bWVu
dCkKICAgICAsIG1fc3ZnT3BlcmF0b3IoRkVDT01QT1NJVEVfT1BFUkFUT1JfT1ZFUikKIHsKQEAg
LTU5LDcgKzU5LDcgQEAgaW5saW5lIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6U1ZHRkVDb21wbwog
ICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRkVDb21wb3NpdGVFbGVtZW50KCk7
CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRkVDb21wb3NpdGVFbGVtZW50PiBTVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQpCitQYXNzUmVmUHRyPFNWR0ZFQ29tcG9zaXRlRWxlbWVudD4gU1ZHRkVDb21wb3NpdGVF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVDb21wb3NpdGVFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVD
b21wb3NpdGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29tcG9zaXRlRWxlbWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDEwICs3Niwx
MCBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Q29tcG9zaXRlT3BlcmF0CiAKIGNsYXNzIFNW
R0ZFQ29tcG9zaXRlRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXMgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFQ29t
cG9zaXRlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFQ29tcG9zaXRlRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIFNWR0ZFQ29tcG9z
aXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdGRUNv
bXBvc2l0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBi
b29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0
dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21p
Y1N0cmluZyYpIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02NCw3ICs2NCw3IEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZH
RkUKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJPUEVSVElFUyhTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElF
UwogCi1pbmxpbmUgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OlNWR0ZFQ29udm9sdmVNYXRy
aXhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK2lubGluZSBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6U1ZHRkVDb252b2x2ZU1hdHJp
eEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIDogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKHRhZ05hbWUsIGRv
Y3VtZW50KQogICAgICwgbV9lZGdlTW9kZShFREdFTU9ERV9EVVBMSUNBVEUpCiB7CkBAIC03Miw3
ICs3Miw3IEBAIGlubGluZSBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6U1ZHRkUKICAgICBy
ZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50KCk7
CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ+IFNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudD4g
U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgJKHJl
dmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NiwxMyArNjYsMTMgQEAgc3RydWN0IFNWR1By
b3BlcnR5VHJhaXRzPEVkZ2VNb2RlVHlwZT4gewogCiBjbGFzcyBTVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgc2V0T3JkZXIoZmxvYXQgb3Jk
ZXJYLCBmbG9hdCBvcmRlclkpOwogICAgIHZvaWQgc2V0S2VybmVsVW5pdExlbmd0aChmbG9hdCBr
ZXJuZWxVbml0TGVuZ3RoWCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFkpOwogCiBwcml2YXRlOgot
ICAgIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworICAgIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBCRUdJTl9SRUdJ
U1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0ZFCiAgICAgUkVHSVNURVJfUEFSRU5UX0FOSU1B
VEVEX1BST1BFUlRJRVMoU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKQogRU5E
X1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAotaW5saW5lIFNWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudDo6U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQ6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXModGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX2RpZmZ1c2VD
b25zdGFudCgxKQogICAgICwgbV9zdXJmYWNlU2NhbGUoMSkKQEAgLTYwLDcgKzYwLDcgQEAgaW5s
aW5lIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6U1ZHRgogICAgIHJlZ2lzdGVyQW5pbWF0
ZWRQcm9wZXJ0aWVzRm9yU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50KCk7CiB9CiAKLVBhc3NS
ZWZQdHI8U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50PiBTVkdGRURpZmZ1c2VMaWdodGluZ0Vs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQpCitQYXNzUmVmUHRyPFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCShyZXZpc2lv
biAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDExICszMywxMSBAQCBjbGFzcyBTVkdDb2xvcjsK
IAogY2xhc3MgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAgICAgdm9pZCBsaWdodEVsZW1lbnRBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFNWR0ZFTGlnaHRF
bGVtZW50KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCiBwcml2YXRlOgotICAgIFNWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAg
ICBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1
NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1B
VEVEX1BST1BFUlRJRVMoU1ZHRkUKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJPUEVS
VElFUyhTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMpCiBFTkRfUkVHSVNURVJf
QU5JTUFURURfUFJPUEVSVElFUwogCi1pbmxpbmUgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50
OjpTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVu
dDo6U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcyh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1feENoYW5uZWxTZWxlY3RvcihD
SEFOTkVMX0EpCiAgICAgLCBtX3lDaGFubmVsU2VsZWN0b3IoQ0hBTk5FTF9BKQpAQCAtNTUsNyAr
NTUsNyBAQCBpbmxpbmUgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjpTVkdGCiAgICAgcmVn
aXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQoKTsK
IH0KIAotUGFzc1JlZlB0cjxTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ+IFNWR0ZFRGlzcGxh
Y2VtZW50TWFwRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50
PiBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50
LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNl
bWVudE1hcEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsMTIgKzY3LDEyIEBAIHN0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxDaGFubmVsU2VsZWN0b3IKIAogY2xhc3MgU1ZHRkVEaXNwbGFj
ZW1lbnRNYXBFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVEaXNwbGFj
ZW1lbnRNYXBFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBzdGF0aWMgQ2hhbm5l
bFNlbGVjdG9yVHlwZSBzdHJpbmdUb0NoYW5uZWwoY29uc3QgU3RyaW5nJik7CiAgICAgCiBwcml2
YXRlOgotICAgIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCopOworICAgIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogICAgIAogICAgIGJvb2wg
aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGln
aHRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0
YW50TGlnaHRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEz
ICsyNywxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBTVkdGRURpc3RhbnRM
aWdodEVsZW1lbnQ6OlNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgU1ZHRkVEaXN0YW50TGlnaHRF
bGVtZW50OjpTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRkVMaWdodEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlRGlzdGFu
dExpZ2h0VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50PiBT
VkdGRURpc3RhbnRMaWdodEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPFNWR0ZFRGlzdGFudExpZ2h0RWxl
bWVudD4gU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oCShyZXZp
c2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEwICsyNywxMCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdG
RUxpZ2h0RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVEaXN0
YW50TGlnaHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgU1ZHRkVE
aXN0YW50TGlnaHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAg
IFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4gbGlnaHRTb3VyY2UoKSBj
b25zdDsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0Vs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVE
cm9wU2hhZG93RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgQkVH
SU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdGRQogICAgIFJFR0lTVEVSX1BBUkVO
VF9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cykKIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBTVkdGRURyb3BT
aGFkb3dFbGVtZW50OjpTVkdGRURyb3BTaGFkb3dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdGRURyb3BTaGFkb3dFbGVt
ZW50OjpTVkdGRURyb3BTaGFkb3dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcyh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fZHgoMikKICAgICAsIG1fZHkoMikK
QEAgLTU5LDcgKzU5LDcgQEAgaW5saW5lIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OlNWR0ZFRHJv
cAogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ+IFNWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ+IFNWR0ZFRHJv
cFNoYWRvd0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGRURyb3BTaGFk
b3dFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDEyICsyOSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBTVkdGRURy
b3BTaGFkb3dFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVEcm9wU2hh
ZG93RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKICAgICB2b2lkIHNldFN0ZERldmlhdGlv
bihmbG9hdCBzdGREZXZpYXRpb25YLCBmbG9hdCBzdGREZXZpYXRpb25ZKTsKICAgICAKIHByaXZh
dGU6Ci0gICAgU1ZHRkVEcm9wU2hhZG93RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKKyAgICBTVkdGRURyb3BTaGFkb3dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogICAgIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDEzICszMCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBTVkdG
RUZsb29kRWxlbWVudDo6U1ZHRkVGbG9vZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFNWR0ZFRmxvb2RFbGVtZW50OjpTVkdG
RUZsb29kRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiAgICAgOiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXModGFnTmFt
ZSwgZG9jdW1lbnQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlRmxvb2RU
YWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRUZsb29kRWxlbWVudD4gU1ZHRkVGbG9vZEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCitQYXNzUmVmUHRyPFNWR0ZFRmxvb2RFbGVtZW50PiBTVkdGRUZsb29kRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsK
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZFRmxvb2RFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaAkocmV2
aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIFNWR0ZFRmxvb2RFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZH
RkVGbG9vZEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRUZsb29kRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIFNWR0ZFRmxvb2RFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR0ZFRmxvb2RFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBib29s
IHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqLCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVp
bGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciopOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRnVuY0FFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVGdW5jQUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMyArMjYs
MTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1pbmxpbmUgU1ZHRkVGdW5jQUVsZW1lbnQ6
OlNWR0ZFRnVuY0FFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKK2lubGluZSBTVkdGRUZ1bmNBRWxlbWVudDo6U1ZHRkVGdW5jQUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDog
U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7
CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlRnVuY0FUYWcpKTsKIH0KIAotUGFz
c1JlZlB0cjxTVkdGRUZ1bmNBRWxlbWVudD4gU1ZHRkVGdW5jQUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRy
PFNWR0ZFRnVuY0FFbGVtZW50PiBTVkdGRUZ1bmNBRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFNWR0ZFRnVuY0FFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDEwICsyOCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0ZFRnVu
Y0FFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVt
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRUZ1bmNBRWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNWR0ZFRnVuY0FFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgU1ZHRkVGdW5jQUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgU1ZHRkVGdW5jQUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCiBFTEVNRU5UX1RZUEVfQ0FTVFMoU1ZHRkVGdW5j
QUVsZW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDEzICsyNiwxMyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWlubGluZSBTVkdGRUZ1bmNCRWxlbWVudDo6U1ZHRkVGdW5jQkVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFNW
R0ZFRnVuY0JFbGVtZW50OjpTVkdGRUZ1bmNCRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFt
ZShTVkdOYW1lczo6ZmVGdW5jQlRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZFRnVuY0JFbGVt
ZW50PiBTVkdGRUZ1bmNCRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHRkVGdW5jQkVsZW1lbnQ+IFNW
R0ZFRnVuY0JFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRkVGdW5jQkVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUZ1bmNCRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUZ1bmNCRWxlbWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVGdW5jQkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTAgKzI4LDEwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHRkVGdW5jQkVsZW1lbnQgRklOQUwgOiBwdWJs
aWMgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNWR0ZFRnVuY0JFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVGdW5jQkVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToK
LSAgICBTVkdGRUZ1bmNCRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
KyAgICBTVkdGRUZ1bmNCRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
IH07CiAKIEVMRU1FTlRfVFlQRV9DQVNUUyhTVkdGRUZ1bmNCRWxlbWVudCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjYsMTMgKzI2LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIFNWR0ZF
RnVuY0dFbGVtZW50OjpTVkdGRUZ1bmNHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgU1ZHRkVGdW5jR0VsZW1lbnQ6OlNWR0ZF
RnVuY0dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKICAgICA6IFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpmZUZ1bmNHVGFn
KSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRkVGdW5jR0VsZW1lbnQ+IFNWR0ZFRnVuY0dFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQorUGFzc1JlZlB0cjxTVkdGRUZ1bmNHRWxlbWVudD4gU1ZHRkVGdW5jR0VsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGRUZ1bmNHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmgJKHJldmlz
aW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCwxMCArMjgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTVkdGRUZ1bmNHRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVG
dW5jR0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRUZ1bmNHRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIFNWR0ZFRnVuY0dFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR0ZFRnVuY0dFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAogRUxFTUVOVF9UWVBFX0NB
U1RTKFNWR0ZFRnVuY0dFbGVtZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVu
Y1JFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5j
UkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVGdW5jUkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMyArMjYsMTMgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1pbmxpbmUgU1ZHRkVGdW5jUkVsZW1lbnQ6OlNWR0ZFRnVu
Y1JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK2lubGluZSBTVkdGRUZ1bmNSRWxlbWVudDo6U1ZHRkVGdW5jUkVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7CiAgICAgQVNT
RVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlRnVuY1JUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxT
VkdGRUZ1bmNSRWxlbWVudD4gU1ZHRkVGdW5jUkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPFNWR0ZFRnVu
Y1JFbGVtZW50PiBTVkdGRUZ1bmNSRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFNWR0ZFRnVuY1JFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEw
ICsyOCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0ZFRnVuY1JFbGVtZW50
IEZJTkFMIDogcHVibGljIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRUZ1bmNSRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNW
R0ZFRnVuY1JFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAKIHByaXZhdGU6Ci0gICAgU1ZHRkVGdW5jUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Kik7CisgICAgU1ZHRkVGdW5jUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiB9OwogCiBFTEVNRU5UX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jUkVsZW1lbnQp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50
LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3Np
YW5CbHVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgQkVHSU5f
UkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdGRQogICAgIFJFR0lTVEVSX1BBUkVOVF9B
TklNQVRFRF9QUk9QRVJUSUVTKFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcykK
IEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBTVkdGRUdhdXNzaWFu
Qmx1ckVsZW1lbnQ6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgU1ZHRkVHYXVzc2lhbkJsdXJF
bGVtZW50OjpTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzKHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV9lZGdlTW9kZShFREdFTU9E
RV9OT05FKQogewpAQCAtNTQsNyArNTQsNyBAQCBpbmxpbmUgU1ZHRkVHYXVzc2lhbkJsdXJFbGVt
ZW50OjpTVkdGRUdhCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGRUdhdXNz
aWFuQmx1ckVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQ+IFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50PiBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgJ
KHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTIgKzMyLDEyIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50IEZJTkFMIDogcHVibGlj
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAKICAgICB2b2lkIHNldFN0ZERldmlhdGlvbihmbG9hdCBzdGREZXZpYXRpb25YLCBmbG9hdCBz
dGREZXZpYXRpb25ZKTsKIAogcHJpdmF0ZToKLSAgICBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgU1ZHRkVHYXVzc2lhbkJsdXJF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgYm9vbCBpc1N1
cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lk
IHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
KSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNw
cAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsMTQgKzUyLDE0IEBAIEJFR0lOX1JFR0lTVEVS
X0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRkUKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURf
UFJPUEVSVElFUyhTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMpCiBFTkRfUkVH
SVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCi1pbmxpbmUgU1ZHRkVJbWFnZUVsZW1lbnQ6OlNW
R0ZFSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKK2lubGluZSBTVkdGRUltYWdlRWxlbWVudDo6U1ZHRkVJbWFnZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKHRhZ05hbWUsIGRvY3VtZW50KQogewog
ICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpmZUltYWdlVGFnKSk7CiAgICAgcmVnaXN0
ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGRUltYWdlRWxlbWVudCgpOwogfQogCi1QYXNzUmVm
UHRyPFNWR0ZFSW1hZ2VFbGVtZW50PiBTVkdGRUltYWdlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZH
RkVJbWFnZUVsZW1lbnQ+IFNWR0ZFSW1hZ2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU1ZHRkVJbWFnZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzksMTIgKzM5LDEyIEBAIGNsYXNzIFNWR0ZFSW1hZ2VFbGVtZW50IEZJTkFMIDogcHVibGljIFMK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBDYWNo
ZWRJbWFnZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVJbWFn
ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTVkdGRUltYWdlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCB+U1ZHRkVJbWFnZUVsZW1lbnQoKTsK
IAogcHJpdmF0ZToKLSAgICBTVkdGRUltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKKyAgICBTVkdGRUltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYy
LDcgKzYyLDcgQEAgQkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdGRQogICAg
IFJFR0lTVEVSX0xPQ0FMX0FOSU1BVEVEX1BST1BFUlRZKGxpbWl0aW5nQ29uZUFuZ2xlKQogRU5E
X1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAotU1ZHRkVMaWdodEVsZW1lbnQ6OlNWR0ZF
TGlnaHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKK1NWR0ZFTGlnaHRFbGVtZW50OjpTVkdGRUxpZ2h0RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KQogICAgICwgbV9zcGVjdWxhckV4cG9uZW50KDEpCiB7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPExpZ2h0U291cmNl
PiBmaW5kTGlnaHRTb3VyY2UoY29uc3QgU1ZHRWxlbWVudCopOwogCiBwcm90ZWN0ZWQ6Ci0gICAg
U1ZHRkVMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAg
U1ZHRkVMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIE9WRVJS
SURFIHsgcmV0dXJuIGZhbHNlOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1l
cmdlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVy
Z2VFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTWVyZ2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTMgKzMxLDEzIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIFNWR0ZFTWVyZ2VFbGVtZW50OjpTVkdGRU1l
cmdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCitpbmxpbmUgU1ZHRkVNZXJnZUVsZW1lbnQ6OlNWR0ZFTWVyZ2VFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBB
U1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVNZXJnZVRhZykpOwogfQogCi1QYXNzUmVmUHRy
PFNWR0ZFTWVyZ2VFbGVtZW50PiBTVkdGRU1lcmdlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHRkVN
ZXJnZUVsZW1lbnQ+IFNWR0ZFTWVyZ2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU1ZHRkVNZXJnZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjks
MTAgKzI5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHRkVNZXJnZUVsZW1l
bnQgRklOQUwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRU1lcmdlRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNWR0ZFTWVyZ2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKIHByaXZhdGU6Ci0gICAgU1ZHRkVNZXJnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CisgICAgU1ZHRkVNZXJnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RmlsdGVyRWZmZWN0PiBi
dWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyKik7CiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MCwxNCArNDAsMTQgQEAgQkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElF
UyhTVkdGRQogICAgIFJFR0lTVEVSX0xPQ0FMX0FOSU1BVEVEX1BST1BFUlRZKGluMSkKIEVORF9S
RUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBTVkdGRU1lcmdlTm9kZUVsZW1l
bnQ6OlNWR0ZFTWVyZ2VOb2RlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgU1ZHRkVNZXJnZU5vZGVFbGVtZW50OjpTVkdGRU1l
cmdlTm9kZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NF
UlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVNZXJnZU5vZGVUYWcpKTsKICAgICByZWdpc3RlckFu
aW1hdGVkUHJvcGVydGllc0ZvclNWR0ZFTWVyZ2VOb2RlRWxlbWVudCgpOwogfQogCi1QYXNzUmVm
UHRyPFNWR0ZFTWVyZ2VOb2RlRWxlbWVudD4gU1ZHRkVNZXJnZU5vZGVFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1Jl
ZlB0cjxTVkdGRU1lcmdlTm9kZUVsZW1lbnQ+IFNWR0ZFTWVyZ2VOb2RlRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZFTWVyZ2VOb2RlRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1l
bnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VO
b2RlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMCArMjksMTAgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBTVkdGRU1lcmdlTm9kZUVsZW1lbnQgRklOQUwgOiBwdWJsaWMg
U1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVNZXJnZU5v
ZGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVNZXJnZU5vZGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgU1ZHRkVNZXJnZU5vZGVF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR0ZFTWVyZ2VO
b2RlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wg
aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhv
bG9neUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcg
QEAgQkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdGRQogICAgIFJFR0lTVEVS
X1BBUkVOVF9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcykKIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBTVkdG
RU1vcnBob2xvZ3lFbGVtZW50OjpTVkdGRU1vcnBob2xvZ3lFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdGRU1vcnBob2xv
Z3lFbGVtZW50OjpTVkdGRU1vcnBob2xvZ3lFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcyh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fc3ZnT3BlcmF0b3IoRkVN
T1JQSE9MT0dZX09QRVJBVE9SX0VST0RFKQogewpAQCAtNTMsNyArNTMsNyBAQCBpbmxpbmUgU1ZH
RkVNb3JwaG9sb2d5RWxlbWVudDo6U1ZHRkVNb3JwCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3Bl
cnRpZXNGb3JTVkdGRU1vcnBob2xvZ3lFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRkVN
b3JwaG9sb2d5RWxlbWVudD4gU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZH
RkVNb3JwaG9sb2d5RWxlbWVudD4gU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQu
aAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTksMTIgKzU5LDEyIEBAIHN0cnVjdCBTVkdQ
cm9wZXJ0eVRyYWl0czxNb3JwaG9sb2d5T3BlcmEKIAogY2xhc3MgU1ZHRkVNb3JwaG9sb2d5RWxl
bWVudCBGSU5BTCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTVkdGRU1vcnBob2xvZ3lFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiAKICAgICB2b2lkIHNldFJhZGl1cyhmbG9hdCByYWRpdXNYLCBmbG9h
dCByYWRpdXNZKTsKIAogcHJpdmF0ZToKLSAgICBTVkdGRU1vcnBob2xvZ3lFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBib29sIGlzU3VwcG9ydGVk
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJS
SURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MywxNCArNDMsMTQgQEAgQkVHSU5fUkVHSVNURVJfQU5J
TUFURURfUFJPUEVSVElFUyhTVkdGRQogICAgIFJFR0lTVEVSX1BBUkVOVF9BTklNQVRFRF9QUk9Q
RVJUSUVTKFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcykKIEVORF9SRUdJU1RF
Ul9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBTVkdGRU9mZnNldEVsZW1lbnQ6OlNWR0ZF
T2Zmc2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQpCitpbmxpbmUgU1ZHRkVPZmZzZXRFbGVtZW50OjpTVkdGRU9mZnNldEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKHRhZ05hbWUsIGRvY3VtZW50KQogewog
ICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpmZU9mZnNldFRhZykpOwogICAgIHJlZ2lz
dGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRkVPZmZzZXRFbGVtZW50KCk7CiB9CiAKLVBhc3NS
ZWZQdHI8U1ZHRkVPZmZzZXRFbGVtZW50PiBTVkdGRU9mZnNldEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRy
PFNWR0ZFT2Zmc2V0RWxlbWVudD4gU1ZHRkVPZmZzZXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU1ZHRkVPZmZzZXRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oCShyZXZpc2lvbiAxNTU4
MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDEwICszMCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNW
R0ZFT2Zmc2V0RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXMgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFT2Zmc2V0
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNWR0ZFT2Zmc2V0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIFNWR0ZFT2Zmc2V0RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdGRU9mZnNldEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBib29sIGlzU3VwcG9ydGVk
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJS
SURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50
LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRM
aWdodEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMyArMjcsMTMgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1pbmxpbmUgU1ZHRkVQb2ludExpZ2h0RWxlbWVudDo6U1ZHRkVQ
b2ludExpZ2h0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQpCitpbmxpbmUgU1ZHRkVQb2ludExpZ2h0RWxlbWVudDo6U1ZHRkVQb2ludExpZ2h0
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBTVkdGRUxpZ2h0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NF
UlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVQb2ludExpZ2h0VGFnKSk7CiB9CiAKLVBhc3NSZWZQ
dHI8U1ZHRkVQb2ludExpZ2h0RWxlbWVudD4gU1ZHRkVQb2ludExpZ2h0RWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NS
ZWZQdHI8U1ZHRkVQb2ludExpZ2h0RWxlbWVudD4gU1ZHRkVQb2ludExpZ2h0RWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsK
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdo
dEVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
UG9pbnRMaWdodEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTAgKzI3LDEwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHRkVQb2ludExpZ2h0RWxlbWVudCBGSU5BTCA6
IHB1YmxpYyBTVkdGRUxpZ2h0RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8U1ZHRkVQb2ludExpZ2h0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKLSAg
ICBTVkdGRVBvaW50TGlnaHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworICAgIFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNl
KCkgY29uc3Q7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01NCw3ICs1NCw3IEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZH
RkUKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJPUEVSVElFUyhTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElF
UwogCi1pbmxpbmUgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6U1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQpCitpbmxpbmUgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6U1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXModGFn
TmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3NwZWN1bGFyQ29uc3RhbnQoMSkKICAgICAsIG1fc3Bl
Y3VsYXJFeHBvbmVudCgxKQpAQCAtNjQsNyArNjQsNyBAQCBpbmxpbmUgU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudDo6U1ZHCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQ
dHI8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzIsMTEgKzMyLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAg
ICAgdm9pZCBsaWdodEVsZW1lbnRBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFNWR0ZFTGlnaHRFbGVt
ZW50KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCiBwcml2YXRlOgotICAgIFNWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAg
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKICAgICAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNywxMyArMjcsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1pbmxpbmUg
U1ZHRkVTcG90TGlnaHRFbGVtZW50OjpTVkdGRVNwb3RMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFNWR0ZFU3BvdExp
Z2h0RWxlbWVudDo6U1ZHRkVTcG90TGlnaHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0ZFTGlnaHRFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpmZVNwb3RM
aWdodFRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0ZFU3BvdExpZ2h0RWxlbWVudD4gU1ZHRkVT
cG90TGlnaHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxTVkdGRVNwb3RMaWdodEVsZW1lbnQ+IFNWR0ZF
U3BvdExpZ2h0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZFU3BvdExp
Z2h0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NywxMCArMjcsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdGRVNwb3RMaWdo
dEVsZW1lbnQgRklOQUwgOiBwdWJsaWMgU1ZHRkVMaWdodEVsZW1lbnQgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFU3BvdExpZ2h0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFU3Bv
dExpZ2h0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
CiBwcml2YXRlOgotICAgIFNWR0ZFU3BvdExpZ2h0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKKyAgICBTVkdGRVNwb3RMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+
IGxpZ2h0U291cmNlKCkgY29uc3Q7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
VGlsZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRp
bGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFVGlsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxNCArNDAsMTQgQEAgQkVH
SU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdGRQogICAgIFJFR0lTVEVSX1BBUkVO
VF9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cykKIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBTVkdGRVRpbGVF
bGVtZW50OjpTVkdGRVRpbGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdGRVRpbGVFbGVtZW50OjpTVkdGRVRpbGVFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICA6IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyh0YWdOYW1lLCBkb2N1bWVu
dCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVUaWxlVGFnKSk7CiAgICAg
cmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGRVRpbGVFbGVtZW50KCk7CiB9CiAKLVBh
c3NSZWZQdHI8U1ZHRkVUaWxlRWxlbWVudD4gU1ZHRkVUaWxlRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8
U1ZHRkVUaWxlRWxlbWVudD4gU1ZHRkVUaWxlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNWR0ZFVGlsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjks
MTAgKzI5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHRkVUaWxlRWxlbWVu
dCBGSU5BTCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFVGlsZUVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
VkdGRVRpbGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAKIHByaXZhdGU6Ci0gICAgU1ZHRkVUaWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKKyAgICBTVkdGRVRpbGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBCRUdJTl9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJU
SUVTKFNWR0ZFCiAgICAgUkVHSVNURVJfUEFSRU5UX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKQogRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BS
T1BFUlRJRVMKIAotaW5saW5lIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OlNWR0ZFVHVyYnVsZW5j
ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQoraW5saW5lIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDog
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKHRhZ05hbWUsIGRvY3VtZW50KQog
ICAgICwgbV9udW1PY3RhdmVzKDEpCiAgICAgLCBtX3N0aXRjaFRpbGVzKFNWR19TVElUQ0hUWVBF
X05PU1RJVENIKQpAQCAtNTgsNyArNTgsNyBAQCBpbmxpbmUgU1ZHRkVUdXJidWxlbmNlRWxlbWVu
dDo6U1ZHRkVUdXJiCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGRVR1cmJ1
bGVuY2VFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRkVUdXJidWxlbmNlRWxlbWVudD4g
U1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHRkVUdXJidWxlbmNlRWxlbWVu
dD4gU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNW
R0ZFVHVyYnVsZW5jZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEy
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTYsMTAgKzk2LDEwIEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxUdXJi
dWxlbmNlVHlwZT4KIAogY2xhc3MgU1ZHRkVUdXJidWxlbmNlRWxlbWVudCBGSU5BTCA6IHB1Ymxp
YyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRVR1cmJ1
bGVuY2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
IHByaXZhdGU6Ci0gICAgU1ZHRkVUdXJidWxlbmNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKKyAgICBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjIsNyArNjIsNyBAQCBCRUdJTl9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0Zp
CiAgICAgUkVHSVNURVJfTE9DQUxfQU5JTUFURURfUFJPUEVSVFkoZXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCkKIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBTVkdG
aWx0ZXJFbGVtZW50OjpTVkdGaWx0ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdGaWx0ZXJFbGVtZW50OjpTVkdGaWx0
ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX2ZpbHRlclVu
aXRzKFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkKICAgICAs
IG1fcHJpbWl0aXZlVW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9O
VVNFKQpAQCAtNzcsNyArNzcsNyBAQCBpbmxpbmUgU1ZHRmlsdGVyRWxlbWVudDo6U1ZHRmlsdGVy
RWxlbWVuCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGaWx0ZXJFbGVtZW50
KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRmlsdGVyRWxlbWVudD4gU1ZHRmlsdGVyRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkK
K1Bhc3NSZWZQdHI8U1ZHRmlsdGVyRWxlbWVudD4gU1ZHRmlsdGVyRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ZpbHRlckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAkocmV2aXNpb24gMTU1
ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtNDAsMTIgKzQwLDEyIEBAIGNsYXNzIFNWR0ZpbHRlckVsZW1lbnQgRklOQUwgOiBw
dWJsaWMgU1YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVVJJUmVm
ZXJlbmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdG
aWx0ZXJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRmlsdGVyRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCBzZXRGaWx0ZXJSZXModW5zaWduZWQg
ZmlsdGVyUmVzWCwgdW5zaWduZWQgZmlsdGVyUmVzWSk7CiAKIHByaXZhdGU6Ci0gICAgU1ZHRmls
dGVyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdGaWx0
ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVh
bCBib29sIG5lZWRzUGVuZGluZ1Jlc291cmNlSGFuZGxpbmcoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgQkVHSU5fUkVHSVNURVJfQU5JTUFU
RURfUFJPUEVSVElFUyhTVkdGaQogICAgIFJFR0lTVEVSX1BBUkVOVF9BTklNQVRFRF9QUk9QRVJU
SUVTKFNWR0VsZW1lbnQpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCi1TVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcyhjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQpCitTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OlNWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyhjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQog
ICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCwgIjAlIikKICAgICAsIG1feShMZW5ndGhNb2RlSGVp
Z2h0LCAiMCUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAkocmV2aXNpb24gMTU1ODEyKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxpZmll
ZE5hbWUmKTsKIAogcHJvdGVjdGVkOgotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcyhjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
KTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9udEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIEJFR0lO
X1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRm8KICAgICBSRUdJU1RFUl9QQVJFTlRf
QU5JTUFURURfUFJPUEVSVElFUyhTVkdFbGVtZW50KQogRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BS
T1BFUlRJRVMKIAotaW5saW5lIFNWR0ZvbnRFbGVtZW50OjpTVkdGb250RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgU1ZHRm9u
dEVsZW1lbnQ6OlNWR0ZvbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpIAog
ICAgICwgbV9taXNzaW5nR2x5cGgoMCkKICAgICAsIG1faXNHbHlwaENhY2hlVmFsaWQoZmFsc2Up
CkBAIC01NCw3ICs1NCw3IEBAIGlubGluZSBTVkdGb250RWxlbWVudDo6U1ZHRm9udEVsZW1lbnQo
Y28KICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ZvbnRFbGVtZW50KCk7CiB9
CiAKLVBhc3NSZWZQdHI8U1ZHRm9udEVsZW1lbnQ+IFNWR0ZvbnRFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0
cjxTVkdGb250RWxlbWVudD4gU1ZHRm9udEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTVkdGb250RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBA
IGNsYXNzIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ7ICAgIAogY2xhc3MgU1ZHRm9udEVsZW1lbnQg
RklOQUwgOiBwdWJsaWMgU1ZHRWxlbWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBw
dWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1ZHRm9udEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGb250RWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRl
R2x5cGhDYWNoZSgpOwogICAgIHZvaWQgY29sbGVjdEdseXBoc0ZvclN0cmluZyhjb25zdCBTdHJp
bmcmLCBWZWN0b3I8U1ZHR2x5cGg+Jik7CkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBT
VkdNaXNzaW5nR2x5cGhFbGVtZW50KiBmaXJzdE1pc3NpbmdHbHlwaEVsZW1lbnQoKSBjb25zdDsK
IAogcHJpdmF0ZToKLSAgICBTVkdGb250RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKKyAgICBTVkdGb250RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJikgeyByZXR1cm4gZmFsc2U7IH0gIAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgU1ZHTmFtZXM7CiAKLWlu
bGluZSBTVkdGb250RmFjZUVsZW1lbnQ6OlNWR0ZvbnRGYWNlRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgU1ZHRm9udEZhY2VF
bGVtZW50OjpTVkdGb250RmFjZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkK
ICAgICAsIG1fZm9udEZhY2VSdWxlKFN0eWxlUnVsZUZvbnRGYWNlOjpjcmVhdGUoTXV0YWJsZVN0
eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShDU1NTdHJpY3RNb2RlKSkpCiAgICAgLCBtX2ZvbnRFbGVt
ZW50KDApCkBAIC01Niw3ICs1Niw3IEBAIGlubGluZSBTVkdGb250RmFjZUVsZW1lbnQ6OlNWR0Zv
bnRGYWNlRWwKICAgICBBU1NFUlQoaGFzVGFnTmFtZShmb250X2ZhY2VUYWcpKTsKIH0KIAotUGFz
c1JlZlB0cjxTVkdGb250RmFjZUVsZW1lbnQ+IFNWR0ZvbnRGYWNlRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQ
dHI8U1ZHRm9udEZhY2VFbGVtZW50PiBTVkdGb250RmFjZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTVkdGb250RmFjZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgJKHJldmlzaW9uIDE1
NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBTdHlsZVJ1bGVGb250RmFjZTsKIAogY2xh
c3MgU1ZHRm9udEZhY2VFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0VsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0Zv
bnRGYWNlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
CiAgICAgdW5zaWduZWQgdW5pdHNQZXJFbSgpIGNvbnN0OwogICAgIGludCB4SGVpZ2h0KCkgY29u
c3Q7CkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICBTdHlsZVJ1bGVGb250RmFjZSogZm9u
dEZhY2VSdWxlKCkgY29uc3QgeyByZXR1cm4gbV9mb250RmFjZVJ1bGUuZ2V0KCk7IH0KIAogcHJp
dmF0ZToKLSAgICBTVkdGb250RmFjZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CisgICAgU1ZHRm9udEZhY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1
NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMyArMjksMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIAogdXNpbmcgbmFtZXNwYWNlIFNWR05hbWVzOwogICAgIAotaW5saW5lIFNWR0ZvbnRGYWNl
Rm9ybWF0RWxlbWVudDo6U1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdGb250RmFjZUZvcm1h
dEVsZW1lbnQ6OlNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKGZvbnRfZmFjZV9mb3JtYXRUYWcpKTsK
IH0KIAotUGFzc1JlZlB0cjxTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQ+IFNWR0ZvbnRGYWNlRm9y
bWF0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50PiBTVkdGb250
RmFjZUZvcm1hdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGb250RmFj
ZUZvcm1hdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsMTAgKzI3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
U1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0VsZW1lbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdGb250RmFjZUZvcm1hdEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERSB7
IHJldHVybiBmYWxzZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFt
ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZU5hbWVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMyArMjcs
MTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAotaW5saW5lIFNWR0ZvbnRGYWNlTmFt
ZUVsZW1lbnQ6OlNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQ6
OlNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsK
ICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6Zm9udF9mYWNlX25hbWVUYWcpKTsKIH0K
IAotUGFzc1JlZlB0cjxTVkdGb250RmFjZU5hbWVFbGVtZW50PiBTVkdGb250RmFjZU5hbWVFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQorUGFzc1JlZlB0cjxTVkdGb250RmFjZU5hbWVFbGVtZW50PiBTVkdGb250RmFjZU5hbWVF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRm9udEZhY2VOYW1lRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlTmFtZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VOYW1lRWxlbWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMiAr
MjksMTIgQEAgY2xhc3MgQ1NTRm9udEZhY2VTcmNWYWx1ZTsKIAogY2xhc3MgU1ZHRm9udEZhY2VO
YW1lRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTVkdGb250RmFjZU5hbWVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRm9udEZhY2VO
YW1lRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAg
IAogICAgIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VTcmNWYWx1ZT4gc3JjVmFsdWUoKSBjb25zdDsK
IAogcHJpdmF0ZToKLSAgICBTVkdGb250RmFjZU5hbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOworICAgIFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMyArMzMsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIAogdXNpbmcgbmFtZXNwYWNlIFNWR05hbWVzOwogICAgIAotaW5saW5lIFNWR0ZvbnRG
YWNlU3JjRWxlbWVudDo6U1ZHRm9udEZhY2VTcmNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdGb250RmFjZVNyY0VsZW1l
bnQ6OlNWR0ZvbnRGYWNlU3JjRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQog
ewogICAgIEFTU0VSVChoYXNUYWdOYW1lKGZvbnRfZmFjZV9zcmNUYWcpKTsKIH0KIAotUGFzc1Jl
ZlB0cjxTVkdGb250RmFjZVNyY0VsZW1lbnQ+IFNWR0ZvbnRGYWNlU3JjRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NS
ZWZQdHI8U1ZHRm9udEZhY2VTcmNFbGVtZW50PiBTVkdGb250RmFjZVNyY0VsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdGb250RmFjZVNyY0VsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVt
ZW50LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZVNyY0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTIgKzI5LDEyIEBAIGNsYXNzIENT
U1ZhbHVlTGlzdDsKIAogY2xhc3MgU1ZHRm9udEZhY2VTcmNFbGVtZW50IEZJTkFMIDogcHVibGlj
IFNWR0VsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNl
U3JjRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlU3JjRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+
IHNyY1ZhbHVlKCkgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIFNWR0ZvbnRGYWNlU3JjRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdGb250RmFjZVNy
Y0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgCiAgICAgdmly
dHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgT1ZF
UlJJREUgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RmFjZVVyaUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZVVyaUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTMg
KzM3LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIHVzaW5nIG5hbWVzcGFjZSBTVkdO
YW1lczsKICAgICAKLWlubGluZSBTVkdGb250RmFjZVVyaUVsZW1lbnQ6OlNWR0ZvbnRGYWNlVXJp
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
CitpbmxpbmUgU1ZHRm9udEZhY2VVcmlFbGVtZW50OjpTVkdGb250RmFjZVVyaUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZH
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShmb250
X2ZhY2VfdXJpVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHRm9udEZhY2VVcmlFbGVtZW50PiBT
VkdGb250RmFjZVVyaUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlVXJpRWxlbWVudD4g
U1ZHRm9udEZhY2VVcmlFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHRm9u
dEZhY2VVcmlFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDE0ICszMSwxNCBAQCBjbGFzcyBDU1NGb250RmFjZVNyY1ZhbHVlOwogCiBjbGFzcyBT
VkdGb250RmFjZVVyaUVsZW1lbnQgRklOQUwgOiBwdWJsaWMgU1ZHRWxlbWVudCwgcHVibGljIENh
Y2hlZEZvbnRDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRG
YWNlVXJpRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlVXJpRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCB+U1ZHRm9udEZhY2VV
cmlFbGVtZW50KCk7CiAKICAgICBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlU3JjVmFsdWU+IHNyY1Zh
bHVlKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgU1ZHRm9udEZhY2VVcmlFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR0ZvbnRGYWNlVXJpRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRD
aGFuZ2UmKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVp
Z25PYmplY3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyAr
NTMsNyBAQCBCRUdJTl9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0ZvCiAgICAgUkVH
SVNURVJfUEFSRU5UX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHR3JhcGhpY3NFbGVtZW50KQogRU5E
X1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAotaW5saW5lIFNWR0ZvcmVpZ25PYmplY3RF
bGVtZW50OjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6
OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkKICAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCiAgICAgLCBtX3koTGVuZ3RoTW9kZUhl
aWdodCkKQEAgLTY0LDcgKzY0LDcgQEAgaW5saW5lIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpT
VkdGb3JlaQogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdGb3JlaWduT2JqZWN0RWxlbWVudD4gU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50
PiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNW
R0ZvcmVpZ25PYmplY3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAkocmV2aXNpb24gMTU1
ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDEwICszMywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBTVkdGb3JlaWduT2JqZWN0RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdHcmFwaGljc0VsZW1l
bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
VkdGb3JlaWduT2JqZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAg
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CisgICAgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rl
c3RzOjppc1ZhbGlkKCk7IH0KICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAkocmV2aXNp
b24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzksMTQgKzM5LDE0IEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BF
UlRJRVMoU1ZHR0UKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJPUEVSVElFUyhTVkdH
cmFwaGljc0VsZW1lbnQpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCi1TVkdH
RWxlbWVudDo6U1ZHR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50KQorU1ZHR0VsZW1lbnQ6OlNWR0dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6
Z1RhZykpOwogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHR0VsZW1lbnQoKTsK
IH0KIAotUGFzc1JlZlB0cjxTVkdHRWxlbWVudD4gU1ZHR0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPFNW
R0dFbGVtZW50PiBTVkdHRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0dF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1l
bnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICszMSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBTVkdHRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdHcmFwaGljc0VsZW1lbnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdHRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNWR0dFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
LXByb3RlY3RlZDoKLSAgICBTVkdHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKK3ByaXZhdGU6CisgICAgU1ZHR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogCi1wcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBp
c1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1
ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDEzICszMywxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGlu
ZSBTVkdHbHlwaEVsZW1lbnQ6OlNWR0dseXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgU1ZHR2x5cGhFbGVtZW50OjpTVkdH
bHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQo
aGFzVGFnTmFtZShTVkdOYW1lczo6Z2x5cGhUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdHbHlw
aEVsZW1lbnQ+IFNWR0dseXBoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHR2x5cGhFbGVtZW50PiBT
VkdHbHlwaEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdHbHlwaEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdH
bHlwaEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhF
bGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlw
aEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBTVkdGb250
RGF0YTsKIAogY2xhc3MgU1ZHR2x5cGhFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0VsZW1lbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0dseXBoRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNWR0dseXBoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCiAgICAgU1ZHR2x5cGggYnVpbGRHbHlwaElkZW50aWZpZXIoKSBjb25zdDsKIApAQCAtNDQs
NyArNDQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFNWR0dseXBoIGJ1aWxkR2VuZXJpY0dseXBo
SWRlbnRpZmllcihjb25zdCBTVkdFbGVtZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgU1ZHR2x5cGhF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR0dseXBoRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIC8vIEZJWE1FOiBz
dmdBdHRyaWJ1dGVDaGFuZ2VkIG1pc3NpbmcuCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBCRUdJTl9SRUdJU1RFUl9BTklNQVRFRF9Q
Uk9QRVJUSUVTKFNWR0dsCiAgICAgUkVHSVNURVJfUEFSRU5UX0FOSU1BVEVEX1BST1BFUlRJRVMo
U1ZHRWxlbWVudCkKIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBT
VkdHbHlwaFJlZkVsZW1lbnQ6OlNWR0dseXBoUmVmRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgU1ZHR2x5cGhSZWZFbGVtZW50
OjpTVkdHbHlwaFJlZkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAs
IG1feCgwKQogICAgICwgbV95KDApCkBAIC00OSw3ICs0OSw3IEBAIGlubGluZSBTVkdHbHlwaFJl
ZkVsZW1lbnQ6OlNWR0dseXBoUmVmRWwKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0Zv
clNWR0dseXBoUmVmRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR0dseXBoUmVmRWxlbWVu
dD4gU1ZHR2x5cGhSZWZFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxTVkdHbHlwaFJlZkVsZW1lbnQ+IFNW
R0dseXBoUmVmRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0dseXBoUmVm
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dseXBoUmVmRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHbHlwaFJlZkVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNWR0dseXBoUmVmRWxlbWVudCBGSU5BTCA6IHB1
YmxpYyBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlj
IFNWR1VSSVJlZmVyZW5jZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHR2x5
cGhSZWZFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHR2x5cGhSZWZFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBib29sIGhhc1ZhbGlkR2x5cGhFbGVtZW50
KFN0cmluZyYgZ2x5cGhOYW1lKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwpA
QCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREeShmbG9hdCwgRXhjZXB0aW9u
Q29kZSYpOwogCiBwcml2YXRlOgotICAgIFNWR0dseXBoUmVmRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdHbHlwaFJlZkVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTUsNyArNTUsNyBAQCBCRUdJTl9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0dy
CiAgICAgUkVHSVNURVJfUEFSRU5UX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRWxlbWVudCkKIEVO
RF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAgCi1TVkdHcmFkaWVudEVsZW1lbnQ6OlNW
R0dyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQpCitTVkdHcmFkaWVudEVsZW1lbnQ6OlNWR0dyYWRpZW50RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV9zcHJlYWRNZXRob2QoU1ZHU3ByZWFkTWV0
aG9kUGFkKQogICAgICwgbV9ncmFkaWVudFVuaXRzKFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQ
RV9PQkpFQ1RCT1VORElOR0JPWCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVu
dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRF
bGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFk
aWVudEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiAg
ICAgVmVjdG9yPEdyYWRpZW50OjpDb2xvclN0b3A+IGJ1aWxkU3RvcHMoKTsKICAKIHByb3RlY3Rl
ZDoKLSAgICBTVkdHcmFkaWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CisgICAgU1ZHR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyAr
NDIsNyBAQCBCRUdJTl9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0dyCiAgICAgUkVH
SVNURVJfUEFSRU5UX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHVGVzdHMpCiBFTkRfUkVHSVNURVJf
QU5JTUFURURfUFJPUEVSVElFUwogCi1TVkdHcmFwaGljc0VsZW1lbnQ6OlNWR0dyYXBoaWNzRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitT
VkdHcmFwaGljc0VsZW1lbnQ6OlNWR0dyYXBoaWNzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KQogewogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHR3JhcGhp
Y3NFbGVtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5o
CShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxl
Kik7CiAKIHByb3RlY3RlZDoKLSAgICBTVkdHcmFwaGljc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CisgICAgU1ZHR3JhcGhpY3NFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsMTMgKzMwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIFNWR0hLZXJu
RWxlbWVudDo6U1ZHSEtlcm5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdIS2VybkVsZW1lbnQ6OlNWR0hLZXJuRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
OiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjpoa2VyblRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR0hLZXJuRWxlbWVudD4g
U1ZHSEtlcm5FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxTVkdIS2VybkVsZW1lbnQ+IFNWR0hLZXJuRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0hLZXJuRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuaAko
cmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMiArMjksMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBTVkdIS2VybkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHSEtlcm5FbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHSEtl
cm5FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAg
ICB2b2lkIGJ1aWxkSG9yaXpvbnRhbEtlcm5pbmdQYWlyKEtlcm5pbmdQYWlyVmVjdG9yJik7CiAK
IHByaXZhdGU6Ci0gICAgU1ZHSEtlcm5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworICAgIFNWR0hLZXJuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIAogICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRl
ZEludG8oQ29udGFpbmVyTm9kZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVk
RnJvbShDb250YWluZXJOb2RlKikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
SW1hZ2VFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAgQkVH
SU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdJbQogICAgIFJFR0lTVEVSX1BBUkVO
VF9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0dyYXBoaWNzRWxlbWVudCkKIEVORF9SRUdJU1RFUl9B
TklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBTVkdJbWFnZUVsZW1lbnQ6OlNWR0ltYWdlRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitp
bmxpbmUgU1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKICAgICAsIG1f
eShMZW5ndGhNb2RlSGVpZ2h0KQpAQCAtNjgsNyArNjgsNyBAQCBpbmxpbmUgU1ZHSW1hZ2VFbGVt
ZW50OjpTVkdJbWFnZUVsZW1lbnQoCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JT
VkdJbWFnZUVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdJbWFnZUVsZW1lbnQ+IFNWR0lt
YWdlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHSW1hZ2VFbGVtZW50PiBTVkdJbWFnZUVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdJbWFnZUVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgJKHJldmlz
aW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzYsMTAgKzM2LDEwIEBAIGNsYXNzIFNWR0ltYWdlRWxlbWVudCBGSU5B
TCA6IHB1YmxpYyBTVkcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVibGljIFNWR1VSSVJlZmVyZW5jZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U1ZHSW1hZ2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHSW1hZ2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgU1ZHSW1hZ2VFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR0ltYWdlRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wg
aXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KICAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEy
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDksNyArNDksNyBAQCBCRUdJTl9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTKFNW
R0xpCiAgICAgUkVHSVNURVJfUEFSRU5UX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHR3JhcGhpY3NF
bGVtZW50KQogRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAotaW5saW5lIFNWR0xp
bmVFbGVtZW50OjpTVkdMaW5lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgU1ZHTGluZUVsZW1lbnQ6OlNWR0xpbmVFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6
IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1feDEoTGVuZ3Ro
TW9kZVdpZHRoKQogICAgICwgbV95MShMZW5ndGhNb2RlSGVpZ2h0KQpAQCAtNjAsNyArNjAsNyBA
QCBpbmxpbmUgU1ZHTGluZUVsZW1lbnQ6OlNWR0xpbmVFbGVtZW50KGNvCiAgICAgcmVnaXN0ZXJB
bmltYXRlZFByb3BlcnRpZXNGb3JTVkdMaW5lRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNW
R0xpbmVFbGVtZW50PiBTVkdMaW5lRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHTGluZUVsZW1lbnQ+
IFNWR0xpbmVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHTGluZUVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxl
bWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTAgKzMyLDEwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIFNWR0xpbmVFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0dyYXBoaWNzRWxl
bWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0xpbmVF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U1ZHTGluZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBTVkdMaW5lRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdMaW5lRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNv
bnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBCRUdJTl9SRUdJU1RFUl9BTklN
QVRFRF9QUk9QRVJUSUVTKFNWR0xpCiAgICAgUkVHSVNURVJfUEFSRU5UX0FOSU1BVEVEX1BST1BF
UlRJRVMoU1ZHR3JhZGllbnRFbGVtZW50KQogRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJ
RVMKIAotaW5saW5lIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkK
K2lubGluZSBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
OiBTVkdHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3gxKExlbmd0
aE1vZGVXaWR0aCkKICAgICAsIG1feTEoTGVuZ3RoTW9kZUhlaWdodCkKQEAgLTY2LDcgKzY2LDcg
QEAgaW5saW5lIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZQogICAgIHJlZ2lzdGVy
QW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50KCk7CiB9CiAKLVBh
c3NSZWZQdHI8U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50PiBTVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCitQYXNzUmVmUHRyPFNWR0xpbmVhckdyYWRpZW50RWxlbWVudD4gU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDEyICszMiwxMiBAQCBzdHJ1Y3QgTGluZWFyR3JhZGllbnRBdHRyaWJ1dGVzOwogCiBj
bGFzcyBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQgRklOQUwgOiBwdWJsaWMgU1ZHR3JhZGllbnRF
bGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgY29sbGVjdEdyYWRpZW50QXR0
cmlidXRlcyhMaW5lYXJHcmFkaWVudEF0dHJpYnV0ZXMmKTsKIAogcHJpdmF0ZToKLSAgICBTVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Cisg
ICAgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNUGF0aEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNUGF0aEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTVBhdGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDE0IEBA
IEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHTVAKICAgICBSRUdJU1RFUl9M
T0NBTF9BTklNQVRFRF9QUk9QRVJUWShleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogRU5EX1JF
R0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAotaW5saW5lIFNWR01QYXRoRWxlbWVudDo6U1ZH
TVBhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKK2lubGluZSBTVkdNUGF0aEVsZW1lbnQ6OlNWR01QYXRoRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpt
cGF0aFRhZykpOwogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHTVBhdGhFbGVt
ZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHTVBhdGhFbGVtZW50PiBTVkdNUGF0aEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
CitQYXNzUmVmUHRyPFNWR01QYXRoRWxlbWVudD4gU1ZHTVBhdGhFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgU1ZHTVBhdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCShyZXZpc2lvbiAxNTU4MTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgU1ZHTVBhdGhFbGVtZW50IEZJTkFMIDogcHVibGljIFNW
RwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1VSSVJlZmVyZW5jZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdNUGF0aEVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTVkdNUGF0aEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgflNWR01QYXRoRWxlbWVudCgpOwogCkBAIC00NSw3
ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHRhcmdldFBhdGhDaGFuZ2VkKCk7CiAKIHByaXZh
dGU6Ci0gICAgU1ZHTVBhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworICAgIFNWR01QYXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
IAogICAgIHZvaWQgYnVpbGRQZW5kaW5nUmVzb3VyY2UoKTsKICAgICB2b2lkIGNsZWFyUmVzb3Vy
Y2VSZWZlcmVuY2VzKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgQkVHSU5fUkVHSVNURVJf
QU5JTUFURURfUFJPUEVSVElFUyhTVkdNYQogICAgIFJFR0lTVEVSX1BBUkVOVF9BTklNQVRFRF9Q
Uk9QRVJUSUVTKFNWR0VsZW1lbnQpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwog
Ci1pbmxpbmUgU1ZHTWFya2VyRWxlbWVudDo6U1ZHTWFya2VyRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgU1ZHTWFya2VyRWxl
bWVudDo6U1ZHTWFya2VyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAg
ICwgbV9yZWZYKExlbmd0aE1vZGVXaWR0aCkKICAgICAsIG1fcmVmWShMZW5ndGhNb2RlSGVpZ2h0
KQpAQCAtODcsNyArODcsNyBAQCBpbmxpbmUgU1ZHTWFya2VyRWxlbWVudDo6U1ZHTWFya2VyRWxl
bWVuCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdNYXJrZXJFbGVtZW50KCk7
CiB9CiAKLVBhc3NSZWZQdHI8U1ZHTWFya2VyRWxlbWVudD4gU1ZHTWFya2VyRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bh
c3NSZWZQdHI8U1ZHTWFya2VyRWxlbWVudD4gU1ZHTWFya2VyRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNWR01hcmtlckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEy
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICAgICAgU1ZHX01BUktFUl9PUklFTlRf
QU5HTEUgPSBTVkdNYXJrZXJPcmllbnRBbmdsZQogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTVkdNYXJrZXJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTWFya2VyRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgQWZmaW5lVHJhbnNmb3JtIHZp
ZXdCb3hUb1ZpZXdUcmFuc2Zvcm0oZmxvYXQgdmlld1dpZHRoLCBmbG9hdCB2aWV3SGVpZ2h0KSBj
b25zdDsKIApAQCAtMTIxLDcgKzEyMSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgU1ZH
UHJvcGVydHlJbmZvKiBvcmllbnRUeXBlUHJvcGVydHlJbmZvKCk7CiAKIHByaXZhdGU6Ci0gICAg
U1ZHTWFya2VyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBT
VkdNYXJrZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAg
dmlydHVhbCBib29sIG5lZWRzUGVuZGluZ1Jlc291cmNlSGFuZGxpbmcoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgQkVHSU5fUkVHSVNURVJfQU5JTUFURURf
UFJPUEVSVElFUyhTVkdNYQogICAgIFJFR0lTVEVSX1BBUkVOVF9BTklNQVRFRF9QUk9QRVJUSUVT
KFNWR1Rlc3RzKQogRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAotaW5saW5lIFNW
R01hc2tFbGVtZW50OjpTVkdNYXNrRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgU1ZHTWFza0VsZW1lbnQ6OlNWR01hc2tFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX21hc2tVbml0cyhTVkdV
bml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpCiAgICAgLCBtX21hc2tD
b250ZW50VW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKQpA
QCAtNzIsNyArNzIsNyBAQCBpbmxpbmUgU1ZHTWFza0VsZW1lbnQ6OlNWR01hc2tFbGVtZW50KGNv
CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdNYXNrRWxlbWVudCgpOwogfQog
Ci1QYXNzUmVmUHRyPFNWR01hc2tFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8
U1ZHTWFza0VsZW1lbnQ+IFNWR01hc2tFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU1ZHTWFza0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXNrRWxlbWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTAgKzM2LDEwIEBA
IGNsYXNzIFNWR01hc2tFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0UKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVibGljIFNWR1Rlc3RzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8U1ZHTWFza0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdNYXNrRWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgotICAg
IFNWR01hc2tFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNW
R01hc2tFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmly
dHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9
CiAgICAgdmlydHVhbCBib29sIG5lZWRzUGVuZGluZ1Jlc291cmNlSGFuZGxpbmcoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxl
bWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNZXRh
ZGF0YUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMyArMjUsMTMgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1pbmxpbmUgU1ZHTWV0YWRhdGFFbGVtZW50OjpTVkdNZXRhZGF0
YUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQoraW5saW5lIFNWR01ldGFkYXRhRWxlbWVudDo6U1ZHTWV0YWRhdGFFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6
Om1ldGFkYXRhVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHTWV0YWRhdGFFbGVtZW50PiBTVkdN
ZXRhZGF0YUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPFNWR01ldGFkYXRhRWxlbWVudD4gU1ZHTWV0YWRh
dGFFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHTWV0YWRhdGFFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWV0
YWRhdGFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01ldGFk
YXRhRWxlbWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWV0YWRhdGFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCwxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR01ldGFkYXRhRWxlbWVudCBGSU5BTCA6IHB1Ymxp
YyBTVkdFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdNZXRhZGF0
YUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTVkdNZXRhZGF0YUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBTVkdNZXRhZGF0YUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgU1ZHTWV0YWRhdGFFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIHJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERSB7IHJldHVybiBmYWxz
ZTsgfQogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxl
bWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNz
aW5nR2x5cGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTMgKzI1LDEzIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ6OlNW
R01pc3NpbmdHbHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50KQoraW5saW5lIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ6OlNWR01pc3NpbmdH
bHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQo
aGFzVGFnTmFtZShTVkdOYW1lczo6bWlzc2luZ19nbHlwaFRhZykpOwogfQogCi1QYXNzUmVmUHRy
PFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ+IFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVm
UHRyPFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ+IFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdNaXNzaW5nR2x5cGhFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhF
bGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNz
aW5nR2x5cGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCwxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQgRklOQUwgOiBw
dWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTWlz
c2luZ0dseXBoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBTVkdNaXNz
aW5nR2x5cGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNW
R01pc3NpbmdHbHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIHsg
cmV0dXJuIGZhbHNlOyB9CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3IEBAIEJFR0lOX1JFR0lTVEVSX0FO
SU1BVEVEX1BST1BFUlRJRVMoU1ZHUGEKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJP
UEVSVElFUyhTVkdHcmFwaGljc0VsZW1lbnQpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVS
VElFUwogCi1pbmxpbmUgU1ZHUGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdQYXRoRWxl
bWVudDo6U1ZHUGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQogICAgICwgbV9wYXRoQnl0ZVN0cmVhbShTVkdQYXRoQnl0ZVN0cmVhbTo6Y3JlYXRlKCkpCiAg
ICAgLCBtX3BhdGhTZWdMaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKQpAQCAtOTIsNyArOTIsNyBA
QCBpbmxpbmUgU1ZHUGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KGNvCiAgICAgcmVnaXN0ZXJB
bmltYXRlZFByb3BlcnRpZXNGb3JTVkdQYXRoRWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNW
R1BhdGhFbGVtZW50PiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHUGF0aEVsZW1lbnQ+
IFNWR1BhdGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHUGF0aEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxl
bWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBjbGFzcyBTVkdQYXRoU2Vn
TGlzdFByb3BlcnR5VGVhck9mZjsKIGNsYXNzIFNWR1BhdGhFbGVtZW50IEZJTkFMIDogcHVibGlj
IFNWR0dyYXBoaWNzRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlj
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNWR1BhdGhFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGF0aEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKICAgICBmbG9hdCBnZXRUb3RhbExl
bmd0aCgpOwogICAgIFNWR1BvaW50IGdldFBvaW50QXRMZW5ndGgoZmxvYXQgZGlzdGFuY2UpOwpA
QCAtOTksNyArOTksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0FuaW1WYWxPYnNlcnZlZCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNBbmltVmFsT2JzZXJ2ZWQ7IH0KIAogcHJpdmF0ZToKLSAgICBTVkdQ
YXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdQYXRo
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwg
Ym9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVE
X1BST1BFUlRJRVMoU1ZHUGEKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJPUEVSVElF
UyhTVkdUZXN0cykKIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBT
VkdQYXR0ZXJuRWxlbWVudDo6U1ZHUGF0dGVybkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFNWR1BhdHRlcm5FbGVtZW50OjpT
VkdQYXR0ZXJuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV94
KExlbmd0aE1vZGVXaWR0aCkKICAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0KQpAQCAtODYsNyAr
ODYsNyBAQCBpbmxpbmUgU1ZHUGF0dGVybkVsZW1lbnQ6OlNWR1BhdHRlcm5FbGVtCiAgICAgcmVn
aXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdQYXR0ZXJuRWxlbWVudCgpOwogfQogCi1QYXNz
UmVmUHRyPFNWR1BhdHRlcm5FbGVtZW50PiBTVkdQYXR0ZXJuRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8
U1ZHUGF0dGVybkVsZW1lbnQ+IFNWR1BhdHRlcm5FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU1ZHUGF0dGVybkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtNDYsMTQgKzQ2LDE0IEBAIGNsYXNzIFNWR1BhdHRlcm5FbGVtZW50IEZJTkFMIDogcHVibGlj
IFMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBT
VkdGaXRUb1ZpZXdCb3ggewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhdHRl
cm5FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8U1ZHUGF0dGVybkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgY29sbGVjdFBhdHRlcm5BdHRyaWJ1dGVz
KFBhdHRlcm5BdHRyaWJ1dGVzJikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9y
bSBsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybShTVkdMb2NhdGFibGU6OkNUTVNjb3BlKSBj
b25zdDsKIAogcHJpdmF0ZToKLSAgICBTVkdQYXR0ZXJuRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdQYXR0ZXJuRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0
IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wgbmVlZHNQ
ZW5kaW5nUmVzb3VyY2VIYW5kbGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDcgKzU5LDcgQEAgQkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdQbwogICAg
IFJFR0lTVEVSX1BBUkVOVF9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0dyYXBoaWNzRWxlbWVudCkK
IEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLVNWR1BvbHlFbGVtZW50OjpTVkdQ
b2x5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCitTVkdQb2x5RWxlbWVudDo6U1ZHUG9seUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KQogewogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZH
UG9seUVsZW1lbnQoKTsgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuaAko
cmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25z
dCBTVkdQcm9wZXJ0eUluZm8qIHBvaW50c1Byb3BlcnR5SW5mbygpOwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgU1ZHUG9seUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAg
U1ZHUG9seUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6
aXNWYWxpZCgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5j
cHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDEzICsyNiwxMyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWlubGluZSBTVkdQb2x5Z29uRWxlbWVudDo6U1ZHUG9seWdvbkVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5l
IFNWR1BvbHlnb25FbGVtZW50OjpTVkdQb2x5Z29uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdQb2x5RWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6cG9seWdv
blRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR1BvbHlnb25FbGVtZW50PiBTVkdQb2x5Z29uRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKK1Bhc3NSZWZQdHI8U1ZHUG9seWdvbkVsZW1lbnQ+IFNWR1BvbHlnb25FbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHUG9seWdvbkVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCShy
ZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTAgKzI4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgU1ZHUG9seWdvbkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgU1ZHUG9seUVsZW1lbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BvbHlnb25FbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U1ZHUG9seWdvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIAogcHJpdmF0ZToKLSAgICBTVkdQb2x5Z29uRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdQb2x5Z29uRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjYsMTMgKzI2LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5l
IFNWR1BvbHlsaW5lRWxlbWVudDo6U1ZHUG9seWxpbmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdQb2x5bGluZUVsZW1l
bnQ6OlNWR1BvbHlsaW5lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdQb2x5RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkK
IHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6cG9seWxpbmVUYWcpKTsKIH0KIAot
UGFzc1JlZlB0cjxTVkdQb2x5bGluZUVsZW1lbnQ+IFNWR1BvbHlsaW5lRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NS
ZWZQdHI8U1ZHUG9seWxpbmVFbGVtZW50PiBTVkdQb2x5bGluZUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTVkdQb2x5bGluZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgJKHJldmlzaW9u
IDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjgsMTAgKzI4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU1ZHUG9seWxpbmVFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR1BvbHlFbGVtZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQb2x5bGluZUVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
VkdQb2x5bGluZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIAogcHJpdmF0ZToKLSAgICBTVkdQb2x5bGluZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CisgICAgU1ZHUG9seWxpbmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIEJFR0lOX1JFR0lTVEVSX0FO
SU1BVEVEX1BST1BFUlRJRVMoU1ZHUmEKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJP
UEVSVElFUyhTVkdHcmFkaWVudEVsZW1lbnQpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVS
VElFUwogCi1pbmxpbmUgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpTVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQoraW5saW5lIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6U1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICA6IFNWR0dyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fY3goTGVu
Z3RoTW9kZVdpZHRoLCAiNTAlIikKICAgICAsIG1fY3koTGVuZ3RoTW9kZUhlaWdodCwgIjUwJSIp
CkBAIC03Miw3ICs3Miw3IEBAIGlubGluZSBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OlNWR1Jh
ZGkKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1JhZGlhbEdyYWRpZW50RWxl
bWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudD4gU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ+
IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNW
R1JhZGlhbEdyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAkocmV2aXNpb24g
MTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMiArMzIsMTIgQEAgc3RydWN0IFJhZGlhbEdyYWRpZW50
QXR0cmlidXRlczsKIAogY2xhc3MgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50IEZJTkFMIDogcHVi
bGljIFNWR0dyYWRpZW50RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBib29sIGNv
bGxlY3RHcmFkaWVudEF0dHJpYnV0ZXMoUmFkaWFsR3JhZGllbnRBdHRyaWJ1dGVzJik7CiAKIHBy
aXZhdGU6Ci0gICAgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOworICAgIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUz
LDcgKzUzLDcgQEAgQkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdSZQogICAg
IFJFR0lTVEVSX1BBUkVOVF9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0dyYXBoaWNzRWxlbWVudCkK
IEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBTVkdSZWN0RWxlbWVu
dDo6U1ZHUmVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
IGRvY3VtZW50KQoraW5saW5lIFNWR1JlY3RFbGVtZW50OjpTVkdSZWN0RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFw
aGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRo
KQogICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQpCkBAIC02Niw3ICs2Niw3IEBAIGlubGluZSBT
VkdSZWN0RWxlbWVudDo6U1ZHUmVjdEVsZW1lbnQoY28KICAgICByZWdpc3RlckFuaW1hdGVkUHJv
cGVydGllc0ZvclNWR1JlY3RFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHUmVjdEVsZW1l
bnQ+IFNWR1JlY3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxTVkdSZWN0RWxlbWVudD4gU1ZHUmVjdEVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdSZWN0RWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgJKHJl
dmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMywxMCArMzMsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgU1ZHUmVjdEVsZW1lbnQgRklOQUwgOiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVtZW50LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUmVjdEVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTVkdSZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiBwcml2YXRlOgotICAgIFNWR1JlY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOworICAgIFNWR1JlY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1
cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3Vz
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NWR0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTVkdFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NWR0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw4ICs4Miw4IEBAIEJFR0lO
X1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHU1YKICAgICBSRUdJU1RFUl9QQVJFTlRf
QU5JTUFURURfUFJPUEVSVElFUyhTVkdHcmFwaGljc0VsZW1lbnQpCiBFTkRfUkVHSVNURVJfQU5J
TUFURURfUFJPUEVSVElFUwogCi1pbmxpbmUgU1ZHU1ZHRWxlbWVudDo6U1ZHU1ZHRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jKQotICAgIDogU1ZHR3Jh
cGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvYykKK2lubGluZSBTVkdTVkdFbGVtZW50OjpTVkdTVkdF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
KyAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1feChM
ZW5ndGhNb2RlV2lkdGgpCiAgICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKICAgICAsIG1fd2lk
dGgoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpCkBAIC05NCwxMCArOTQsMTAgQEAgaW5saW5lIFNW
R1NWR0VsZW1lbnQ6OlNWR1NWR0VsZW1lbnQoY29ucwogewogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjpzdmdUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNW
R1NWR0VsZW1lbnQoKTsKLSAgICBkb2MtPnJlZ2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNh
bGxiYWNrcyh0aGlzKTsKKyAgICBkb2N1bWVudC5yZWdpc3RlckZvclBhZ2VDYWNoZVN1c3BlbnNp
b25DYWxsYmFja3ModGhpcyk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHU1ZHRWxlbWVudD4gU1ZHU1ZH
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHU1ZHRWxlbWVudD4gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1NWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
NDUsNyArNDUsNyBAQCBjbGFzcyBTVkdTVkdFbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0dyCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0ZpdFRvVmlld0JveCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHWm9vbUFuZFBhbiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHU1ZHRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1NWR0VsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHVzaW5nIFNW
R0dyYXBoaWNzRWxlbWVudDo6cmVmOwogICAgIHVzaW5nIFNWR0dyYXBoaWNzRWxlbWVudDo6ZGVy
ZWY7CkBAIC0xMzMsMTMgKzEzMywxMiBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0VtcHR5Vmll
d0JveCgpIGNvbnN0IHsgcmV0dXJuIHZpZXdCb3hJc1ZhbGlkKCkgJiYgdmlld0JveCgpLmlzRW1w
dHkoKTsgfQogCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIGRpZE1vdmVUb05ld0RvY3Vt
ZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgT1ZFUlJJREU7Ci0KIHByaXZhdGU6Ci0gICAgU1ZH
U1ZHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdTVkdF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgflNW
R1NWR0VsZW1lbnQoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChE
b2N1bWVudCogb2xkRG9jdW1lbnQpIE9WRVJSSURFOworCiAgICAgdmlydHVhbCB2b2lkIHBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVS
UklERTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgQkVHSU5fUkVHSVNURVJf
QU5JTUFURURfUFJPUEVSVElFUyhTVkdTYwogICAgIFJFR0lTVEVSX0xPQ0FMX0FOSU1BVEVEX1BS
T1BFUlRZKGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiBFTkRfUkVHSVNURVJfQU5JTUFURURf
UFJPUEVSVElFUwogCi1pbmxpbmUgU1ZHU2NyaXB0RWxlbWVudDo6U1ZHU2NyaXB0RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgd2Fz
SW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCBhbHJlYWR5U3RhcnRlZCkKK2lubGluZSBTVkdTY3JpcHRF
bGVtZW50OjpTVkdTY3JpcHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlT
dGFydGVkKQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIFNjcmlw
dEVsZW1lbnQodGhpcywgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYWxyZWFkeVN0YXJ0ZWQpCiAgICAg
LCBtX3N2Z0xvYWRFdmVudFRpbWVyKHRoaXMsICZTVkdFbGVtZW50OjpzdmdMb2FkRXZlbnRUaW1l
ckZpcmVkKQpAQCAtNTMsNyArNTMsNyBAQCBpbmxpbmUgU1ZHU2NyaXB0RWxlbWVudDo6U1ZHU2Ny
aXB0RWxlbWVuCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdTY3JpcHRFbGVt
ZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHU2NyaXB0RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCwgYm9vbCBpbnNlcnRlZEJ5UGFyc2VyKQorUGFzc1JlZlB0cjxTVkdTY3JpcHRFbGVtZW50PiBT
VkdTY3JpcHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50LCBib29sIGluc2VydGVkQnlQYXJzZXIpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTVkdTY3JpcHRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBpbnNlcnRlZEJ5
UGFyc2VyLCBmYWxzZSkpOwogfQpAQCAtMjA4LDcgKzIwOCw3IEBAIGJvb2wgU1ZHU2NyaXB0RWxl
bWVudDo6aGFzU291cmNlQXR0cmlidXQKIAogUGFzc1JlZlB0cjxFbGVtZW50PiBTVkdTY3JpcHRF
bGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1NjcmlwdEVsZW1lbnQodGFnUU5hbWUoKSwgJmRvY3Vt
ZW50KCksIGZhbHNlLCBhbHJlYWR5U3RhcnRlZCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTVkdTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIGRvY3VtZW50KCksIGZhbHNlLCBhbHJlYWR5
U3RhcnRlZCgpKSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTMgKzM2LDEzIEBAIGNsYXNzIFNWR1Njcmlw
dEVsZW1lbnQgRklOQUwgOiBwdWJsaWMgU1YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LCBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTVkdTY3JpcHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50KiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTVkdTY3JpcHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyKTsKIAogICAgIFN0cmluZyB0eXBlKCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRUeXBlKGNvbnN0IFN0cmluZyYpOwogCiBwcml2YXRlOgotICAgIFNW
R1NjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCB3YXNJ
bnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKKyAgICBTVkdTY3JpcHRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBh
cnNlciwgYm9vbCBhbHJlYWR5U3RhcnRlZCk7CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNSwxNCArMjUsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAotaW5saW5lIFNW
R1NldEVsZW1lbnQ6OlNWR1NldEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFNWR1NldEVsZW1lbnQ6OlNWR1NldEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDog
U1ZHQW5pbWF0ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7CiAgICAgc2V0QW5pbWF0aW9u
TW9kZShUb0FuaW1hdGlvbik7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNldFRh
ZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR1NldEVsZW1lbnQ+IFNWR1NldEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNz
UmVmUHRyPFNWR1NldEVsZW1lbnQ+IFNWR1NldEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTVkdTZXRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU2V0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTZXRFbGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTZXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSwxMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBTVkdBbmltYXRlRWxlbWVudCBpbXBsZW1lbnRzIHN1
cGVyc2V0IG9mIHRoZSBmdW5jdGlvbmFsaXR5LgogY2xhc3MgU1ZHU2V0RWxlbWVudCBGSU5BTCA6
IHB1YmxpYyBTVkdBbmltYXRlRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8U1ZHU2V0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1NldEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBTVkdTZXRFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR1NldEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1h
dGlvbk1vZGUoKSBPVkVSUklERTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dG9wRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BF
bGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0
b3BFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBCRUdJTl9SRUdJ
U1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR1N0CiAgICAgUkVHSVNURVJfUEFSRU5UX0FOSU1B
VEVEX1BST1BFUlRJRVMoU1ZHRWxlbWVudCkKIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJU
SUVTCiAKLWlubGluZSBTVkdTdG9wRWxlbWVudDo6U1ZHU3RvcEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFNWR1N0b3BFbGVt
ZW50OjpTVkdTdG9wRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwg
bV9vZmZzZXQoMCkKIHsKQEAgLTQ5LDcgKzQ5LDcgQEAgaW5saW5lIFNWR1N0b3BFbGVtZW50OjpT
VkdTdG9wRWxlbWVudChjbwogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHU3Rv
cEVsZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTVkdTdG9wRWxlbWVudD4gU1ZHU3RvcEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCitQYXNzUmVmUHRyPFNWR1N0b3BFbGVtZW50PiBTVkdTdG9wRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNWR1N0b3BFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDEyICsyOSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1N0b3BFbGVt
ZW50IEZJTkFMIDogcHVibGljIFNWR0VsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNWR1N0b3BFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHU3RvcEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIENvbG9yIHN0b3BDb2xvckluY2x1
ZGluZ09wYWNpdHkoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBTVkdTdG9wRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdTdG9wRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEy
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDkgKzM0LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1pbmxpbmUgU1ZH
U3R5bGVFbGVtZW50OjpTVkdTdHlsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK2lubGluZSBTVkdT
dHlsZUVsZW1lbnQ6OlNWR1N0eWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogICAgIDogU1ZHRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fc3R5bGVTaGVldE93bmVyKCpkb2N1bWVu
dCwgY3JlYXRlZEJ5UGFyc2VyKQorICAgICwgbV9zdHlsZVNoZWV0T3duZXIoZG9jdW1lbnQsIGNy
ZWF0ZWRCeVBhcnNlcikKICAgICAsIG1fc3ZnTG9hZEV2ZW50VGltZXIodGhpcywgJlNWR0VsZW1l
bnQ6OnN2Z0xvYWRFdmVudFRpbWVyRmlyZWQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZH
TmFtZXM6OnN0eWxlVGFnKSk7CkBAIC00Nyw3ICs0Nyw3IEBAIFNWR1N0eWxlRWxlbWVudDo6flNW
R1N0eWxlRWxlbWVudCgpCiAgICAgbV9zdHlsZVNoZWV0T3duZXIuY2xlYXJEb2N1bWVudERhdGEo
JmRvY3VtZW50KCksIHRoaXMpOwogfQogCi1QYXNzUmVmUHRyPFNWR1N0eWxlRWxlbWVudD4gU1ZH
U3R5bGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK1Bhc3NSZWZQdHI8U1ZHU3R5bGVF
bGVtZW50PiBTVkdTdHlsZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogewogICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgU1ZHU3R5bGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBjcmVh
dGVkQnlQYXJzZXIpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgJ
KHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIFNWR1N0eWxlRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdTdHlsZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U1ZHU3R5bGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHZpcnR1YWwgflNWR1N0
eWxlRWxlbWVudCgpOwogCiAgICAgQ1NTU3R5bGVTaGVldCogc2hlZXQoKSBjb25zdCB7IHJldHVy
biBtX3N0eWxlU2hlZXRPd25lci5zaGVldCgpOyB9CkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFRpdGxlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsK
IAogcHJpdmF0ZToKLSAgICBTVkdTdHlsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOworICAgIFNWR1N0eWxlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKICAg
ICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2
aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21pY1N0cmluZyYpIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRj
aEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hF
bGVtZW50LmNwcAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3
aXRjaEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxNCArMzYsMTQgQEAgQkVHSU5f
UkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdTdwogICAgIFJFR0lTVEVSX1BBUkVOVF9B
TklNQVRFRF9QUk9QRVJUSUVTKFNWR0dyYXBoaWNzRWxlbWVudCkKIEVORF9SRUdJU1RFUl9BTklN
QVRFRF9QUk9QRVJUSUVTCiAKLWlubGluZSBTVkdTd2l0Y2hFbGVtZW50OjpTVkdTd2l0Y2hFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lu
bGluZSBTVkdTd2l0Y2hFbGVtZW50OjpTVkdTd2l0Y2hFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6
c3dpdGNoVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdTd2l0Y2hF
bGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHU3dpdGNoRWxlbWVudD4gU1ZHU3dpdGNoRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKK1Bhc3NSZWZQdHI8U1ZHU3dpdGNoRWxlbWVudD4gU1ZHU3dpdGNoRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsK
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1N3aXRjaEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAkocmV2aXNp
b24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzEsMTAgKzMxLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IFNWR1N3aXRjaEVsZW1lbnQgRklOQUwgOiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVtZW50LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdTd2l0Y2hFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8U1ZHU3dpdGNoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIFNWR1N3aXRjaEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgU1ZHU3dpdGNoRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNv
bnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDIsMTQgKzQyLDE0IEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHU3kK
ICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJPUEVSVElFUyhTVkdFbGVtZW50KQogRU5E
X1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAotaW5saW5lIFNWR1N5bWJvbEVsZW1lbnQ6
OlNWR1N5bWJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
IGRvY3VtZW50KQoraW5saW5lIFNWR1N5bWJvbEVsZW1lbnQ6OlNWR1N5bWJvbEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZH
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdO
YW1lczo6c3ltYm9sVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdT
eW1ib2xFbGVtZW50KCk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHU3ltYm9sRWxlbWVudD4gU1ZHU3lt
Ym9sRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHU3ltYm9sRWxlbWVudD4gU1ZHU3ltYm9sRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1N5bWJvbEVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAko
cmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTAgKzM1LDEwIEBAIGNsYXNzIFNWR1N5bWJvbEVsZW1l
bnQgRklOQUwgOiBwdWJsaWMgU1YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJs
aWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdWJsaWMgU1ZHRml0VG9WaWV3Qm94IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTVkdTeW1ib2xFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHU3ltYm9sRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIFNWR1N5
bWJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgU1ZHU3lt
Ym9sRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgx
MikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ5LDcgKzQ5LDcgQEAgQkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhT
VkdUUgogICAgIFJFR0lTVEVSX1BBUkVOVF9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCi1QYXNz
UmVmUHRyPFNWR1RSZWZFbGVtZW50PiBTVkdUUmVmRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHVFJl
ZkVsZW1lbnQ+IFNWR1RSZWZFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxTVkdUUmVmRWxlbWVudD4g
ZWxlbWVudCA9IGFkb3B0UmVmKG5ldyBTVkdUUmVmRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OwogICAgIGVsZW1lbnQtPmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKQEAgLTEyOSw3ICsx
MjksNyBAQCB2b2lkIFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVyOjpoYW5kbGVFCiAgICAgICAg
IG1fdHJlZkVsZW1lbnQtPmRldGFjaFRhcmdldCgpOwogfQogCi1pbmxpbmUgU1ZHVFJlZkVsZW1l
bnQ6OlNWR1RSZWZFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKK2lubGluZSBTVkdUUmVmRWxlbWVudDo6U1ZHVFJlZkVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHVGV4
dFBvc2l0aW9uaW5nRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fdGFyZ2V0TGlz
dGVuZXIoU1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXI6OmNyZWF0ZSh0aGlzKSkKIHsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTIg
KzMyLDEyIEBAIGNsYXNzIFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVyOwogY2xhc3MgU1ZHVFJl
ZkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1VSSVJlZmVyZW5jZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVFJlZkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdUUmVmRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRl
OgogICAgIGZyaWVuZCBjbGFzcyBTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lcjsKIAotICAgIFNW
R1RSZWZFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR1RS
ZWZFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZpcnR1YWwg
flNWR1RSZWZFbGVtZW50KCk7CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMTMgKzI5LDEzIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotaW5saW5lIFNWR1RTcGFuRWxlbWVudDo6U1ZHVFNwYW5FbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdU
U3BhbkVsZW1lbnQ6OlNWR1RTcGFuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjp0c3Bh
blRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR1RTcGFuRWxlbWVudD4gU1ZHVFNwYW5FbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQorUGFzc1JlZlB0cjxTVkdUU3BhbkVsZW1lbnQ+IFNWR1RTcGFuRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNWR1RTcGFuRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEy
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxMCArMjgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdUU3Bh
bkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVFNwYW5FbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVFNw
YW5FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHBy
aXZhdGU6Ci0gICAgU1ZHVFNwYW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOworICAgIFNWR1RTcGFuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKICAgICAgICAgICAgIAogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSopIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02NCw3ICs2NCw3IEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMo
U1ZHVGUKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJPUEVSVElFUyhTVkdHcmFwaGlj
c0VsZW1lbnQpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCi1TVkdUZXh0Q29u
dGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitTVkdUZXh0Q29udGVudEVsZW1lbnQ6OlNWR1Rl
eHRDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAg
ICAgLCBtX3RleHRMZW5ndGgoTGVuZ3RoTW9kZU90aGVyKQogICAgICwgbV9zcGVjaWZpZWRUZXh0
TGVuZ3RoKExlbmd0aE1vZGVPdGhlcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
Q29udGVudEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFNWR1Byb3BlcnR5SW5mbyogdGV4dExlbmd0aFBy
b3BlcnR5SW5mbygpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHVGV4dENvbnRlbnRFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR1RleHRDb250ZW50RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBp
c1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDEzICszMywxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBTVkdUZXh0RWxl
bWVudDo6U1ZHVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvYykKLSAgICA6IFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQodGFnTmFtZSwgZG9jKQor
aW5saW5lIFNWR1RleHRFbGVtZW50OjpTVkdUZXh0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBTVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05h
bWVzOjp0ZXh0VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8U1ZHVGV4dEVsZW1lbnQ+IFNWR1RleHRF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
Y3VtZW50KQorUGFzc1JlZlB0cjxTVkdUZXh0RWxlbWVudD4gU1ZHVGV4dEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdUZXh0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgJKHJldmlzaW9uIDE1NTgx
MikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxMiArMjgsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdUZXh0
RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdUZXh0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1RleHRF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2
aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBhbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgY29uc3Q7CiAK
IHByaXZhdGU6Ci0gICAgU1ZHVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CisgICAgU1ZHVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxl
bWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UGF0aEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIEJFR0lOX1JF
R0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHVGUKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5J
TUFURURfUFJPUEVSVElFUyhTVkdUZXh0Q29udGVudEVsZW1lbnQpCiBFTkRfUkVHSVNURVJfQU5J
TUFURURfUFJPUEVSVElFUwogCi1pbmxpbmUgU1ZHVGV4dFBhdGhFbGVtZW50OjpTVkdUZXh0UGF0
aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQoraW5saW5lIFNWR1RleHRQYXRoRWxlbWVudDo6U1ZHVGV4dFBhdGhFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR1RleHRD
b250ZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fc3RhcnRPZmZzZXQoTGVu
Z3RoTW9kZU90aGVyKQogICAgICwgbV9tZXRob2QoU1ZHVGV4dFBhdGhNZXRob2RBbGlnbikKQEAg
LTU2LDcgKzU2LDcgQEAgaW5saW5lIFNWR1RleHRQYXRoRWxlbWVudDo6U1ZHVGV4dFBhdGhFbAog
ICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHVGV4dFBhdGhFbGVtZW50KCk7CiB9
CiAKLVBhc3NSZWZQdHI8U1ZHVGV4dFBhdGhFbGVtZW50PiBTVkdUZXh0UGF0aEVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQ
YXNzUmVmUHRyPFNWR1RleHRQYXRoRWxlbWVudD4gU1ZHVGV4dFBhdGhFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU1ZHVGV4dFBhdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCShyZXZp
c2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTExMCwxMCArMTEwLDEwIEBAIHB1YmxpYzoKICAgICAgICAgVEVY
VFBBVEhfU1BBQ0lOR1RZUEVfRVhBQ1QgPSBTVkdUZXh0UGF0aFNwYWNpbmdFeGFjdAogICAgIH07
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdUZXh0UGF0aEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdU
ZXh0UGF0aEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
ICAKIHByaXZhdGU6Ci0gICAgU1ZHVGV4dFBhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOworICAgIFNWR1RleHRQYXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgflNWR1RleHRQYXRoRWxlbWVudCgpOwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0
aW9uaW5nRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgQkVHSU5f
UkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUyhTVkdUZQogICAgIFJFR0lTVEVSX1BBUkVOVF9B
TklNQVRFRF9QUk9QRVJUSUVTKFNWR1RleHRDb250ZW50RWxlbWVudCkKIEVORF9SRUdJU1RFUl9B
TklNQVRFRF9QUk9QRVJUSUVTCiAKLVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OlNWR1RleHRQ
b3NpdGlvbmluZ0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
IGRvY3VtZW50KQorU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6U1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBTVkdUZXh0Q29udGVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7CiAgICAg
cmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50KCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
LmgJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50KiBlbGVtZW50RnJvbVJlbmRlcmVy
KFJlbmRlck9iamVjdCopOwogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgYm9v
bCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVh
bCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNT
dHJpbmcmKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTMgKzI3LDEzIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotaW5saW5lIFNWR1RpdGxlRWxlbWVudDo6U1ZHVGl0bGVFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBTVkdU
aXRsZUVsZW1lbnQ6OlNWR1RpdGxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZykpOwogfQogCi1Q
YXNzUmVmUHRyPFNWR1RpdGxlRWxlbWVudD4gU1ZHVGl0bGVFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxT
VkdUaXRsZUVsZW1lbnQ+IFNWR1RpdGxlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNWR1RpdGxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMCArMjks
MTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdUaXRsZUVsZW1lbnQgRklOQUwg
OiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZH
VGl0bGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVGl0bGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgU1ZHVGl0bGVFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR1RpdGxlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90
aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSopIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlKikgT1ZFUlJJREU7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVW5rbm93bkVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVW5rbm93bkVsZW1lbnQuaAkocmV2aXNpb24gMTU1ODEy
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vua25vd25FbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQwLDEzICs0MCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBmYWxzZSB0byBt
YWtlIHN1cmUgd2UgZG9uJ3QgYXR0ZW1wdCB0byByZW5kZXIgc3VjaCBlbGVtZW50cy4KIGNsYXNz
IFNWR1Vua25vd25FbGVtZW50IEZJTkFMIDogcHVibGljIFNWR0VsZW1lbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1Vua25vd25FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNWR1Vua25vd25FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTVkdVbmtub3duRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogICAgIH0KIAogcHJp
dmF0ZToKLSAgICBTVkdVbmtub3duRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCisgICAgU1ZHVW5rbm93bkVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICA6IFNWR0VsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdVc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTgxMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdVc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEsNyArODEsNyBAQCBCRUdJ
Tl9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR1VzCiAgICAgUkVHSVNURVJfUEFSRU5U
X0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHR3JhcGhpY3NFbGVtZW50KQogRU5EX1JFR0lTVEVSX0FO
SU1BVEVEX1BST1BFUlRJRVMKIAotaW5saW5lIFNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIHdh
c0luc2VydGVkQnlQYXJzZXIpCitpbmxpbmUgU1ZHVXNlRWxlbWVudDo6U1ZHVXNlRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgd2Fz
SW5zZXJ0ZWRCeVBhcnNlcikKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkKICAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCiAgICAgLCBtX3koTGVuZ3RoTW9kZUhl
aWdodCkKQEAgLTk3LDcgKzk3LDcgQEAgaW5saW5lIFNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVsZW1l
bnQoY29ucwogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHVXNlRWxlbWVudCgp
OwogfQogCi1QYXNzUmVmUHRyPFNWR1VzZUVsZW1lbnQ+IFNWR1VzZUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgd2Fz
SW5zZXJ0ZWRCeVBhcnNlcikKK1Bhc3NSZWZQdHI8U1ZHVXNlRWxlbWVudD4gU1ZHVXNlRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyKQogewogICAgIC8vIEFsd2F5cyBidWlsZCBhICNz
aGFkb3ctcm9vdCBmb3IgU1ZHVXNlRWxlbWVudC4KICAgICBSZWZQdHI8U1ZHVXNlRWxlbWVudD4g
dXNlID0gYWRvcHRSZWYobmV3IFNWR1VzZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIHdhc0lu
c2VydGVkQnlQYXJzZXIpKTsKQEAgLTcyMiw3ICs3MjIsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6
OmV4cGFuZFVzZUVsZW1lbnRzSW5TCiAKICAgICAgICAgLy8gRG9uJ3QgQVNTRVJUKHRhcmdldCkg
aGVyZSwgaXQgbWF5IGJlICJwZW5kaW5nIiwgdG9vLgogICAgICAgICAvLyBTZXR1cCBzdWItc2hh
ZG93IHRyZWUgcm9vdCBub2RlCi0gICAgICAgIFJlZlB0cjxTVkdHRWxlbWVudD4gY2xvbmVQYXJl
bnQgPSBTVkdHRWxlbWVudDo6Y3JlYXRlKFNWR05hbWVzOjpnVGFnLCByZWZlcmVuY2VkRG9jdW1l
bnQoKSk7CisgICAgICAgIFJlZlB0cjxTVkdHRWxlbWVudD4gY2xvbmVQYXJlbnQgPSBTVkdHRWxl
bWVudDo6Y3JlYXRlKFNWR05hbWVzOjpnVGFnLCAqcmVmZXJlbmNlZERvY3VtZW50KCkpOwogICAg
ICAgICB1c2UtPmNsb25lQ2hpbGROb2RlcyhjbG9uZVBhcmVudC5nZXQoKSk7CiAKICAgICAgICAg
Ly8gU3BlYzogSW4gdGhlIGdlbmVyYXRlZCBjb250ZW50LCB0aGUgJ3VzZScgd2lsbCBiZSByZXBs
YWNlZCBieSAnZycsIHdoZXJlIGFsbCBhdHRyaWJ1dGVzIGZyb20gdGhlCkBAIC03NjksNyArNzY5
LDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjpleHBhbmRTeW1ib2xFbGVtZW50cwogICAgICAgICAv
LyBoZWlnaHQgYXJlIHByb3ZpZGVkIG9uIHRoZSAndXNlJyBlbGVtZW50LCB0aGVuIHRoZXNlIGF0
dHJpYnV0ZXMgd2lsbCBiZSB0cmFuc2ZlcnJlZCB0bwogICAgICAgICAvLyB0aGUgZ2VuZXJhdGVk
ICdzdmcnLiBJZiBhdHRyaWJ1dGVzIHdpZHRoIGFuZC9vciBoZWlnaHQgYXJlIG5vdCBzcGVjaWZp
ZWQsIHRoZSBnZW5lcmF0ZWQKICAgICAgICAgLy8gJ3N2ZycgZWxlbWVudCB3aWxsIHVzZSB2YWx1
ZXMgb2YgMTAwJSBmb3IgdGhlc2UgYXR0cmlidXRlcy4KLSAgICAgICAgUmVmUHRyPFNWR1NWR0Vs
ZW1lbnQ+IHN2Z0VsZW1lbnQgPSBTVkdTVkdFbGVtZW50OjpjcmVhdGUoU1ZHTmFtZXM6OnN2Z1Rh
ZywgcmVmZXJlbmNlZERvY3VtZW50KCkpOworICAgICAgICBSZWZQdHI8U1ZHU1ZHRWxlbWVudD4g
c3ZnRWxlbWVudCA9IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZShTVkdOYW1lczo6c3ZnVGFnLCAqcmVm
ZXJlbmNlZERvY3VtZW50KCkpOwogCiAgICAgICAgIC8vIFRyYW5zZmVyIGFsbCBkYXRhIChhdHRy
aWJ1dGVzLCBldGMuKSBmcm9tIDxzeW1ib2w+IHRvIHRoZSBuZXcgPHN2Zz4gZWxlbWVudC4KICAg
ICAgICAgc3ZnRWxlbWVudC0+Y2xvbmVEYXRhRnJvbUVsZW1lbnQoKnRvRWxlbWVudChlbGVtZW50
KSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgJKHJldmlzaW9uIDE1NTgxMikK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTQyLDcgKzQyLDcgQEAgY2xhc3MgU1ZHVXNlRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBTVkdHcgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIENhY2hlZFNWR0RvY3VtZW50Q2xpZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdVc2VFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdVc2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0
dWFsIH5TVkdVc2VFbGVtZW50KCk7CiAKICAgICBTVkdFbGVtZW50SW5zdGFuY2UqIGluc3RhbmNl
Um9vdCgpOwpAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlckNsaXBDaGlsZCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIFNWR1VzZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyKTsK
KyAgICBTVkdVc2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wg
d2FzSW5zZXJ0ZWRCeVBhcnNlcik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0
IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMTMg
KzI5LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIFNWR1ZLZXJuRWxlbWVu
dDo6U1ZHVktlcm5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKK2lubGluZSBTVkdWS2VybkVsZW1lbnQ6OlNWR1ZLZXJuRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05h
bWVzOjp2a2VyblRhZykpOwogfQogCi1QYXNzUmVmUHRyPFNWR1ZLZXJuRWxlbWVudD4gU1ZHVktl
cm5FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
IGRvY3VtZW50KQorUGFzc1JlZlB0cjxTVkdWS2VybkVsZW1lbnQ+IFNWR1ZLZXJuRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
IHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1ZLZXJuRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaAkocmV2aXNp
b24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCwxMiArMjgsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBTVkdWS2VybkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVktlcm5FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVktlcm5FbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2b2lk
IGJ1aWxkVmVydGljYWxLZXJuaW5nUGFpcihLZXJuaW5nUGFpclZlY3RvciYpOwogCiBwcml2YXRl
OgotICAgIFNWR1ZLZXJuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
KyAgICBTVkdWS2VybkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
ICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENv
bnRhaW5lck5vZGUqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29u
dGFpbmVyTm9kZSopIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNTU4MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0Vs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIEJFR0lOX1JFR0lTVEVS
X0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHVmkKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURf
UFJPUEVSVElFUyhTVkdFbGVtZW50KQogRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMK
IAotaW5saW5lIFNWR1ZpZXdFbGVtZW50OjpTVkdWaWV3RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgU1ZHVmlld0VsZW1lbnQ6
OlNWR1ZpZXdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3pv
b21BbmRQYW4oU1ZHWm9vbUFuZFBhbk1hZ25pZnkpCiAgICAgLCBtX3ZpZXdUYXJnZXQoU1ZHTmFt
ZXM6OnZpZXdUYXJnZXRBdHRyKQpAQCAtNTIsNyArNTIsNyBAQCBpbmxpbmUgU1ZHVmlld0VsZW1l
bnQ6OlNWR1ZpZXdFbGVtZW50KGNvCiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JT
VkdWaWV3RWxlbWVudCgpOwogfQogCi1QYXNzUmVmUHRyPFNWR1ZpZXdFbGVtZW50PiBTVkdWaWV3
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKK1Bhc3NSZWZQdHI8U1ZHVmlld0VsZW1lbnQ+IFNWR1ZpZXdFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewog
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHVmlld0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCShyZXZpc2lvbiAxNTU4
MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBTVkdWaWV3RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBT
VkdFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdGaXRUb1ZpZXdCb3gs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdab29tQW5kUGFuIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdWaWV3RWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1Zp
ZXdFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAg
ICB1c2luZyBTVkdFbGVtZW50OjpyZWY7CiAgICAgdXNpbmcgU1ZHRWxlbWVudDo6ZGVyZWY7CkBA
IC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFpvb21BbmRQYW4odW5zaWduZWQg
c2hvcnQgem9vbUFuZFBhbikgeyBtX3pvb21BbmRQYW4gPSBTVkdab29tQW5kUGFuOjpwYXJzZUZy
b21OdW1iZXIoem9vbUFuZFBhbik7IH0KIAogcHJpdmF0ZToKLSAgICBTVkdWaWV3RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBTVkdWaWV3RWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIC8vIEZJWE1FOiBzdmdBdHRyaWJ1
dGVDaGFuZ2VkIG1pc3NpbmcuCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvc3ZndGFncy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvc3ZndGFncy5pbgkocmV2aXNpb24gMTU1ODEy
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4JKHdvcmtpbmcgY29weSkKQEAgLTMs
NiArMyw3IEBAIG5hbWVzcGFjZVVSST0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcKIGd1YXJk
RmFjdG9yeVdpdGg9IkVOQUJMRShTVkcpIgogZmFsbGJhY2tJbnRlcmZhY2VOYW1lPSJTVkdVbmtu
b3duRWxlbWVudCIKIGZhbGxiYWNrSlNJbnRlcmZhY2VOYW1lPSJTVkdFbGVtZW50IgorY29uc3Ry
dWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiAKIGEKICNpZiBFTkFCTEVfU1ZHX0ZPTlRTCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNw
cAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdT
TUlMRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMyw3ICsxMTMsNyBAQCBTVkdTTUlM
RWxlbWVudDo6Q29uZGl0aW9uOjpDb25kaXRpb24oVHlwCiB7CiB9CiAgICAgCi1TVkdTTUlMRWxl
bWVudDo6U1ZHU01JTEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvYykKK1NWR1NNSUxFbGVtZW50OjpTVkdTTUlMRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jKQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBk
b2MpCiAgICAgLCBtX2F0dHJpYnV0ZU5hbWUoYW55UU5hbWUoKSkKICAgICAsIG1fdGFyZ2V0RWxl
bWVudCgwKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVs
ZW1lbnQuaAkocmV2aXNpb24gMTU1ODEyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlv
bi9TVkdTTUlMRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNz
IFNNSUxUaW1lQ29udGFpbmVyOwogLy8gVGhpcyBjbGFzcyBpbXBsZW1lbnRzIFNNSUwgaW50ZXJ2
YWwgdGltaW5nIG1vZGVsIGFzIG5lZWRlZCBmb3IgU1ZHIGFuaW1hdGlvbi4KIGNsYXNzIFNWR1NN
SUxFbGVtZW50IDogcHVibGljIFNWR0VsZW1lbnQgewogcHVibGljOgotICAgIFNWR1NNSUxFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIFNWR1NNSUxFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgflNWR1NNSUxF
bGVtZW50KCk7CiAKICAgICBzdGF0aWMgYm9vbCBpc1NNSUxFbGVtZW50KGNvbnN0IE5vZGUqKTsK
</data>
<flag name="review"
          id="233830"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>