<?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>121666</bug_id>
          
          <creation_ts>2013-09-20 02:43:13 -0700</creation_ts>
          <short_desc>Make createRenderer() return RenderElement</short_desc>
          <delta_ts>2013-09-20 02:58:50 -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>DOM</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>931235</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-09-20 02:43:13 -0700</bug_when>
    <thetext>tighten</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931236</commentid>
    <comment_count>1</comment_count>
      <attachid>212138</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-09-20 02:46:03 -0700</bug_when>
    <thetext>Created attachment 212138
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931239</commentid>
    <comment_count>2</comment_count>
      <attachid>212138</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-20 02:47:34 -0700</bug_when>
    <thetext>Comment on attachment 212138
patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931242</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-09-20 02:58:50 -0700</bug_when>
    <thetext>https://trac.webkit.org/r156147</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212138</attachid>
            <date>2013-09-20 02:46:03 -0700</date>
            <delta_ts>2013-09-20 02:47:33 -0700</delta_ts>
            <desc>patch</desc>
            <filename>createrenderer-renderelement.patch</filename>
            <type>text/plain</type>
            <size>86411</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjE0NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTA5LTIwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGNyZWF0ZVJlbmRlcmVy
KCkgcmV0dXJuIFJlbmRlckVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMTY2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorICAgICAgICAKKyAgICAgICAgVGlnaHRlciB0eXBpbmcuCisKIDIwMTMtMDktMjAgIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBjb3ZhcmlhbnQg
UmVuZGVyRWxlbWVudCogRWxlbWVudDo6cmVuZGVyZXIoKQpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjYyLDcgKzEyNjIsNyBAQCBib29sIEVsZW1lbnQ6OnJlbmRl
cmVySXNOZWVkZWQoY29uc3QgUmVuCiAgICAgcmV0dXJuIHN0eWxlLmRpc3BsYXkoKSAhPSBOT05F
OwogfQogCi1SZW5kZXJPYmplY3QqIEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
JiwgUmVuZGVyU3R5bGUmIHN0eWxlKQorUmVuZGVyRWxlbWVudCogRWxlbWVudDo6Y3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7CiAgICAgcmV0dXJuIFJl
bmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgc3R5bGUpOwogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oCShyZXZpc2lvbiAxNTYxNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMDQsNyArMzA0LDcgQEAgcHVibGljOgogICAgIHZvaWQgbGF6
eUF0dGFjaChTaG91bGRTZXRBdHRhY2hlZCA9IFNldEF0dGFjaGVkKTsKICAgICB2b2lkIGxhenlS
ZWF0dGFjaChTaG91bGRTZXRBdHRhY2hlZCA9IFNldEF0dGFjaGVkKTsKIAotICAgIHZpcnR1YWwg
UmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7
CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYs
IFJlbmRlclN0eWxlJik7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmKTsKICAgICB2b2lkIGRpZEFmZmVjdFNlbGVjdG9yKEFmZmVjdGVkU2VsZWN0
b3JNYXNrKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5
cGUuY3BwCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0
b25JbnB1dFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIGJvb2wgQmFz
ZUJ1dHRvbklucHV0VHlwZTo6YXBwZW5kRm9ybURhdGEKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LVJlbmRlck9iamVjdCogQmFzZUJ1dHRvbklucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpIGNvbnN0CitSZW5kZXJFbGVtZW50KiBCYXNlQnV0
dG9uSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0
eWxlJikgY29uc3QKIHsKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyQnV0dG9uKGVsZW1l
bnQoKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUu
aAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5w
dXRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgcHJvdGVjdGVkOgogcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2F2ZUFuZFJlc3RvcmVGb3JtQ29udHJvbFN0
YXRlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZv
cm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUmVuZGVyT2Jq
ZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJikgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSYsIFJlbmRlclN0eWxlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHN0
b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3Ip
IE9WRVJSSURFOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAko
cmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6
aGFuZGxlRE9NQWN0aXZhdGVFdmUKICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0K
IAotUmVuZGVyT2JqZWN0KiBGaWxlSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSYgYXJlbmEsIFJlbmRlclN0eWxlJikgY29uc3QKK1JlbmRlckVsZW1lbnQqIEZpbGVJbnB1dFR5
cGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKSBjb25z
dAogewogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbChlbGVt
ZW50KCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgJKHJldmlzaW9u
IDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHZhbHVl
TWlzc2luZyhjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmlu
ZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGhh
bmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFJlbmRl
ck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCBjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBj
YW5DaGFuZ2VGcm9tQW5vdGhlclR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIEZp
bGVMaXN0KiBmaWxlcygpIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXBwbGV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXBwbGV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3IEBA
IGJvb2wgSFRNTEFwcGxldEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQKICAgICByZXR1cm4gSFRN
TFBsdWdJbkltYWdlRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7CiB9CiAKLVJlbmRl
ck9iamVjdCogSFRNTEFwcGxldEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwg
UmVuZGVyU3R5bGUmIHN0eWxlKQorUmVuZGVyRWxlbWVudCogSFRNTEFwcGxldEVsZW1lbnQ6OmNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmIHN0eWxlKQogewogICAgIGlm
ICghY2FuRW1iZWRKYXZhKCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVG
b3IoKnRoaXMsIHN0eWxlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVt
ZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxl
dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFJlbmRl
ck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEmLCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBSZW5kZXJXaWRnZXQq
IHJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlV2lkZ2V0KFBsdWdpbkNyZWF0aW9uT3B0aW9uKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQlJFbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsNyArNzEs
NyBAQCB2b2lkIEhUTUxCUkVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlCiAgICAgICAgIEhU
TUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFs
dWUsIHN0eWxlKTsKIH0KIAotUmVuZGVyT2JqZWN0KiBIVE1MQlJFbGVtZW50OjpjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJiBzdHlsZSkKK1JlbmRlckVsZW1l
bnQqIEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVu
ZGVyU3R5bGUmIHN0eWxlKQogewogICAgIGlmIChzdHlsZS5oYXNDb250ZW50KCkpCiAgICAgICAg
IHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0eWxlKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqKSBPVkVSUklERTsK
IAotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYs
IFJlbmRlclN0eWxlJik7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1
NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgSFRNTEJ1dHRvbkVsZW1lbnQ6OnNldFR5
cGUoY29uc3QgQXQKICAgICBzZXRBdHRyaWJ1dGUodHlwZUF0dHIsIHR5cGUpOwogfQogCi1SZW5k
ZXJPYmplY3QqIEhUTUxCdXR0b25FbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYg
YXJlbmEsIFJlbmRlclN0eWxlJikKK1JlbmRlckVsZW1lbnQqIEhUTUxCdXR0b25FbGVtZW50Ojpj
cmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKIHsKICAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyQnV0dG9uKCp0aGlzKTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDUs
NyArNDUsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZv
cm1Db250cm9sVHlwZSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKKyAgICB2aXJ0dWFsIFJlbmRl
ckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKIAog
ICAgIC8vIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgYWx3YXlzIGNyZWF0ZXMgb25lLCBidXQgYnV0
dG9ucyBkb24ndCBuZWVkIGl0LgogICAgIHZpcnR1YWwgYm9vbCBhbHdheXNDcmVhdGVVc2VyQWdl
bnRTaGFkb3dSb290KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYxNDMp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGMKICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwog
fQogCi1SZW5kZXJPYmplY3QqIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJiBzdHlsZSkKK1JlbmRlckVsZW1lbnQqIEhUTUxD
YW52YXNFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0
eWxlJiBzdHlsZSkKIHsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CiAg
ICAgaWYgKGZyYW1lICYmIGZyYW1lLT5zY3JpcHQoKS5jYW5FeGVjdXRlU2NyaXB0cyhOb3RBYm91
dFRvRXhlY3V0ZVNjcmlwdCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDcgKzE0Niw3IEBAIHByaXZhdGU6
CiAgICAgSFRNTENhbnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0
KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CisgICAgdmlydHVh
bCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxl
Jik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxBdHRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgYXJlQXV0aG9yU2hhZG93c0FsbG93ZWQoKSBjb25zdCBPVkVSUklERTsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAkocmV2
aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNyArMTEyLDcgQEAgSFRNTERldGFpbHNFbGVtZW50
OjpIVE1MRGV0YWlsc0VsZW1lbnQoYwogICAgIEFTU0VSVChoYXNUYWdOYW1lKGRldGFpbHNUYWcp
KTsKIH0KIAotUmVuZGVyT2JqZWN0KiBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVyRWxlbWVudCogSFRNTERl
dGFpbHNFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0
eWxlJikKIHsKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyQmxvY2tGbG93KHRoaXMpOwog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCShyZXZpc2lv
biAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRN
TERldGFpbHNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAg
dmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVy
U3R5bGUmKTsKKyAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjb25zdCBOb2RlKikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
KSBPVkVSUklERTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03ODgsNyArNzg4LDcgQEAgYm9vbCBIVE1MRWxlbWVudDo6cmVuZGVyZXJJ
c05lZWRlZChjb25zdAogICAgIHJldHVybiBTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVk
KHN0eWxlKTsKIH0KIAotUmVuZGVyT2JqZWN0KiBIVE1MRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIo
UmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYgc3R5bGUpCitSZW5kZXJFbGVtZW50KiBI
VE1MRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHls
ZSYgc3R5bGUpCiB7CiAgICAgaWYgKGhhc0xvY2FsTmFtZSh3YnJUYWcpKQogICAgICAgICByZXR1
cm4gbmV3IChhcmVuYSkgUmVuZGVyTGluZUJyZWFrKCp0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpZUZvcmJpZHNJbnNlcnRIVE1MKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpOwotICAgIHZpcnR1YWwgUmVuZGVy
T2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CisgICAg
dmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRl
clN0eWxlJik7CiAKICAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCB7IHJldHVybiB2
aXJ0dWFsRm9ybSgpOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRT
ZXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRmllbGRTZXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsNyArODMsNyBAQCBj
b25zdCBBdG9taWNTdHJpbmcmIEhUTUxGaWVsZFNldEVsZW1lbnQ6CiAgICAgcmV0dXJuIGZpZWxk
c2V0OwogfQogCi1SZW5kZXJPYmplY3QqIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVyRWxlbWVudCogSFRN
TEZpZWxkU2V0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5k
ZXJTdHlsZSYpCiB7CiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckZpZWxkc2V0KCp0aGlz
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCShy
ZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBS
ZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsK
KyAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwg
UmVuZGVyU3R5bGUmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRy
b2xUeXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHJlY2FsY1dpbGxWYWxpZGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChj
b25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBA
IGJvb2wgSFRNTEZyYW1lRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCgKICAgICByZXR1cm4gaXNV
UkxBbGxvd2VkKCk7CiB9CiAKLVJlbmRlck9iamVjdCogSFRNTEZyYW1lRWxlbWVudDo6Y3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCitSZW5kZXJFbGVtZW50
KiBIVE1MRnJhbWVFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJl
bmRlclN0eWxlJikKIHsKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyRnJhbWUoKnRoaXMp
OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgJKHJldmlzaW9u
IDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEF0dGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKLSAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCog
Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOworICAgIHZpcnR1YWwg
UmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYp
OwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MTQzKQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTU2LDcgKzE1Niw3IEBAIGJvb2wgSFRNTEZyYW1lU2V0RWxlbWVudDo6cmVuZGVyZXJJ
c05lZWQKICAgICByZXR1cm4gc3R5bGUuaXNTdHlsZUF2YWlsYWJsZSgpOwogfQogCi1SZW5kZXJP
YmplY3QqIEhUTUxGcmFtZVNldEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBh
cmVuYSwgUmVuZGVyU3R5bGUmIHN0eWxlKQorUmVuZGVyRWxlbWVudCogSFRNTEZyYW1lU2V0RWxl
bWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYgc3R5
bGUpCiB7CiAgICAgaWYgKHN0eWxlLmhhc0NvbnRlbnQoKSkKICAgICAgICAgcmV0dXJuIFJlbmRl
ckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgc3R5bGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3
ICs3NSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVy
cygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJl
bmRlclN0eWxlJik7Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKKyAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKICAgICAKICAgICB2aXJ0
dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MTQzKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTk1LDcgKzk1LDcgQEAgYm9vbCBIVE1MSUZyYW1lRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZAog
ICAgIHJldHVybiBpc1VSTEFsbG93ZWQoKSAmJiBzdHlsZS5kaXNwbGF5KCkgIT0gTk9ORTsKIH0K
IAotUmVuZGVyT2JqZWN0KiBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCitSZW5kZXJFbGVtZW50KiBIVE1MSUZyYW1lRWxl
bWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCiB7
CiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlcklGcmFtZSgqdGhpcyk7CiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCShyZXZpc2lvbiAxNTYxNDMpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQyLDcgKzQyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJSSURFOwogCiAgICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKLSAgICB2aXJ0
dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHls
ZSYpOworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEmLCBSZW5kZXJTdHlsZSYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2FsY1N0eWxlKFN0
eWxlOjpDaGFuZ2UpIE9WRVJSSURFOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDcgKzE2Myw3IEBA
IFN0cmluZyBIVE1MSW1hZ2VFbGVtZW50OjphbHRUZXh0KCkgY29uc3QKICAgICByZXR1cm4gYWx0
OwogfQogCi1SZW5kZXJPYmplY3QqIEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmIHN0eWxlKQorUmVuZGVyRWxlbWVudCogSFRN
TEltYWdlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJT
dHlsZSYgc3R5bGUpCiB7CiAgICAgaWYgKHN0eWxlLmhhc0NvbnRlbnQoKSkKICAgICAgICAgcmV0
dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgc3R5bGUpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw3
ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFJlbmRlck9iamVj
dCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOworICAgIHZpcnR1
YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHls
ZSYpOwogCiAgICAgdmlydHVhbCBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3Q7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU2
MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzkyLDcgKzc5Miw3IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6cmVuZGVy
ZXJJc05lZWRlZCgKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnJlbmRlcmVySXNOZWVkZWQoKSAm
JiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7CiB9
CiAKLVJlbmRlck9iamVjdCogSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYgc3R5bGUpCitSZW5kZXJFbGVtZW50KiBIVE1MSW5w
dXRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxl
JiBzdHlsZSkKIHsKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmNyZWF0ZVJlbmRlcmVyKGFyZW5h
LCBzdHlsZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAko
cmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw3ICsxODgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBj
YW5IYXZlU2VsZWN0aW9uKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05l
ZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpOwotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CisgICAgdmlydHVhbCBSZW5k
ZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CiAg
ICAgdmlydHVhbCB2b2lkIHdpbGxBdHRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGRpZERldGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTUsNyArNTU1
LDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKAogI2VuZGlmCiB9
CiAKLVJlbmRlck9iamVjdCogSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCitSZW5kZXJFbGVtZW50KiBIVE1MTWVkaWFFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKIHsK
ICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICAgICAvLyBTZXR1cCB0aGUgcmVu
ZGVyZXIgaWYgd2UgYWxyZWFkeSBoYXZlIGEgcHJveHkgd2lkZ2V0LgpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MzQsNyAr
NDM0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5
bGUmKTsKLSAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEmLCBSZW5kZXJTdHlsZSYpOworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOwogICAgIHZpcnR1YWwgYm9vbCBjaGls
ZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5l
ck5vZGUqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVy
Tm9kZSopIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRl
ckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIFBhc3NSZWZQdHI8
SFRNTE1ldGVyRWxlbWVudD4gSFRNTE1ldGVyRWwKICAgICByZXR1cm4gbWV0ZXI7CiB9CiAKLVJl
bmRlck9iamVjdCogSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEm
IGFyZW5hLCBSZW5kZXJTdHlsZSYgc3R5bGUpCitSZW5kZXJFbGVtZW50KiBIVE1MTWV0ZXJFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJiBzdHls
ZSkKIHsKICAgICBpZiAoaGFzQXV0aG9yU2hhZG93Um9vdCgpIHx8ICFkb2N1bWVudCgpLnBhZ2Uo
KS0+dGhlbWUoKS0+c3VwcG9ydHNNZXRlcihzdHlsZS5hcHBlYXJhbmNlKCkpKQogICAgICAgICBy
ZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBzdHlsZSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAkocmV2aXNpb24gMTU2MTQzKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTcy
LDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgYm9vbCByZWNhbGNX
aWxsVmFsaWRhdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgUmVuZGVy
T2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CisgICAg
dmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRl
clN0eWxlJik7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29u
c3QgTm9kZSopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNw
cAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk0LDcgKzE5NCw3IEBAIGJvb2wgSFRN
TFBsdWdJbkltYWdlRWxlbWVudDo6d291bGRMb2FkQXMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LVJlbmRlck9iamVjdCogSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYgc3R5bGUpCitSZW5kZXJFbGVtZW50KiBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJl
bmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICAvLyBPbmNlIGEgUGx1Z0luIEVsZW1lbnQgY3JlYXRl
cyBpdHMgcmVuZGVyZXIsIGl0IG5lZWRzIHRvIGJlIHRvbGQgd2hlbiB0aGUgRG9jdW1lbnQgZ29l
cwogICAgIC8vIGluYWN0aXZlIG9yIHJlYWN0aXZhdGVzIHNvIGl0IGNhbiBjbGVhciB0aGUgcmVu
ZGVyZXIgYmVmb3JlIGdvaW5nIGludG8gdGhlIHBhZ2UgY2FjaGUuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAkocmV2aXNpb24gMTU2MTQzKQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEyNSw3ICsxMjUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIGlz
UmVzdGFydGVkUGx1Z2luKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9pc1Jlc3RhcnRlZFBs
dWdpbjsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBS
ZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHdpbGxSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdl
KSBPVkVSUklERTsKIAogICAgIHZvaWQgZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dS
b290KikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgUGFz
c1JlZlB0cjxIVE1MUHJvZ3Jlc3NFbGVtZW50PiBIVE1MUHJvZwogICAgIHJldHVybiBwcm9ncmVz
cy5yZWxlYXNlKCk7CiB9CiAKLVJlbmRlck9iamVjdCogSFRNTFByb2dyZXNzRWxlbWVudDo6Y3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYgc3R5bGUpCitSZW5k
ZXJFbGVtZW50KiBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSYgYXJlbmEsIFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICBpZiAoIXN0eWxlLmhhc0FwcGVh
cmFuY2UoKSB8fCBoYXNBdXRob3JTaGFkb3dSb290KCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJF
bGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0eWxlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyAr
NTQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBlYXJJbmRldGVybWlu
YXRlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRMYWJlbHMoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIFJlbmRlck9iamVj
dCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOworICAgIHZpcnR1
YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHls
ZSYpOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5v
ZGUqKSBjb25zdCBPVkVSUklERTsKICAgICBSZW5kZXJQcm9ncmVzcyogcmVuZGVyUHJvZ3Jlc3Mo
KSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5j
cHAJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzcsNyArMzM3LDcgQEAgYm9vbCBIVE1MU2Vs
ZWN0RWxlbWVudDo6Y2FuU2VsZWN0QWxsKCkgYwogICAgIHJldHVybiAhdXNlc01lbnVMaXN0KCk7
CiB9CiAKLVJlbmRlck9iamVjdCogSFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVyRWxlbWVudCogSFRNTFNlbGVj
dEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUm
KQogewogICAgIGlmICh1c2VzTWVudUxpc3QoKSkKICAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEp
IFJlbmRlck1lbnVMaXN0KCp0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDcgKzEyOSw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3Vs
ZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYp
OworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEm
LCBSZW5kZXJTdHlsZSYpOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0
YUxpc3QmLCBib29sKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MTQzKQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02Niw3ICs2Niw3IEBAIEhUTUxTdW1tYXJ5RWxlbWVudDo6SFRNTFN1bW1hcnlFbGVt
ZW50KGMKICAgICBBU1NFUlQoaGFzVGFnTmFtZShzdW1tYXJ5VGFnKSk7CiB9CiAKLVJlbmRlck9i
amVjdCogSFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJl
bmEsIFJlbmRlclN0eWxlJikKK1JlbmRlckVsZW1lbnQqIEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCiB7CiAgICAgcmV0
dXJuIG5ldyAoYXJlbmEpIFJlbmRlckJsb2NrRmxvdyh0aGlzKTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaAkocmV2aXNpb24gMTU2MTQzKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzYsNyArMzYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxTdW1tYXJ5RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyT2Jq
ZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CisgICAgdmly
dHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0
eWxlJik7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3Qg
Tm9kZSopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmNwcAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA4LDcgKzIwOCw3IEBAIHZv
aWQgSFRNTFRleHRBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUKICAgICAgICAgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAotUmVu
ZGVyT2JqZWN0KiBIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSYgYXJlbmEsIFJlbmRlclN0eWxlJikKK1JlbmRlckVsZW1lbnQqIEhUTUxUZXh0QXJlYUVsZW1l
bnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQogewog
ICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZSgqdGhpcyk7
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAkocmV2
aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSYsIFJlbmRlclN0eWxlJik7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CiAgICAgdmlydHVhbCBib29sIGFwcGVu
ZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCByZXNldCgp
OwogICAgIHZpcnR1YWwgYm9vbCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QgT1ZFUlJJREU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJKHJldmlzaW9u
IDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAgYm9vbCBIVE1MVmlkZW9FbGVtZW50OjpyZW5k
ZXJlcklzTmVlZGVkKAogfQogCiAjaWYgIUVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQot
UmVuZGVyT2JqZWN0KiBIVE1MVmlkZW9FbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSYgYXJlbmEsIFJlbmRlclN0eWxlJikKK1JlbmRlckVsZW1lbnQqIEhUTUxWaWRlb0VsZW1lbnQ6
OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQogewogICAg
IHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJWaWRlbygqdGhpcyk7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcg
Kzc2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNv
bnN0IFJlbmRlclN0eWxlJik7CiAjaWYgIUVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQot
ICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJl
bmRlclN0eWxlJik7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZGlk
QXR0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAJKHJldmlzaW9uIDE1
NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzIsNyArNzIsNyBAQCBib29sIEhpZGRlbklucHV0VHlwZTo6c3VwcG9ydHNW
YWxpZGF0aW9uCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SZW5kZXJPYmplY3QqIEhpZGRlbklu
cHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpIGNvbnN0
CitSZW5kZXJFbGVtZW50KiBIaWRkZW5JbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hJiwgUmVuZGVyU3R5bGUmKSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIHJldHVybiAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCShy
ZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBG
b3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9s
U3RhdGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNWYWxpZGF0aW9uKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUm
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wg
c2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05l
ZWRlZCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJv
bUF0dHJpYnV0ZSgpIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0
VHlwZS5jcHAJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJ
bnB1dFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBJbWFn
ZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdgogICAgIGV2ZW50LT5zZXREZWZhdWx0SGFu
ZGxlZCgpOwogfQogCi1SZW5kZXJPYmplY3QqIEltYWdlSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikgY29uc3QKK1JlbmRlckVsZW1lbnQq
IEltYWdlSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRl
clN0eWxlJikgY29uc3QKIHsKICAgICBSZW5kZXJJbWFnZSogaW1hZ2UgPSBuZXcgKGFyZW5hKSBS
ZW5kZXJJbWFnZSgmZWxlbWVudCgpKTsKICAgICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJjZShSZW5k
ZXJJbWFnZVJlc291cmNlOjpjcmVhdGUoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlSW5wdXRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdl
SW5wdXRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIGJvb2wgaXNGb3JtRGF0YUFwcGVuZGFibGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmFsaWRhdGlvbigpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSYsIFJlbmRlclN0eWxlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJF
bGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJikgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQq
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWx0QXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBzcmNBdHRyaWJ1dGVDaGFuZ2VkKCkgT1ZFUlJJREU7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2OCw3ICs0
NjgsNyBAQCBQYXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gSW5wdXRUeXBlOjpmCiAgICAgcmV0
dXJuIGVsZW1lbnQoKS5mb3JtKCk7CiB9CiAKLVJlbmRlck9iamVjdCogSW5wdXRUeXBlOjpjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKK1JlbmRl
ckVsZW1lbnQqIElucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJT
dHlsZSYgc3R5bGUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZv
cihlbGVtZW50KCksIHN0eWxlKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAkocmV2
aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjM2LDcgKzIzNiw3IEBAIHB1YmxpYzoKICAgICAvLyBNaXNjZWxsYW5lb3Vz
IGZ1bmN0aW9ucwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoKTsKLSAgICB2
aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJT
dHlsZSYpIGNvbnN0OworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIo
UmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhZGRT
ZWFyY2hSZXN1bHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CiAgICAgdmlydHVhbCB2
b2lkIGRldGFjaCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAJ
KHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZQogICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290
KCktPmFwcGVuZENoaWxkKGNvbnRhaW5lci5yZWxlYXNlKCksIElHTk9SRV9FWENFUFRJT04pOwog
fQogCi1SZW5kZXJPYmplY3QqIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikgY29uc3QKK1JlbmRlckVsZW1lbnQqIFJhbmdlSW5w
dXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikg
Y29uc3QKIHsKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU2xpZGVyKCZlbGVtZW50KCkp
OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaAkocmV2aXNpb24gMTU2
MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICNlbmRpZgogICAgIHZpcnR1
YWwgdm9pZCBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCopIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRl
clN0eWxlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJikgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIERlY2ltYWwgcGFyc2VUb051bWJlcihjb25zdCBTdHJpbmcmLCBjb25zdCBEZWNpbWFsJikg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgc2VyaWFsaXplKGNvbnN0IERlY2lt
YWwmKSBjb25zdCBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5w
dXRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0
VHlwZS5jcHAJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNo
SW5wdXRUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksNyBAQCB2b2lkIFNlYXJj
aElucHV0VHlwZTo6YWRkU2VhcmNoUmVzdWx0KCkKICAgICAgICAgdG9SZW5kZXJTZWFyY2hGaWVs
ZChyZW5kZXJlciktPmFkZFNlYXJjaFJlc3VsdCgpOwogfQogCi1SZW5kZXJPYmplY3QqIFNlYXJj
aElucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHls
ZSYpIGNvbnN0CitSZW5kZXJFbGVtZW50KiBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKSBjb25zdAogewogICAgIHJldHVybiBu
ZXcgKGFyZW5hKSBSZW5kZXJTZWFyY2hGaWVsZChlbGVtZW50KCkpOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0
OSw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGFkZFNlYXJjaFJlc3VsdCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUmVuZGVyT2Jq
ZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJikgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSYsIFJlbmRlclN0eWxlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRSZXNwZWN0U3BlZWNoQXR0cmlidXRlKCkgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAJKHJldmlzaW9uIDE1NjE0MykKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjAxLDcgKzIwMSw3IEBAIGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjpzaG91bGRTdWJt
aXRJbXAKICAgICByZXR1cm4gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnRleHRJbnB1
dEV2ZW50ICYmIGV2ZW50LT5oYXNJbnRlcmZhY2UoZXZlbnROYW1lcygpLmludGVyZmFjZUZvclRl
eHRFdmVudCkgJiYgc3RhdGljX2Nhc3Q8VGV4dEV2ZW50Kj4oZXZlbnQpLT5kYXRhKCkgPT0gIlxu
IikgfHwgSW5wdXRUeXBlOjpzaG91bGRTdWJtaXRJbXBsaWNpdGx5KGV2ZW50KTsKIH0KIAotUmVu
ZGVyT2JqZWN0KiBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
JiBhcmVuYSwgUmVuZGVyU3R5bGUmKSBjb25zdAorUmVuZGVyRWxlbWVudCogVGV4dEZpZWxkSW5w
dXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikg
Y29uc3QKIHsKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lKGVsZW1lbnQoKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElu
cHV0VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZp
ZWxkSW5wdXRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoQmVmb3JlVGV4
dEluc2VydGVkRXZlbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZm9yd2FyZEV2ZW50
KEV2ZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN1Ym1pdEltcGxpY2l0
bHkoRXZlbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJT
dHlsZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VJbnB1dE1l
dGhvZCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXplVmFsdWUo
Y29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJl
c3BlY3RMaXN0QXR0cmlidXRlKCkgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCShyZXZpc2lvbiAxNTYx
NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgRGV0YWlsc01hcmtlckNvbnRyb2w6
OkRldGFpbHNNYXJrZXJDb250cgogewogfQogCi1SZW5kZXJPYmplY3QqIERldGFpbHNNYXJrZXJD
b250cm9sOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikK
K1JlbmRlckVsZW1lbnQqIERldGFpbHNNYXJrZXJDb250cm9sOjpjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKIHsKICAgICByZXR1cm4gbmV3IChhcmVuYSkg
UmVuZGVyRGV0YWlsc01hcmtlcigqdGhpcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmgJKHJldmlzaW9uIDE1NjE0MykK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBEZXRh
aWxzTWFya2VyQ29udHJvbChEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJPYmplY3Qq
IGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKKyAgICB2aXJ0dWFs
IFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUm
KTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYp
OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNyw3
ICszMzcsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVuCiAgICAg
fQogfQogCi1SZW5kZXJPYmplY3QqIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVu
dDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCitSZW5k
ZXJFbGVtZW50KiBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQogewogICAgIHJldHVybiBu
ZXcgKGFyZW5hKSBSZW5kZXJNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lcih0aGlzKTsKIH0K
QEAgLTM1Niw3ICszNTYsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNv
bnRhCiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwogfQogCi1SZW5kZXJPYmplY3QqIE1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVyRWxlbWVudCogTWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCiB7CiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRl
ck1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyKHRoaXMpOwogfQpAQCAtMTIwOSw3ICsxMjA5LDcg
QEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZQogICAgIHJldHVybiBl
bGVtZW50LnJlbGVhc2UoKTsKIH0KIAotUmVuZGVyT2JqZWN0KiBNZWRpYUNvbnRyb2xUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJl
bmRlclN0eWxlJikKK1JlbmRlckVsZW1lbnQqIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5l
ckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUm
KQogewogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50KHRoaXMpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTIsNyArMTEyLDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUaW1lbGlu
ZUNvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgUmVu
ZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSYsIFJlbmRlclN0eWxlJikgT1ZFUlJJREU7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCkBAIC0xMjksNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURFOwogCi0gICAg
dmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVy
U3R5bGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKIH07CiAKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ1NSw3ICs0NTUsNyBAQCBwcml2YXRlOgogICAg
IGV4cGxpY2l0IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQm
KTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25z
dCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBj
cmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CiAKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8SW1hZ2U+IGNyZWF0ZVRleHRUcmFja1JlcHJlc2VudGF0aW9uSW1hZ2UoKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHND
aGFuZ2VkKGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MTQz
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBAQCBib29sIE1ldGVySW5uZXJFbGVtZW50Ojpy
ZW5kZXJlcklzTmVlZGVkCiAgICAgcmV0dXJuIHJlbmRlciAmJiAhcmVuZGVyLT50aGVtZSgpLT5z
dXBwb3J0c01ldGVyKHJlbmRlci0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpKSAmJiBIVE1MRGl2RWxl
bWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7CiB9CiAKLVJlbmRlck9iamVjdCogTWV0ZXJJ
bm5lckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5
bGUmKQorUmVuZGVyRWxlbWVudCogTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQogewogICAgIHJldHVybiBuZXcgKGFyZW5h
KSBSZW5kZXJNZXRlcih0aGlzKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01ldGVyU2hhZG93RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIE1ldGVySW5uZXJFbGVtZW50KERvY3VtZW50
Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJF
bGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJikgT1ZFUlJJ
REU7CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0cjxNZXRlcklubmVyRWxlbWVudD4gTWV0ZXJJbm5l
ckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgUHJvZ3Jlc3NJbm5l
ckVsZW1lbnQ6OlByb2dyZXNzSW5uZXJFbGVtZQogewogfQogCi1SZW5kZXJPYmplY3QqIFByb2dy
ZXNzSW5uZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRl
clN0eWxlJikKK1JlbmRlckVsZW1lbnQqIFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKIHsKICAgICByZXR1cm4gbmV3
IChhcmVuYSkgUmVuZGVyUHJvZ3Jlc3ModGhpcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaAkocmV2aXNpb24gMTU2
MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBQcm9ncmVzc0lubmVyRWxlbWVudChEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJP
YmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
JiwgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05l
ZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYxNDMp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMjAsNyArMjIwLDcgQEAgdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6
OnNldFBvc2l0aW9uRnJvbQogICAgICAgICByZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCh0cnVl
KTsKIH0KIAotUmVuZGVyT2JqZWN0KiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVyRWxlbWVudCogU2xpZGVy
VGh1bWJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0
eWxlJikKIHsKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU2xpZGVyVGh1bWIodGhpcyk7
CiB9CkBAIC00NTQsNyArNDU0LDcgQEAgUGFzc1JlZlB0cjxTbGlkZXJDb250YWluZXJFbGVtZW50
PiBTbGlkZQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2xpZGVyQ29udGFpbmVyRWxlbWVudChk
b2N1bWVudCkpOwogfQogCi1SZW5kZXJPYmplY3QqIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVyRWxl
bWVudCogU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEm
IGFyZW5hLCBSZW5kZXJTdHlsZSYpCiB7CiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclNs
aWRlckNvbnRhaW5lcih0aGlzKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NsaWRlclRodW1iRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2xpZGVyVGh1bWJFbGVt
ZW50KERvY3VtZW50Jik7Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKKyAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQq
IGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGls
ZHJlbigpOwogICAgIHZpcnR1YWwgYm9vbCBpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRPbmx5UHNldWRvQ2xhc3MoKSBj
b25zdCBPVkVSUklERTsKQEAgLTExMyw3ICsxMTMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgU2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgUmVuZGVy
T2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CisgICAg
dmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRl
clN0eWxlJik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lk
KCkgY29uc3Q7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29u
dHJvbElubmVyRWxlbWVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAJKHJldmlzaW9uIDE1NjE0MykKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgUGFzc1JlZlB0cjxUZXh0Q29udHJvbElu
bmVyQ29udGFpbmVyPiBUZQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dENvbnRyb2xJbm5l
ckNvbnRhaW5lcihkb2N1bWVudCkpOwogfQogICAgIAotUmVuZGVyT2JqZWN0KiBUZXh0Q29udHJv
bElubmVyQ29udGFpbmVyOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRl
clN0eWxlJikKK1JlbmRlckVsZW1lbnQqIFRleHRDb250cm9sSW5uZXJDb250YWluZXI6OmNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQogewogICAgIHJldHVy
biBuZXcgKGFyZW5hKSBSZW5kZXJUZXh0Q29udHJvbElubmVyQ29udGFpbmVyKHRoaXMpOwogfQpA
QCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpkZWZh
dWwKICAgICAgICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwog
fQogCi1SZW5kZXJPYmplY3QqIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCitSZW5kZXJFbGVtZW50KiBU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBh
cmVuYSwgUmVuZGVyU3R5bGUmKQogewogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUZXh0
Q29udHJvbElubmVyQmxvY2sodGhpcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAkocmV2aXNpb24gMTU2
MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1l
bnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJDb250YWluZXI+IGNyZWF0ZShEb2N1bWVudCYp
OwogcHJvdGVjdGVkOgogICAgIFRleHRDb250cm9sSW5uZXJDb250YWluZXIoRG9jdW1lbnQmKTsK
LSAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBS
ZW5kZXJTdHlsZSYpOworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIo
UmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOwogfTsKIAogY2xhc3MgVGV4dENvbnRyb2xJbm5l
ckVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewpAQCAtNjMsNyArNjMsNyBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50KERv
Y3VtZW50Jik7Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKKyAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8UmVuZGVyU3R5bGU+IGN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IGZhbHNlOyB9CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tD
dWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlLmNwcAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzcsNyArMTc3LDcgQEAgY29uc3Qg
QXRvbWljU3RyaW5nJiBUZXh0VHJhY2tDdWVCb3g6OnRleAogICAgIHJldHVybiB0cmFja0Rpc3Bs
YXlCb3hTaGFkb3dQc2V1ZG9JZDsKIH0KIAotUmVuZGVyT2JqZWN0KiBUZXh0VHJhY2tDdWVCb3g6
OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVy
RWxlbWVudCogVGV4dFRyYWNrQ3VlQm94OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJl
bmEsIFJlbmRlclN0eWxlJikKIHsKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGV4dFRy
YWNrQ3VlKHRoaXMpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2tDdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZS5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBUZXh0VHJhY2tDdWVCb3goRG9jdW1lbnQmLCBUZXh0VHJhY2tDdWUqKTsK
IAotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYs
IFJlbmRlclN0eWxlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJikgT1ZFUlJJREU7CiAKICAgICBU
ZXh0VHJhY2tDdWUqIG1fY3VlOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjE0
MykKKysrIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBQYXNzUmVmUHRyPE1hdGhNTElu
bGluZUNvbnRhaW5lckVsZW1lbnQ+CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNYXRoTUxJbmxp
bmVDb250YWluZXJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLVJlbmRlck9iamVj
dCogTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCitSZW5kZXJFbGVtZW50KiBNYXRoTUxJbmxpbmVDb250
YWluZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0
eWxlJikKIHsKICAgICBpZiAoaGFzTG9jYWxOYW1lKG1yb3dUYWcpKQogICAgICAgICByZXR1cm4g
bmV3IChhcmVuYSkgUmVuZGVyTWF0aE1MUm93KHRoaXMpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oCShyZXZpc2lv
biAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVy
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIHByb3RlY3RlZDoKICAg
ICBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKKyAgICB2aXJ0dWFsIFJl
bmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsK
IH07CiAgICAgCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxl
bWVudC5jcHAJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxNYXRoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgTm9kZTo6
SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBNYXRoTQogICAgIHJldHVybiBNYXRoTUxJbmxp
bmVDb250YWluZXJFbGVtZW50OjppbnNlcnRlZEludG8oaW5zZXJ0aW9uUG9pbnQpOwogfQogCi1S
ZW5kZXJPYmplY3QqIE1hdGhNTE1hdGhFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSYgYXJlbmEsIFJlbmRlclN0eWxlJikKK1JlbmRlckVsZW1lbnQqIE1hdGhNTE1hdGhFbGVtZW50
OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKIHsKICAg
ICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyTWF0aE1MTWF0aCh0aGlzKTsKIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oCShyZXZpc2lvbiAxNTYxNDMp
CisrKyBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtNDAsNyArNDAsNyBAQCBwcml2YXRlOgogICAgIE1hdGhNTE1hdGhFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIElu
c2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEmLCBSZW5kZXJTdHlsZSYpOworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOwogfTsKICAgICAKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcAkocmV2aXNpb24g
MTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBQYXNzUmVmUHRyPE1hdGhNTFRleHRFbGVt
ZW50PiBNYXRoTUxUZXh0CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNYXRoTUxUZXh0RWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi1SZW5kZXJPYmplY3QqIE1hdGhNTFRleHRFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJiBzdHls
ZSkKK1JlbmRlckVsZW1lbnQqIE1hdGhNTFRleHRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICBpZiAoaGFzTG9jYWxO
YW1lKE1hdGhNTE5hbWVzOjptb1RhZykpCiAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5k
ZXJNYXRoTUxPcGVyYXRvcih0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxUZXh0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxUZXh0RWxlbWVudC5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MVGV4dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIE1hdGhNTFRleHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOworICAgIHZpcnR1YWwgUmVu
ZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOwog
fTsKICAgICAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAkocmV2aXNpb24g
MTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTM5LDcgKzEzOSw3IEBAIHZvaWQgU1ZHQUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY28KICAgICB9CiB9CiAKLVJlbmRlck9iamVjdCogU1ZHQUVsZW1lbnQ6OmNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVyRWxlbWVudCog
U1ZHQUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5
bGUmKQogewogICAgIGlmIChwYXJlbnROb2RlKCkgJiYgcGFyZW50Tm9kZSgpLT5pc1NWR0VsZW1l
bnQoKSAmJiB0b1NWR0VsZW1lbnQocGFyZW50Tm9kZSgpKS0+aXNUZXh0Q29udGVudCgpKQogICAg
ICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU1ZHSW5saW5lKCp0aGlzKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBRWxlbWVudC5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAgdmlydHVhbCBSZW5k
ZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKKyAg
ICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVu
ZGVyU3R5bGUmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
Kik7CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNw
cAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDcgKzgyLDcgQEAgYm9vbCBTVkdBbHRHbHlw
aEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUmVuZGVy
T2JqZWN0KiBTVkdBbHRHbHlwaEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBh
cmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVyRWxlbWVudCogU1ZHQWx0R2x5cGhFbGVtZW50Ojpj
cmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKIHsKICAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU1ZHVFNwYW4oKnRoaXMpOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAkocmV2aXNpb24gMTU2MTQzKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00
Niw3ICs0Niw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHQWx0R2x5cGhFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKKyAgICB2aXJ0
dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5
bGUmKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlKikgY29uc3Q7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZH
QWx0R2x5cGhFbGVtZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50
LmNwcAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksNyArMTM5LDcgQEAgYm9vbCBTVkdDaXJj
bGVFbGVtZW50OjpzZWxmSGFzUmVsYXRpdmVMZQogICAgICAgICB8fCByKCkuaXNSZWxhdGl2ZSgp
OwogfQogCi1SZW5kZXJPYmplY3QqIFNWR0NpcmNsZUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVyRWxlbWVudCogU1ZHQ2lyY2xl
RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYp
CiB7CiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclNWR0VsbGlwc2UoKnRoaXMpOwogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCShyZXZpc2lvbiAxNTYxNDMp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1Jl
bGF0aXZlTGVuZ3RocygpIGNvbnN0OwogCi0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5
bGUmKSBPVkVSUklERTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhT
VkdDaXJjbGVFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChDeCwgY3gp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAkocmV2aXNp
b24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIFNWR0NsaXBQYXRoRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCiAgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7
CiB9CiAKLVJlbmRlck9iamVjdCogU1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKK1JlbmRlckVsZW1lbnQqIFNWR0NsaXBQ
YXRoRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHls
ZSYpCiB7CiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcigq
dGhpcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCShy
ZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmly
dHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURFOwog
Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwg
UmVuZGVyU3R5bGUmKTsKKyAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFU
RURfUFJPUEVSVElFUyhTVkdDbGlwUGF0aEVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFU
RURfRU5VTUVSQVRJT04oQ2xpcFBhdGhVbml0cywgY2xpcFBhdGhVbml0cywgU1ZHVW5pdFR5cGVz
OjpTVkdVbml0VHlwZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNwcAko
cmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBib29sIFNWR0RlZnNFbGVtZW50Ojpp
c1ZhbGlkKCkgY29uc3QKICAgICByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsKIH0KIAotUmVu
ZGVyT2JqZWN0KiBTVkdEZWZzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFy
ZW5hLCBSZW5kZXJTdHlsZSYpCitSZW5kZXJFbGVtZW50KiBTVkdEZWZzRWxlbWVudDo6Y3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCiB7CiAgICAgcmV0dXJu
IG5ldyAoYXJlbmEpIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcigqdGhpcyk7CiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAKLSAg
ICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5k
ZXJTdHlsZSYpOworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9Q
Uk9QRVJUSUVTKFNWR0RlZnNFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0JPT0xF
QU4oRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAkocmV2aXNpb24g
MTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTQ1LDcgKzE0NSw3IEBAIGJvb2wgU1ZHRWxsaXBzZUVsZW1lbnQ6OnNl
bGZIYXNSZWxhdGl2ZUwKICAgICAgICAgfHwgcnkoKS5pc1JlbGF0aXZlKCk7CiB9CiAKLVJlbmRl
ck9iamVjdCogU1ZHRWxsaXBzZUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBh
cmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVyRWxlbWVudCogU1ZHRWxsaXBzZUVsZW1lbnQ6OmNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQogewogICAgIHJl
dHVybiBuZXcgKGFyZW5hKSBSZW5kZXJTVkdFbGxpcHNlKCp0aGlzKTsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDYs
NyArNDYsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxl
bmd0aHMoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5k
ZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJikgT1ZF
UlJJREU7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRWxsaXBz
ZUVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKEN4LCBjeCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjE0MykK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTg4LDcgKzE4OCw3IEBAIHZvaWQgU1ZHRmlsdGVyRWxlbWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKGMKICAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCh0cnVlKTsKIH0KIAotUmVuZGVy
T2JqZWN0KiBTVkdGaWx0ZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJl
bmEsIFJlbmRlclN0eWxlJikKK1JlbmRlckVsZW1lbnQqIFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQogewogICAgIHJldHVy
biBuZXcgKGFyZW5hKSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcigqdGhpcyk7CiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU0
LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdl
ZChjb25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwg
UmVuZGVyU3R5bGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjb25zdCBOb2RlKikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJv
b2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy5jcHAJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsNyAr
MTQyLDcgQEAgdm9pZCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZQogICAgICAg
ICBmaWx0ZXJFZmZlY3QtPnNldEhhc0hlaWdodCh0cnVlKTsKIH0KIAotUmVuZGVyT2JqZWN0KiBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVyRWxlbWVudCogU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJl
bmEsIFJlbmRlclN0eWxlJikKIHsKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU1ZHUmVz
b3VyY2VGaWx0ZXJQcmltaXRpdmUoKnRoaXMpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAko
cmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHBy
b3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzRmlsdGVyRWZmZWN0KCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUm
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5k
ZXJTdHlsZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJl
bmRlcmVyKGNvbnN0IE5vZGUqKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50OjpzdmdBdHRyaWJ1CiAgICAgICAgIFJlbmRlclNWR1Jlc291cmNl
OjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24ocmVuZGVyZXIpOwog
fQogCi1SZW5kZXJPYmplY3QqIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKK1JlbmRlckVsZW1lbnQqIFNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJl
bmRlclN0eWxlJikKIHsKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU1ZHRm9yZWlnbk9i
amVjdCgqdGhpcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQuaAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvcmVpZ25PYmplY3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAg
cHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRl
clN0eWxlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVu
ZGVyZXIoY29uc3QgTm9kZSopIGNvbnN0OwotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CisgICAgdmlydHVhbCBSZW5k
ZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5
LDcgQEAgdm9pZCBTVkdHRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjbwogICAgICAgICBS
ZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0
aW9uKHJlbmRlcmVyKTsKIH0KIAotUmVuZGVyT2JqZWN0KiBTVkdHRWxlbWVudDo6Y3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYgc3R5bGUpCitSZW5kZXJFbGVt
ZW50KiBTVkdHRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5k
ZXJTdHlsZSYgc3R5bGUpCiB7CiAgICAgLy8gU1ZHIDEuMSB0ZXN0c3VpdGUgZXhwbGljaXRlbHkg
dXNlcyBjb25zdHJ1Y3RzIGxpa2UgPGcgZGlzcGxheT0ibm9uZSI+PGxpbmVhckdyYWRpZW50Pgog
ICAgIC8vIFdlIHN0aWxsIGhhdmUgdG8gY3JlYXRlIHJlbmRlcmVycyBmb3IgdGhlIDxnPiAmIDxs
aW5lYXJHcmFkaWVudD4gZWxlbWVudCwgdGhvdWdoIHRoZQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0dFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dF
bGVtZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgU1ZHR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAg
ICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5k
ZXJTdHlsZSYpOworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOwogCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBj
b25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CiAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzRm9jdXMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MTQzKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2Miw3ICsxNjIsNyBAQCBGbG9hdFJlY3QgU1ZHR3JhcGhpY3NFbGVtZW50OjpnZXRC
Qm94KFN0CiAgICAgcmV0dXJuIFNWR1RyYW5zZm9ybWFibGU6OmdldEJCb3godGhpcywgc3R5bGVV
cGRhdGVTdHJhdGVneSk7CiB9CiAKLVJlbmRlck9iamVjdCogU1ZHR3JhcGhpY3NFbGVtZW50Ojpj
cmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKK1JlbmRlckVs
ZW1lbnQqIFNWR0dyYXBoaWNzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFy
ZW5hLCBSZW5kZXJTdHlsZSYpCiB7CiAgICAgLy8gQnkgZGVmYXVsdCwgYW55IHN1YmNsYXNzIGlz
IGV4cGVjdGVkIHRvIGRvIHBhdGgtYmFzZWQgZHJhd2luZwogICAgIHJldHVybiBuZXcgKGFyZW5h
KSBSZW5kZXJTVkdQYXRoKCp0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFw
aGljc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhp
Y3NFbGVtZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdH
cmFwaGljc0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6
CiAKICAgICAvLyAiYmFzZSBjbGFzcyIgbWV0aG9kcyBmb3IgYWxsIHRoZSBlbGVtZW50cyB3aGlj
aCByZW5kZXIgYXMgcGF0aHMKICAgICB2aXJ0dWFsIHZvaWQgdG9DbGlwUGF0aChQYXRoJik7Ci0g
ICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVu
ZGVyU3R5bGUmKTsKKyAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKIAogcHJvdGVjdGVkOgogICAgIFNWR0dyYXBoaWNz
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgzLDcg
KzE4Myw3IEBAIGJvb2wgU1ZHSW1hZ2VFbGVtZW50OjpzZWxmSGFzUmVsYXRpdmVMZW4KICAgICAg
ICAgfHwgaGVpZ2h0KCkuaXNSZWxhdGl2ZSgpOwogfQogCi1SZW5kZXJPYmplY3QqIFNWR0ltYWdl
RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYp
CitSZW5kZXJFbGVtZW50KiBTVkdJbWFnZUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQogewogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5k
ZXJTVkdJbWFnZSgqdGhpcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVu
dC5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBJbnNl
cnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlKikgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEmLCBSZW5kZXJTdHlsZSYpOworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOwogCiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGltYWdlU291cmNlVVJMKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxLVVJMPiYp
IGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNyArMTE4LDcg
QEAgdm9pZCBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OnN2Z0F0dHJpYgogICAgICAgICBvYmpl
Y3QtPnNldE5lZWRzTGF5b3V0KHRydWUpOwogfQogCi1SZW5kZXJPYmplY3QqIFNWR0xpbmVhckdy
YWRpZW50RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJT
dHlsZSYpCitSZW5kZXJFbGVtZW50KiBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OmNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQogewogICAgIHJldHVybiBu
ZXcgKGFyZW5hKSBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50KCp0aGlzKTsKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgJKHJl
dmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKKyAgICB2aXJ0dWFsIFJl
bmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Q7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjE0
MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6c2V0T3JpZW50
VG9BbmdsZSgKICAgICBzdmdBdHRyaWJ1dGVDaGFuZ2VkKG9yaWVudEFuZ2xlUHJvcGVydHlJbmZv
KCktPmF0dHJpYnV0ZU5hbWUpOwogfQogCi1SZW5kZXJPYmplY3QqIFNWR01hcmtlckVsZW1lbnQ6
OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVy
RWxlbWVudCogU1ZHTWFya2VyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFy
ZW5hLCBSZW5kZXJTdHlsZSYpCiB7CiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclNWR1Jl
c291cmNlTWFya2VyKCp0aGlzKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVs
ZW1lbnQuaAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtl
ckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDcgKzEzMCw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYp
OwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBP
VkVSUklERTsKIAotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CiAgICAgdmlydHVhbCBib29s
IHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSB7IHJldHVybiB0cnVlOyB9CiAK
ICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYxNDMpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NTcsNyArMTU3LDcgQEAgdm9pZCBTVkdNYXNrRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbgog
ICAgICAgICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KHRydWUpOwogfQogCi1SZW5kZXJPYmplY3Qq
IFNWR01hc2tFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRl
clN0eWxlJikKK1JlbmRlckVsZW1lbnQqIFNWR01hc2tFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKIHsKICAgICByZXR1cm4gbmV3IChhcmVu
YSkgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIoKnRoaXMpOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hc2tFbGVtZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXNrRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50
KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CiAKICAgICB2aXJ0
dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwNSw3ICs0
MDUsNyBAQCBGbG9hdFJlY3QgU1ZHUGF0aEVsZW1lbnQ6OmdldEJCb3goU3R5bGVVCiAgICAgcmV0
dXJuIHJlbmRlcmVyLT5wYXRoKCkuYm91bmRpbmdSZWN0KCk7CiB9CiAKLVJlbmRlck9iamVjdCog
U1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVy
U3R5bGUmKQorUmVuZGVyRWxlbWVudCogU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQogewogICAgIC8vIEJ5IGRlZmF1bHQsIGFu
eSBzdWJjbGFzcyBpcyBleHBlY3RlZCB0byBkbyBwYXRoLWJhc2VkIGRyYXdpbmcKICAgICByZXR1
cm4gbmV3IChhcmVuYSkgUmVuZGVyU1ZHUGF0aCgqdGhpcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aEVsZW1lbnQuaAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2
YXRlOgogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0JPT0xFQU4oRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKICAgICBFTkRfREVDTEFSRV9BTklN
QVRFRF9QUk9QRVJUSUVTCiAKLSAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVy
ZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVu
ZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpIE9W
RVJSSURFOwogCiAgICAgdmlydHVhbCBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0
IGluc2VydGVkSW50byhDb250YWluZXJOb2RlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUqKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgy
LDcgKzE4Miw3IEBAIHZvaWQgU1ZHUGF0dGVybkVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCgKICAg
ICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCh0cnVlKTsKIH0KIAotUmVuZGVyT2JqZWN0KiBT
VkdQYXR0ZXJuRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5k
ZXJTdHlsZSYpCitSZW5kZXJFbGVtZW50KiBTVkdQYXR0ZXJuRWxlbWVudDo6Y3JlYXRlUmVuZGVy
ZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCiB7CiAgICAgcmV0dXJuIG5ldyAo
YXJlbmEpIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybigqdGhpcyk7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcg
KzYzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChj
b25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBSZW5kZXJPYmplY3Qq
IGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKKyAgICB2aXJ0dWFs
IFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUm
KTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Q7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQg
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpzdmdBdHRyaWIKICAgICAgICAgb2JqZWN0LT5zZXRO
ZWVkc0xheW91dCh0cnVlKTsKIH0KIAotUmVuZGVyT2JqZWN0KiBTVkdSYWRpYWxHcmFkaWVudEVs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQor
UmVuZGVyRWxlbWVudCogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKIHsKICAgICByZXR1cm4gbmV3IChhcmVu
YSkgUmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudCgqdGhpcyk7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCShyZXZpc2lvbiAx
NTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CisgICAgdmlydHVhbCBSZW5kZXJFbGVt
ZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CiAKICAgICB2
aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MCw3
ICsxNjAsNyBAQCBib29sIFNWR1JlY3RFbGVtZW50OjpzZWxmSGFzUmVsYXRpdmVMZW5nCiAgICAg
ICAgIHx8IHJ5KCkuaXNSZWxhdGl2ZSgpOwogfQogCi1SZW5kZXJPYmplY3QqIFNWR1JlY3RFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKK1Jl
bmRlckVsZW1lbnQqIFNWR1JlY3RFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYg
YXJlbmEsIFJlbmRlclN0eWxlJikKIHsKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU1ZH
UmVjdCgqdGhpcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAkocmV2
aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9v
bCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIFJlbmRlck9i
amVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEm
LCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9Q
Uk9QRVJUSUVTKFNWR1JlY3RFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdU
SChYLCB4KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkocmV2aXNpb24g
MTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00ODAsNyArNDgwLDcgQEAgYm9vbCBTVkdTVkdFbGVtZW50OjpyZW5kZXJlcklz
TmVlZGVkKGNvbgogICAgIHJldHVybiBTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0
eWxlKTsKIH0KIAotUmVuZGVyT2JqZWN0KiBTVkdTVkdFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKK1JlbmRlckVsZW1lbnQqIFNWR1NWR0Vs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQog
ewogICAgIGlmIChpc091dGVybW9zdFNWR1NWR0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIG5l
dyAoYXJlbmEpIFJlbmRlclNWR1Jvb3QoKnRoaXMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NWR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZH
RWxlbWVudC5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZH
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsNyArMTQyLDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFJlbmRlck9i
amVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOworICAgIHZp
cnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJT
dHlsZSYpOwogCiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2Vy
dGVkSW50byhDb250YWluZXJOb2RlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZWRGcm9tKENvbnRhaW5lck5vZGUqKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdG9wRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0b3BFbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0b3BFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIHZv
aWQgU1ZHU3RvcEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKIH0KIAotUmVuZGVyT2JqZWN0KiBTVkdTdG9wRWxlbWVudDo6Y3JlYXRlUmVuZGVy
ZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCitSZW5kZXJFbGVtZW50KiBTVkdT
dG9wRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHls
ZSYpCiB7CiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclNWR0dyYWRpZW50U3RvcCh0aGlz
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oCShyZXZpc2lvbiAxNTYx
NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtNDIsNyArNDIsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGlzR3JhZGll
bnRTdG9wKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBS
ZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsK
KyAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwg
UmVuZGVyU3R5bGUmKTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYpIE9WRVJSSURFOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9Q
RVJUSUVTKFNWR1N0b3BFbGVtZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRj
aEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hF
bGVtZW50LmNwcAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3
aXRjaEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIGJvb2wgU1ZH
U3dpdGNoRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LVJlbmRlck9iamVjdCogU1ZHU3dpdGNoRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCitSZW5kZXJFbGVtZW50KiBTVkdTd2l0Y2hFbGVtZW50
OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKIHsKICAg
ICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcigqdGhp
cyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgJKHJldmlzaW9u
IDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBj
aGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqKSBjb25zdDsKIAotICAgIHZpcnR1
YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxl
Jik7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSYsIFJlbmRlclN0eWxlJik7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJ
RVMoU1ZHU3dpdGNoRWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9CT09MRUFOKEV4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYxNDMp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMSw3ICsxMDEsNyBAQCBib29sIFNWR1N5bWJvbEVsZW1lbnQ6OnNlbGZIYXNSZWxh
dGl2ZUxlCiAgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZShTVkdOYW1lczo6dmlld0JveEF0dHIpOwog
fQogCi1SZW5kZXJPYmplY3QqIFNWR1N5bWJvbEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQorUmVuZGVyRWxlbWVudCogU1ZHU3ltYm9sRWxl
bWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCiB7
CiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcigqdGhpcyk7
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgJKHJldmlzaW9uIDE1
NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzU3VwcG9ydGVkQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKLSAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEmLCBSZW5kZXJTdHlsZSYpOworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOwogCiAgICAgdmlydHVhbCBib29sIHNl
bGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RSZWZFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VFJlZkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVFJlZkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjAsNyArMjIwLDcgQEAgdm9p
ZCBTVkdUUmVmRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZAogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi1SZW5kZXJPYmplY3QqIFNWR1RSZWZFbGVtZW50OjpjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKK1JlbmRlckVsZW1lbnQqIFNWR1RS
ZWZFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxl
JikKIHsKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU1ZHSW5saW5lKCp0aGlzKTsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oCShyZXZpc2lvbiAxNTYxNDMpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
NDQsNyArNDQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwog
Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwg
UmVuZGVyU3R5bGUmKTsKKyAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91
bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlKikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3
IEBAIFBhc3NSZWZQdHI8U1ZHVFNwYW5FbGVtZW50PiBTVkdUU3BhbkVsZW0KICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNWR1RTcGFuRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi1S
ZW5kZXJPYmplY3QqIFNWR1RTcGFuRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEm
IGFyZW5hLCBSZW5kZXJTdHlsZSYpCitSZW5kZXJFbGVtZW50KiBTVkdUU3BhbkVsZW1lbnQ6OmNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQogewogICAgIHJl
dHVybiBuZXcgKGFyZW5hKSBSZW5kZXJTVkdUU3BhbigqdGhpcyk7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5oCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTVkdUU3BhbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAgICAgICAgICAgICAKLSAgICB2aXJ0dWFsIFJlbmRlck9iamVj
dCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOworICAgIHZpcnR1
YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHls
ZSYpOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5v
ZGUqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5k
ZXJTdHlsZSYpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcAko
cmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQCBBZmZpbmVUcmFuc2Zvcm0gU1ZHVGV4
dEVsZW1lbnQ6OmFuaW1hdGVkCiAgICAgcmV0dXJuIG1hdHJpeDsKIH0KIAotUmVuZGVyT2JqZWN0
KiBTVkdUZXh0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5k
ZXJTdHlsZSYpCitSZW5kZXJFbGVtZW50KiBTVkdUZXh0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIo
UmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCiB7CiAgICAgcmV0dXJuIG5ldyAoYXJl
bmEpIFJlbmRlclNWR1RleHQoKnRoaXMpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRF
bGVtZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIHByaXZhdGU6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KIAotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSYsIFJlbmRlclN0eWxlJik7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVS
ZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CiAgICAgdmlydHVhbCBib29sIGNo
aWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSopIGNvbnN0OwogfTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjE0
MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjcsNyArMTI3LDcgQEAgdm9pZCBTVkdUZXh0UGF0aEVsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYQogICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBh
cmVudFJlc291cmNlSW52YWxpZGF0aW9uKG9iamVjdCk7CiB9CiAKLVJlbmRlck9iamVjdCogU1ZH
VGV4dFBhdGhFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRl
clN0eWxlJikKK1JlbmRlckVsZW1lbnQqIFNWR1RleHRQYXRoRWxlbWVudDo6Y3JlYXRlUmVuZGVy
ZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCiB7CiAgICAgcmV0dXJuIG5ldyAo
YXJlbmEpIFJlbmRlclNWR1RleHRQYXRoKCp0aGlzKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgJKHJldmlzaW9uIDE1NjE0MykKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDcgKzEy
Nyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKLSAgICB2
aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJT
dHlsZSYpOworICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEmLCBSZW5kZXJTdHlsZSYpOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGUqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJ
c05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VXNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMCw3ICs1MzAsNyBAQCB2b2lkIFNW
R1VzZUVsZW1lbnQ6OmJ1aWxkU2hhZG93QW5kSW5zdGFuCiAjZW5kaWYKIH0KIAotUmVuZGVyT2Jq
ZWN0KiBTVkdVc2VFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJl
bmRlclN0eWxlJikKK1JlbmRlckVsZW1lbnQqIFNWR1VzZUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQogewogICAgIHJldHVybiBuZXcgKGFy
ZW5hKSBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKCp0aGlzKTsKIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAkocmV2aXNpb24gMTU2MTQzKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksNyBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIHdpbGxSZWNhbGNTdHlsZShTdHlsZTo6Q2hh
bmdlKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSYsIFJlbmRlclN0eWxlJik7CisgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVS
ZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CiAgICAgdmlydHVhbCB2b2lkIHRv
Q2xpcFBhdGgoUGF0aCYpOwogCiAgICAgdm9pZCBjbGVhclJlc291cmNlUmVmZXJlbmNlcygpOwo=
</data>
<flag name="review"
          id="234294"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>