<?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>13893</bug_id>
          
          <creation_ts>2007-05-27 20:20:40 -0700</creation_ts>
          <short_desc>Autogenerate the JS bindings for the HTMLObjectElement, HTMLEmbedElement and HTMLAppletElement</short_desc>
          <delta_ts>2014-03-28 05:16:16 -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>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>
          
          <blocked>13779</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>9054</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-27 20:20:40 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9055</commentid>
    <comment_count>1</comment_count>
      <attachid>14751</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-27 21:27:24 -0700</bug_when>
    <thetext>Created attachment 14751
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9056</commentid>
    <comment_count>2</comment_count>
      <attachid>14751</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-05-27 21:32:20 -0700</bug_when>
    <thetext>Comment on attachment 14751
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9057</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-27 21:50:27 -0700</bug_when>
    <thetext>Landed in r21832.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14751</attachid>
            <date>2007-05-27 21:27:24 -0700</date>
            <delta_ts>2007-05-27 21:32:20 -0700</delta_ts>
            <desc>patch</desc>
            <filename>objEmbedApplet.diff</filename>
            <type>text/plain</type>
            <size>68163</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTgzMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTUgQEAKKzIwMDctMDUtMjcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4OTMKKyAgICAgICAg
QXV0b2dlbmVyYXRlIHRoZSBKUyBiaW5kaW5ncyBmb3IgdGhlIEhUTUxPYmplY3RFbGVtZW50LCAK
KyAgICAgICAgSFRNTEVtYmVkRWxlbWVudCBhbmQgSFRNTEFwcGxldEVsZW1lbnQKKworICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEFwcGxldEVsZW1lbnRD
dXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTEFwcGxldEVsZW1lbnQ6
OmN1c3RvbUdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxBcHBs
ZXRFbGVtZW50OjpjdXN0b21QdXQpOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MQXBwbGV0RWxl
bWVudDo6aW1wbGVtZW50c0NhbGwpOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MQXBwbGV0RWxl
bWVudDo6Y2FsbEFzRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MQXBwbGV0RWxl
bWVudDo6Y2FuR2V0SXRlbXNGb3JOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTEFwcGxl
dEVsZW1lbnQ6Om5hbWVHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEVsZW1l
bnRXcmFwcGVyRmFjdG9yeS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MRW1iZWRF
bGVtZW50Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxFbWJlZEVs
ZW1lbnQ6OmN1c3RvbUdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0hU
TUxFbWJlZEVsZW1lbnQ6OmN1c3RvbVB1dCk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxFbWJl
ZEVsZW1lbnQ6OmltcGxlbWVudHNDYWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTEVtYmVk
RWxlbWVudDo6Y2FsbEFzRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MRW1iZWRF
bGVtZW50OjpjYW5HZXRJdGVtc0Zvck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MRW1i
ZWRFbGVtZW50OjpuYW1lR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxPYmpl
Y3RFbGVtZW50Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxPYmpl
Y3RFbGVtZW50OjpjdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6
SlNIVE1MT2JqZWN0RWxlbWVudDo6Y3VzdG9tUHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRN
TE9iamVjdEVsZW1lbnQ6OmltcGxlbWVudHNDYWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRN
TE9iamVjdEVsZW1lbnQ6OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRN
TE9iamVjdEVsZW1lbnQ6OmNhbkdldEl0ZW1zRm9yTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpK
U0hUTUxPYmplY3RFbGVtZW50OjpuYW1lR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9r
anNfaHRtbC5jcHA6CisgICAgICAgIChLSlM6Oik6CisgICAgICAgIChLSlM6OkpTSFRNTEVsZW1l
bnQ6OnRvU3RyaW5nKToKKyAgICAgICAgKEtKUzo6SlNIVE1MRWxlbWVudDo6cHVzaEV2ZW50SGFu
ZGxlclNjb3BlKToKKyAgICAgICAgKEtKUzo6cnVudGltZU9iamVjdEdldHRlcik6CisgICAgICAg
IChLSlM6OnJ1bnRpbWVPYmplY3RQcm9wZXJ0eUdldHRlcik6CisgICAgICAgIChLSlM6OnJ1bnRp
bWVPYmplY3RDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoS0pTOjpydW50aW1l
T2JqZWN0Q3VzdG9tUHV0KToKKyAgICAgICAgKEtKUzo6cnVudGltZU9iamVjdEltcGxlbWVudHND
YWxsKToKKyAgICAgICAgKEtKUzo6cnVudGltZU9iamVjdENhbGxBc0Z1bmN0aW9uKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9ranNfaHRtbC5oOgorICAgICAgICAoS0pTOjpKU0hUTUxFbGVtZW50
OjpjbGFzc0luZm8pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOiBBZGQgc3VwcG9ydCBmb3IgCisgICAgICAgIEN1c3RvbUdldE93blByb3BlcnR5U2xvdCwg
Q3VzdG9tUHV0RnVuY3Rpb24sIEN1c3RvbUNhbGwsCisgICAgICAgIGFuZCBTVkdDaGVja1NlY3Vy
aXR5RG9jdW1lbnQgcHJvcGVydGllcy4KKyAgICAgICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDog
VW5jb21tZW50IGNvbnN0cnVjdG9ycy4KKwogMjAwNy0wNS0yNyAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlci4KSW5kZXg6IFdlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UJKHJldmlzaW9uIDIxODI3KQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3
b3JraW5nIGNvcHkpCkBAIC0zMzcsNiArMzM3LDcgQEAgYWxsIDogXAogICAgIEpTSFRNTERpdkVs
ZW1lbnQuaCBcCiAgICAgSlNIVE1MRG9jdW1lbnQuaCBcCiAgICAgSlNIVE1MRWxlbWVudC5oIFwK
KyAgICBKU0hUTUxFbWJlZEVsZW1lbnQuaCBcCiAgICAgSlNIVE1MRmllbGRTZXRFbGVtZW50Lmgg
XAogICAgIEpTSFRNTEZvbnRFbGVtZW50LmggXAogICAgIEpTSFRNTEZvcm1FbGVtZW50LmggXApA
QCAtMzYyLDYgKzM2Myw3IEBAIGFsbCA6IFwKICAgICBKU0hUTUxNb2RFbGVtZW50LmggXAogICAg
IEpTSFRNTE9MaXN0RWxlbWVudC5oIFwKICAgICBKU0hUTUxPcHRHcm91cEVsZW1lbnQuaCBcCisg
ICAgSlNIVE1MT2JqZWN0RWxlbWVudC5oIFwKICAgICBKU0hUTUxPcHRpb25FbGVtZW50LmggXAog
ICAgIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggXAogICAgIEpTSFRNTFBhcmFncmFwaEVsZW1l
bnQuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMjE4MjcpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjc2MSw2ICsyNzYxLDkgQEAKIAkJQkMxQTM3QkUwOTdD
NzE1RjAwMTlGM0Q4IC8qIERPTVRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQTM3QTgwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVRyYXZl
cnNhbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUJDMUEzN0JGMDk3QzcxNUYwMDE5RjNEOCAvKiBET01VdGlsaXR5Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQTM3QTkwOTdDNzE1RjAwMTlGM0Q4
IC8qIERPTVV0aWxpdHkubW0gKi87IH07CiAJCUJDMUEzN0MwMDk3QzcxNUYwMDE5RjNEOCAvKiBE
T01WaWV3cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMxQTM3QUEwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVZpZXdzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkMzMDVDNzkwQzA3NkJCMzAwQ0QyMEYw
IC8qIEpTSFRNTE9iamVjdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMzMDVDNzcwQzA3NkJCMzAwQ0QyMEYwIC8qIEpTSFRNTE9iamVj
dEVsZW1lbnQuY3BwICovOyB9OworCQlCQzMwNUM3QTBDMDc2QkIzMDBDRDIwRjAgLyogSlNIVE1M
T2JqZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMzMDVDNzgwQzA3NkJCMzAwQ0QyMEYwIC8qIEpTSFRNTE9iamVjdEVsZW1lbnQuaCAq
LzsgfTsKKwkJQkMzMDVDQTQwQzA3ODFCQjAwQ0QyMEYwIC8qIEpTSFRNTE9iamVjdEVsZW1lbnRD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMzMDVDQTMwQzA3ODFCQjAwQ0QyMEYwIC8qIEpTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20uY3Bw
ICovOyB9OwogCQlCQzNGQ0FBOTBBQzNEQjU4MDBCQTU0QUQgLyogUGxhdGZvcm1TY3JvbGxCYXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0ZDQUE4
MEFDM0RCNTgwMEJBNTRBRCAvKiBQbGF0Zm9ybVNjcm9sbEJhci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKCk7IH07IH07CiAJCUJDNDkxOEM2MEJGRUEwNTAwMDlENjMxNiAvKiBKU0hU
TUxGcmFtZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM0OTE4QzAwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5j
cHAgKi87IH07CiAJCUJDNDkxOEM3MEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxGcmFtZUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDkx
OEMxMEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxGcmFtZUVsZW1lbnQuaCAqLzsgfTsKQEAgLTI3
NjksNiArMjc3Miw3IEBACiAJCUJDNDkxQjRGMEMwMjNFMkQwMDlENjMxNiAvKiBIVE1MTWFycXVl
ZUVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzQ5MUI0RTBDMDIzRTJEMDA5RDYzMTYgLyogSFRNTE1hcnF1ZWVFbGVtZW50LmlkbCAq
LzsgfTsKIAkJQkM0OTFCNzgwQzAyM0VGRDAwOUQ2MzE2IC8qIEpTSFRNTE1hcnF1ZWVFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDkx
Qjc2MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5jcHAgKi87IH07CiAJ
CUJDNDkxQjc5MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTFCNzcwQzAyM0VG
RDAwOUQ2MzE2IC8qIEpTSFRNTE1hcnF1ZWVFbGVtZW50LmggKi87IH07CisJCUJDNEVERUY0MEMw
OEYzRkIwMDdFREQ0OSAvKiBKU0hUTUxBcHBsZXRFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEVERUYzMEMwOEYzRkIwMDdF
REQ0OSAvKiBKU0hUTUxBcHBsZXRFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQkM1MTU2RTgw
QzAzQjc0MTAwOEJCMEVFIC8qIERPTUhUTUxNYXJxdWVlRWxlbWVudC5oIGluIENvcHkgR2VuZXJh
dGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1MTU2RTUw
QzAzQjc0MTAwOEJCMEVFIC8qIERPTUhUTUxNYXJxdWVlRWxlbWVudC5oICovOyB9OwogCQlCQzUx
NTZFOTBDMDNCNzQxMDA4QkIwRUUgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1MTU2RTYwQzAzQjc0MTAw
OEJCMEVFIC8qIERPTUhUTUxNYXJxdWVlRWxlbWVudC5tbSAqLzsgfTsKIAkJQkM1MTU2RUEwQzAz
Qjc0MTAwOEJCMEVFIC8qIERPTUhUTUxNYXJxdWVlRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzUxNTZFNzBDMDNCNzQxMDA4
QkIwRUUgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKQEAgLTI3Nzgs
NiArMjc4Miw5IEBACiAJCUJDNTE1ODBCMEMwM0Q0MDQwMDhCQjBFRSAvKiBKU0hUTUxEb2N1bWVu
dEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzUxNTgwQTBDMDNENDA0MDA4QkIwRUUgLyogSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwICov
OyB9OwogCQlCQzU4OEFGMDBCRkE2Q0Y5MDBFRTY3OUUgLyogSFRNTFBhcnNlckVycm9yQ29kZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTg4QUVG
MEJGQTZDRjkwMEVFNjc5RSAvKiBIVE1MUGFyc2VyRXJyb3JDb2Rlcy5oICovOyB9OwogCQlCQzU4
OEI0QjBCRkE3MjNDMDBFRTY3OUUgLyogSFRNTFBhcnNlckVycm9yQ29kZXMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1ODhCNEEwQkZBNzIzQzAw
RUU2NzlFIC8qIEhUTUxQYXJzZXJFcnJvckNvZGVzLmNwcCAqLzsgfTsKKwkJQkM2RDQ0QkUwQzA3
RUZCNjAwNzJEMkM5IC8qIEpTSFRNTEVtYmVkRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzZENDRCRDBDMDdFRkI2MDA3MkQy
QzkgLyogSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKKwkJQkM2RDQ0RUMwQzA3
RjJFRDAwNzJEMkM5IC8qIEpTSFRNTEVtYmVkRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzZENDRFQTBDMDdGMkVEMDA3MkQyQzkgLyog
SlNIVE1MRW1iZWRFbGVtZW50LmNwcCAqLzsgfTsKKwkJQkM2RDQ0RUQwQzA3RjJFRDAwNzJEMkM5
IC8qIEpTSFRNTEVtYmVkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM2RDQ0RUIwQzA3RjJFRDAwNzJEMkM5IC8qIEpTSFRNTEVtYmVkRWxl
bWVudC5oICovOyB9OwogCQlCQzZENkREMjA5QUY5MDY2MDBGNTk3NTkgLyogRm9udC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzZENkREMDA5QUY5
MDY2MDBGNTk3NTkgLyogRm9udC5jcHAgKi87IH07CiAJCUJDNkQ2REQzMDlBRjkwNjYwMEY1OTc1
OSAvKiBGb250LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzZENkREMTA5QUY5MDY2MDBGNTk3NTkgLyogRm9udC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNkQ2RTI2MDlBRjk0MzUwMEY1OTc1OSAv
KiBTY3JvbGxWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzZENkUyNTA5QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02MDA2LDYgKzYwMTMsOSBA
QAogCQlCQzFBMzdBODA5N0M3MTVGMDAxOUYzRDggLyogRE9NVHJhdmVyc2FsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01UcmF2ZXJzYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkMxQTM3QTkwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVV0aWxpdHkubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NVXRpbGl0eS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxQTM3QUEwOTdDNzE1RjAwMTlGM0Q4IC8q
IERPTVZpZXdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01WaWV3cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzMwNUM3NzBDMDc2QkIzMDBDRDIwRjAg
LyogSlNIVE1MT2JqZWN0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNIVE1MT2JqZWN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUJDMzA1Qzc4MEMwNzZCQjMwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxPYmplY3RFbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMzA1Q0EzMEMwNzgxQkIwMENEMjBGMCAv
KiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzNCMzY0NzA1QzlENUUyMDBFNDI5MDIgLyogQXRvbWljU3RyaW5n
TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBdG9taWNTdHJpbmdMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQlCQzNGQ0FBODBBQzNEQjU4MDBCQTU0QUQgLyogUGxhdGZv
cm1TY3JvbGxCYXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3Jt
U2Nyb2xsQmFyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNDkxOEMwMEJGRUEw
NTAwMDlENjMxNiAvKiBKU0hUTUxGcmFtZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTEZyYW1lRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC02MDE1LDYgKzYwMjUsNyBAQAogCQlCQzQ5MUI0RTBDMDIzRTJEMDA5
RDYzMTYgLyogSFRNTE1hcnF1ZWVFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBI
VE1MTWFycXVlZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzQ5
MUI3NjBDMDIzRUZEMDA5RDYzMTYgLyogSlNIVE1MTWFycXVlZUVsZW1lbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTE1hcnF1ZWVFbGVtZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0OTFCNzcwQzAyM0VGRDAwOUQ2MzE2IC8q
IEpTSFRNTE1hcnF1ZWVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0hUTUxNYXJxdWVlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
QzRFREVGMzBDMDhGM0ZCMDA3RURENDkgLyogSlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxBcHBsZXRFbGVtZW50
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1MTU2RTUwQzAzQjc0
MTAwOEJCMEVFIC8qIERPTUhUTUxNYXJxdWVlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NSFRNTE1hcnF1ZWVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDNTE1NkU2MEMwM0I3NDEwMDhCQjBFRSAvKiBET01IVE1MTWFycXVlZUVs
ZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRN
TE1hcnF1ZWVFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzUxNTZF
NzBDMDNCNzQxMDA4QkIwRUUgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50SW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxNYXJxdWVlRWxlbWVudEludGVy
bmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MDIzLDYgKzYwMzQsOSBAQAog
CQlCQzU4OEFFRjBCRkE2Q0Y5MDBFRTY3OUUgLyogSFRNTFBhcnNlckVycm9yQ29kZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJFcnJvckNvZGVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTg4QjRBMEJGQTcyM0MwMEVFNjc5RSAvKiBI
VE1MUGFyc2VyRXJyb3JDb2Rlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSFRNTFBhcnNlckVycm9yQ29kZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzVFQzE3NjBBNTA3RTNFMDA2MDA3RjUgLyogdmlldy1zb3VyY2UuY3NzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSAidmlldy1zb3VyY2UuY3NzIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQkM2RDQ0QkQwQzA3RUZCNjAwNzJEMkM5IC8qIEpTSFRNTEVtYmVkRWxlbWVudEN1
c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxFbWJl
ZEVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzZENDRF
QTBDMDdGMkVEMDA3MkQyQzkgLyogSlNIVE1MRW1iZWRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxFbWJlZEVsZW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCQzZENDRFQjBDMDdGMkVEMDA3MkQyQzkgLyogSlNIVE1M
RW1iZWRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxF
bWJlZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM2RDZERDAwOUFG
OTA2NjAwRjU5NzU5IC8qIEZvbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEZvbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzZENkREMTA5
QUY5MDY2MDBGNTk3NTkgLyogRm9udC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRm9udC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzZENkUyNTA5QUY5NDM1
MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2Nyb2xsVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQ1Miw2ICs2
NDY2LDggQEAKIAkJCQkxQTQ5NEUzMzBBMTIzNThCMDBGREFGQzEgLyogSlNIVE1MRG9jdW1lbnQu
aCAqLywKIAkJCQkxQTQ5NEJGODBBMTIyRjQ0MDBGREFGQzEgLyogSlNIVE1MRWxlbWVudC5jcHAg
Ki8sCiAJCQkJMUE0OTRCRjkwQTEyMkY0NDAwRkRBRkMxIC8qIEpTSFRNTEVsZW1lbnQuaCAqLywK
KwkJCQlCQzZENDRFQTBDMDdGMkVEMDA3MkQyQzkgLyogSlNIVE1MRW1iZWRFbGVtZW50LmNwcCAq
LywKKwkJCQlCQzZENDRFQjBDMDdGMkVEMDA3MkQyQzkgLyogSlNIVE1MRW1iZWRFbGVtZW50Lmgg
Ki8sCiAJCQkJMUFFMkFBMTIwQTFDREFCMzAwQjQyQjI1IC8qIEpTSFRNTEZpZWxkU2V0RWxlbWVu
dC5jcHAgKi8sCiAJCQkJMUFFMkFBMTMwQTFDREFCMzAwQjQyQjI1IC8qIEpTSFRNTEZpZWxkU2V0
RWxlbWVudC5oICovLAogCQkJCTFBRTJBQTE0MEExQ0RBQjMwMEI0MkIyNSAvKiBKU0hUTUxGb250
RWxlbWVudC5jcHAgKi8sCkBAIC02NDk2LDYgKzY1MTIsOCBAQAogCQkJCUE4MEU3QTE2MEExOUMz
RDYwMDdGQjhDNSAvKiBKU0hUTUxNZXRhRWxlbWVudC5oICovLAogCQkJCTFBRTJBQjFGMEExQ0U2
M0IwMEI0MkIyNSAvKiBKU0hUTUxNb2RFbGVtZW50LmNwcCAqLywKIAkJCQkxQUUyQUIyMDBBMUNF
NjNCMDBCNDJCMjUgLyogSlNIVE1MTW9kRWxlbWVudC5oICovLAorCQkJCUJDMzA1Qzc3MEMwNzZC
QjMwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50LmNwcCAqLywKKwkJCQlCQzMwNUM3ODBD
MDc2QkIzMDBDRDIwRjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudC5oICovLAogCQkJCTFBODVCMUU0
MEExQjI0MDUwMEQ4Qzg3QyAvKiBKU0hUTUxPTGlzdEVsZW1lbnQuY3BwICovLAogCQkJCTFBODVC
MUU1MEExQjI0MDUwMEQ4Qzg3QyAvKiBKU0hUTUxPTGlzdEVsZW1lbnQuaCAqLywKIAkJCQlBODBF
N0U5MjBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0R3JvdXBFbGVtZW50LmNwcCAqLywKQEAg
LTkwNzYsMzMgKzkwOTQsMTkgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJMTRERkIzM0YwQTdERjc2MzAwMThGNzY5IC8qIERlcml2ZWQgU291cmNlcyAqLywKKwkJ
CQlCQzRFREVGNzBDMDhGNDE0MDA3RURENDkgLyogQ3VzdG9tICovLAogCQkJCTkzRjhCMzA2MEEz
MDBGRUEwMEY2MUFCOCAvKiBDb2RlR2VuZXJhdG9ySlMucG0gKi8sCi0JCQkJMUE5RUY0NTYwQTFC
OTU3RDAwMzMyQjYzIC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCAqLywK
IAkJCQlFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwICovLAogCQkJCUUxMEI5MzdCMEI3M0MwMEEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5oICovLAotCQkJCTkyOTI2NDc2MEI2MUZDNzIwMEI0MUQzNCAvKiBKU0RvY3VtZW50
Q3VzdG9tLmNwcCAqLywKLQkJCQlCQ0Y0MTE3NzBCRkNDNzZBMDAxMjU2MjIgLyogSlNIVE1MQW5j
aG9yRWxlbWVudEN1c3RvbS5jcHAgKi8sCi0JCQkJQkM1MTU4MEEwQzAzRDQwNDAwOEJCMEVFIC8q
IEpTSFRNTERvY3VtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQk5MzhFNjVGNjA5RjA5ODVEMDA4QTQ4
RUMgLyogSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAqLywKIAkJCQk5MzhFNjVGMDA5
RjA5ODQwMDA4QTQ4RUMgLyogSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggKi8sCi0JCQkJ
QThEMDY1QUQwQTI0NDZDRDAwNUU3MjAzIC8qIEpTSFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcCAq
LywKLQkJCQlCQ0Q0MUFCQTBDMDYwREU4MDBDMEU0NDYgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50
Q3VzdG9tLmNwcCAqLywKIAkJCQlBODBFN0U2NDBBMUE4MkVDMDA3RkI4QzUgLyogSlNIVE1MSW5w
dXRFbGVtZW50QmFzZS5jcHAgKi8sCiAJCQkJQTgwRTdFNjMwQTFBODJFQzAwN0ZCOEM1IC8qIEpT
SFRNTElucHV0RWxlbWVudEJhc2UuaCAqLywKIAkJCQlBODI2RThBRDBBMUE4RjIzMDBDRDFCQjYg
LyogSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmNwcCAqLywKIAkJCQlBODI2RThBQzBB
MUE4RjIzMDBDRDFCQjYgLyogSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmggKi8sCi0J
CQkJNDQ4QUQyN0EwQTQ4MTM3OTAwMjNEMTc5IC8qIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3Vz
dG9tLmNwcCAqLywKLQkJCQlCQzE3Rjk2NTBCNjRFQkI4MDA0QTY1Q0IgLyogSlNIVE1MU2VsZWN0
RWxlbWVudEN1c3RvbS5jcHAgKi8sCi0JCQkJQUI0Q0I0RUEwQjhCREEzRDAwOUY0MEIwIC8qIEpT
SFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uaCAqLywKLQkJCQkxQTc1MEREMzBBOTBFNzI5MDAwRkYy
MTUgLyogSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwICovLAogCQkJCTg1NzREMUYxMEFERTYxMjIw
MDRDQkExMSAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgKi8sCiAJCQkJODU3NEQx
RjIwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggKi8sCi0J
CQkJQjI1REZBQUUwQjJFMjkyOTAwMEU2NTEwIC8qIEpTU1ZHTWF0cml4Q3VzdG9tLmNwcCAqLywK
LQkJCQlCMkM5NkQ4QzBCM0FGMkI3MDA1RTgwRUMgLyogSlNTVkdQYXRoU2VnQ3VzdG9tLmNwcCAq
LywKLQkJCQlCMjk3QkM2RjBCM0MxNENGMDA0NUE1OTAgLyogSlNTVkdQYXRoU2VnTGlzdEN1c3Rv
bS5jcHAgKi8sCiAJCQkJQjIxMTI3QTUwQjMxODY3NzAwMDlCRTUzIC8qIEpTU1ZHUE9EVHlwZVdy
YXBwZXIuaCAqLywKLQkJCQlCMjA4MEExMTBCM0NBM0I2MDAxMjA4NTIgLyogSlNTVkdQb2ludExp
c3RDdXN0b20uY3BwICovLAotCQkJCTFBNzUwRTMzMEE5MEY4OUYwMDBGRjIxNSAvKiBKU1RyZWVX
YWxrZXJDdXN0b20uY3BwICovLAogCQkJCTkzQjcwRDQxMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hN
TEh0dHBSZXF1ZXN0LmNwcCAqLywKIAkJCQk5M0I3MEQ0MjA5RUIwQzdDMDA5RDg0NjggLyogSlNY
TUxIdHRwUmVxdWVzdC5oICovLAogCQkJCTkzQjcwRDQ1MDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hT
TFRQcm9jZXNzb3IuY3BwICovLApAQCAtOTE3Miw2ICs5MTc2LDMxIEBACiAJCQlwYXRoID0gb2Jq
YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUJDNEVERUY3MEMwOEY0MTQw
MDdFREQ0OSAvKiBDdXN0b20gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVu
ID0gKAorCQkJCTFBOUVGNDU2MEExQjk1N0QwMDMzMkI2MyAvKiBKU0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREN1c3RvbS5jcHAgKi8sCisJCQkJOTI5MjY0NzYwQjYxRkM3MjAwQjQxRDM0IC8qIEpT
RG9jdW1lbnRDdXN0b20uY3BwICovLAorCQkJCUJDRjQxMTc3MEJGQ0M3NkEwMDEyNTYyMiAvKiBK
U0hUTUxBbmNob3JFbGVtZW50Q3VzdG9tLmNwcCAqLywKKwkJCQlCQzRFREVGMzBDMDhGM0ZCMDA3
RURENDkgLyogSlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHAgKi8sCisJCQkJQkM1MTU4MEEw
QzAzRDQwNDAwOEJCMEVFIC8qIEpTSFRNTERvY3VtZW50Q3VzdG9tLmNwcCAqLywKKwkJCQlCQzZE
NDRCRDBDMDdFRkI2MDA3MkQyQzkgLyogSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9tLmNwcCAqLywK
KwkJCQlBOEQwNjVBRDBBMjQ0NkNEMDA1RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20u
Y3BwICovLAorCQkJCUJDRDQxQUJBMEMwNjBERTgwMEMwRTQ0NiAvKiBKU0hUTUxGcmFtZVNldEVs
ZW1lbnRDdXN0b20uY3BwICovLAorCQkJCUJDMzA1Q0EzMEMwNzgxQkIwMENEMjBGMCAvKiBKU0hU
TUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcCAqLywKKwkJCQk0NDhBRDI3QTBBNDgxMzc5MDAyM0Qx
NzkgLyogSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwICovLAorCQkJCUJDMTdGOTY1
MEI2NEVCQjgwMDRBNjVDQiAvKiBKU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcCAqLywKKwkJ
CQlBQjRDQjRFQTBCOEJEQTNEMDA5RjQwQjAgLyogSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5o
ICovLAorCQkJCTFBNzUwREQzMEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvckN1c3Rv
bS5jcHAgKi8sCisJCQkJQjI1REZBQUUwQjJFMjkyOTAwMEU2NTEwIC8qIEpTU1ZHTWF0cml4Q3Vz
dG9tLmNwcCAqLywKKwkJCQlCMkM5NkQ4QzBCM0FGMkI3MDA1RTgwRUMgLyogSlNTVkdQYXRoU2Vn
Q3VzdG9tLmNwcCAqLywKKwkJCQlCMjk3QkM2RjBCM0MxNENGMDA0NUE1OTAgLyogSlNTVkdQYXRo
U2VnTGlzdEN1c3RvbS5jcHAgKi8sCisJCQkJQjIwODBBMTEwQjNDQTNCNjAwMTIwODUyIC8qIEpT
U1ZHUG9pbnRMaXN0Q3VzdG9tLmNwcCAqLywKKwkJCQkxQTc1MEUzMzBBOTBGODlGMDAwRkYyMTUg
LyogSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gQ3VzdG9tOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQkNCMTZCRkIwOTc5QzM4NzAwNDY3
NzQxIC8qIGxvYWRlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CkBAIC0xMTM5MCw2ICsxMTQxOSw4IEBACiAJCQkJQkM1MTU3REQwQzAzQkMyMjAwOEJCMEVFIC8q
IERPTUhUTUxGcmFtZUVsZW1lbnRQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzZFMkIx
QTBDMDRCOTM2MDA0NDRFRjggLyogRE9NSFRNTERvY3VtZW50UHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM5MjZGODEwQzA1NTI0NzAwODI3NzZCIC8qIEpTSFRNTEZyYW1lU2V0RWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMzMDVDN0EwQzA3NkJCMzAwQ0QyMEYwIC8qIEpTSFRN
TE9iamVjdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNkQ0NEVEMEMwN0YyRUQwMDcy
RDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTI3ODMsNiAr
MTI4MTQsMTEgQEAKIAkJCQlCQzUxNTgwQjBDMDNENDA0MDA4QkIwRUUgLyogSlNIVE1MRG9jdW1l
bnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5MjZGODAwQzA1NTI0NzAwODI3NzZC
IC8qIEpTSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q0MUFC
QjBDMDYwREU4MDBDMEU0NDYgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUJDMzA1Qzc5MEMwNzZCQjMwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDMzA1Q0E0MEMwNzgxQkIwMENEMjBGMCAv
KiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDNkQ0
NEJFMEMwN0VGQjYwMDcyRDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnRDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQkM2RDQ0RUMwQzA3RjJFRDAwNzJEMkM5IC8qIEpTSFRNTEVtYmVkRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzRFREVGNDBDMDhGM0ZCMDA3RURENDkgLyog
SlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvanMvSlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBcHBsZXRFbGVtZW50Q3VzdG9tLmNwcAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQXBwbGV0RWxlbWVudEN1c3Rv
bS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSlNIVE1MQXBwbGV0RWxlbWVudC5oIgorCisjaW5jbHVkZSAi
SFRNTEFwcGxldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJranNfZG9tLmgiCisjaW5jbHVkZSAia2pz
X2h0bWwuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgS0pTOwor
Citib29sIEpTSFRNTEFwcGxldEVsZW1lbnQ6OmN1c3RvbUdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQoreworICAgIHJldHVybiBydW50aW1lT2JqZWN0Q3VzdG9tR2V0T3duUHJvcGVydHlT
bG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCwgdGhpcywgc3RhdGljX2Nhc3Q8SFRNTEVsZW1l
bnQqPihpbXBsKCkpKTsKK30KKworYm9vbCBKU0hUTUxBcHBsZXRFbGVtZW50OjpjdXN0b21QdXQo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUq
IHZhbHVlLCBpbnQgYXR0cikKK3sKKyAgICByZXR1cm4gcnVudGltZU9iamVjdEN1c3RvbVB1dChl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRyLCBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+
KGltcGwoKSkpOworfQorCitib29sIEpTSFRNTEFwcGxldEVsZW1lbnQ6OmltcGxlbWVudHNDYWxs
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gcnVudGltZU9iamVjdEltcGxlbWVudHNDYWxsKHN0YXRp
Y19jYXN0PEhUTUxFbGVtZW50Kj4oaW1wbCgpKSk7Cit9CisKK0pTVmFsdWUqIEpTSFRNTEFwcGxl
dEVsZW1lbnQ6OmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNP
YmosIGNvbnN0IExpc3QmIGFyZ3MpCit7CisgICAgcmV0dXJuIHJ1bnRpbWVPYmplY3RDYWxsQXNG
dW5jdGlvbihleGVjLCB0aGlzT2JqLCBhcmdzLCBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KGlt
cGwoKSkpOworfQorCitib29sIEpTSFRNTEFwcGxldEVsZW1lbnQ6OmNhbkdldEl0ZW1zRm9yTmFt
ZShFeGVjU3RhdGUqLCBIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IEF0b21pY1N0cmluZyYgcHJv
cGVydHlOYW1lKQoreworICAgIHJldHVybiBwcm9wZXJ0eU5hbWUgPT0gIl9fYXBwbGVfcnVudGlt
ZV9vYmplY3QiOworfQorCitKU1ZhbHVlKiBKU0hUTUxBcHBsZXRFbGVtZW50OjpuYW1lR2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9yaWdpbmFsT2JqZWN0LCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1
cm4gcnVudGltZU9iamVjdEdldHRlcihleGVjLCBvcmlnaW5hbE9iamVjdCwgcHJvcGVydHlOYW1l
LCBzbG90KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkocmV2aXNp
b24gMjE4MjcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFj
dG9yeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJIVE1M
RExpc3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxFbWJlZEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvbnRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCkBAIC01NSw2ICs1Niw3IEBACiAjaW5j
bHVkZSAiSFRNTE1ldGFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1vZEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlv
bkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFyYWdyYXBoRWxlbWVudC5oIgpAQCAtODksNiAr
OTEsNyBAQAogI2luY2x1ZGUgIkpTSFRNTERMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRN
TERpcmVjdG9yeUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxEaXZFbGVtZW50LmgiCisjaW5j
bHVkZSAiSlNIVE1MRW1iZWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MRmllbGRTZXRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MRm9udEVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxG
b3JtRWxlbWVudC5oIgpAQCAtMTEyLDYgKzExNSw3IEBACiAjaW5jbHVkZSAiSlNIVE1MTWV0YUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxNb2RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1M
T0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSlNIVE1MT2JqZWN0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkpTSFRNTE9wdEdyb3VwRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTE9wdGlvbkVsZW1l
bnQuaCIKICNpbmNsdWRlICJKU0hUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCkBAIC0xNjAsNiArMTY0
LDcgQEAgdHlwZWRlZiBET01Ob2RlKiAoKkNyZWF0ZUhUTUxFbGVtZW50V3JhcAogICAgIG1hY3Jv
KGRpciwgRGlyZWN0b3J5KSBcCiAgICAgbWFjcm8oZGl2LCBEaXYpIFwKICAgICBtYWNybyhkbCwg
RExpc3QpIFwKKyAgICBtYWNybyhlbWJlZCwgRW1iZWQpIFwKICAgICBtYWNybyhmaWVsZHNldCwg
RmllbGRTZXQpIFwKICAgICBtYWNybyhmb250LCBGb250KSBcCiAgICAgbWFjcm8oZm9ybSwgRm9y
bSkgXApAQCAtMTc4LDkgKzE4MywxMCBAQCB0eXBlZGVmIERPTU5vZGUqICgqQ3JlYXRlSFRNTEVs
ZW1lbnRXcmFwCiAgICAgbWFjcm8obGksIExJKSBcCiAgICAgbWFjcm8obGluaywgTGluaykgXAog
ICAgIG1hY3JvKG1hcCwgTWFwKSBcCisgICAgbWFjcm8obWFycXVlZSwgTWFycXVlZSkgXAogICAg
IG1hY3JvKG1lbnUsIE1lbnUpIFwKICAgICBtYWNybyhtZXRhLCBNZXRhKSBcCi0gICAgbWFjcm8o
bWFycXVlZSwgTWFycXVlZSkgXAorICAgIG1hY3JvKG9iamVjdCwgT2JqZWN0KSBcCiAgICAgbWFj
cm8ob2wsIE9MaXN0KSBcCiAgICAgbWFjcm8ob3B0Z3JvdXAsIE9wdEdyb3VwKSBcCiAgICAgbWFj
cm8ob3B0aW9uLCBPcHRpb24pIFwKQEAgLTIzNiw0ICsyNDIsNCBAQCBGT1JfRUFDSF9UQUcoQURE
X1RPX0hBU0hfTUFQKQogICAgIHJldHVybiBuZXcgS0pTOjpKU0hUTUxFbGVtZW50KGV4ZWMsIGVs
ZW1lbnQuZ2V0KCkpOwogfQogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVtYmVkRWxlbWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbWJlZEVsZW1lbnRDdXN0b20uY3BwCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbWJlZEVsZW1lbnRDdXN0b20u
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkpTSFRNTEVtYmVkRWxlbWVudC5oIgorCisjaW5jbHVkZSAiSFRN
TEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUgImtqc19kb20uaCIKKyNpbmNsdWRlICJranNfaHRt
bC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBLSlM7CisKK2Jv
b2wgSlNIVE1MRW1iZWRFbGVtZW50OjpjdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKK3sKKyAgICByZXR1cm4gcnVudGltZU9iamVjdEN1c3RvbUdldE93blByb3BlcnR5U2xvdChl
eGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QsIHRoaXMsIHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4o
aW1wbCgpKSk7Cit9CisKK2Jvb2wgSlNIVE1MRW1iZWRFbGVtZW50OjpjdXN0b21QdXQoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUqIHZhbHVl
LCBpbnQgYXR0cikKK3sKKyAgICByZXR1cm4gcnVudGltZU9iamVjdEN1c3RvbVB1dChleGVjLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRyLCBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KGltcGwo
KSkpOworfQorCitib29sIEpTSFRNTEVtYmVkRWxlbWVudDo6aW1wbGVtZW50c0NhbGwoKSBjb25z
dAoreworICAgIHJldHVybiBydW50aW1lT2JqZWN0SW1wbGVtZW50c0NhbGwoc3RhdGljX2Nhc3Q8
SFRNTEVsZW1lbnQqPihpbXBsKCkpKTsKK30KKworSlNWYWx1ZSogSlNIVE1MRW1iZWRFbGVtZW50
OjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqLCBjb25z
dCBMaXN0JiBhcmdzKQoreworICAgIHJldHVybiBydW50aW1lT2JqZWN0Q2FsbEFzRnVuY3Rpb24o
ZXhlYywgdGhpc09iaiwgYXJncywgc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihpbXBsKCkpKTsK
K30KKworYm9vbCBKU0hUTUxFbWJlZEVsZW1lbnQ6OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3Rh
dGUqLCBIVE1MRW1iZWRFbGVtZW50KiwgY29uc3QgQXRvbWljU3RyaW5nJiBwcm9wZXJ0eU5hbWUp
Cit7CisgICAgcmV0dXJuIHByb3BlcnR5TmFtZSA9PSAiX19hcHBsZV9ydW50aW1lX29iamVjdCI7
Cit9CisKK0pTVmFsdWUqIEpTSFRNTEVtYmVkRWxlbWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBvcmlnaW5hbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIHJ1bnRpbWVP
YmplY3RHZXR0ZXIoZXhlYywgb3JpZ2luYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNI
VE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiSlNIVE1MT2JqZWN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJranNfZG9tLmgiCisjaW5jbHVkZSAia2pzX2h0bWwuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgS0pTOworCitib29sIEpTSFRNTE9iamVj
dEVsZW1lbnQ6OmN1c3RvbUdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJl
dHVybiBydW50aW1lT2JqZWN0Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCwgdGhpcywgc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihpbXBsKCkpKTsKK30K
KworYm9vbCBKU0hUTUxPYmplY3RFbGVtZW50OjpjdXN0b21QdXQoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUqIHZhbHVlLCBpbnQgYXR0cikK
K3sKKyAgICByZXR1cm4gcnVudGltZU9iamVjdEN1c3RvbVB1dChleGVjLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCBhdHRyLCBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KGltcGwoKSkpOworfQorCiti
b29sIEpTSFRNTE9iamVjdEVsZW1lbnQ6OmltcGxlbWVudHNDYWxsKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gcnVudGltZU9iamVjdEltcGxlbWVudHNDYWxsKHN0YXRpY19jYXN0PEhUTUxFbGVtZW50
Kj4oaW1wbCgpKSk7Cit9CisKK0pTVmFsdWUqIEpTSFRNTE9iamVjdEVsZW1lbnQ6OmNhbGxBc0Z1
bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmosIGNvbnN0IExpc3QmIGFy
Z3MpCit7CisgICAgcmV0dXJuIHJ1bnRpbWVPYmplY3RDYWxsQXNGdW5jdGlvbihleGVjLCB0aGlz
T2JqLCBhcmdzLCBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KGltcGwoKSkpOworfQorCitib29s
IEpTSFRNTE9iamVjdEVsZW1lbnQ6OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBIVE1M
T2JqZWN0RWxlbWVudCosIGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlOYW1lKQoreworICAg
IHJldHVybiBwcm9wZXJ0eU5hbWUgPT0gIl9fYXBwbGVfcnVudGltZV9vYmplY3QiOworfQorCitK
U1ZhbHVlKiBKU0hUTUxPYmplY3RFbGVtZW50OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIG9yaWdpbmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1cm4gcnVudGltZU9iamVjdEdl
dHRlcihleGVjLCBvcmlnaW5hbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5jcHAJKHJldmlz
aW9uIDIxODI3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYyLDg3ICs2MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgRXZlbnROYW1lczsKIAog
bmFtZXNwYWNlIEtKUyB7CiAKLWNsYXNzIEhUTUxFbGVtZW50RnVuY3Rpb24gOiBwdWJsaWMgSW50
ZXJuYWxGdW5jdGlvbkltcCB7Ci1wdWJsaWM6Ci0gIEhUTUxFbGVtZW50RnVuY3Rpb24oRXhlY1N0
YXRlKiBleGVjLCBpbnQgaSwgaW50IGxlbiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSk7Ci0gIHZp
cnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
dGhpc09iaiwgY29uc3QgTGlzdCZhcmdzKTsKLXByaXZhdGU6Ci0gIGludCBpZDsKLX07Ci0KLWNv
bnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjppbmZvID0geyAiSFRNTEVsZW1lbnQiLCAmSlNF
bGVtZW50OjppbmZvLCAmSFRNTEVsZW1lbnRUYWJsZSwgMCB9OwotCi1jb25zdCBDbGFzc0luZm8g
SlNIVE1MRWxlbWVudDo6ZW1iZWRfaW5mbyA9IHsgIkhUTUxFbWJlZEVsZW1lbnQiLCAmSlNIVE1M
RWxlbWVudDo6aW5mbywgJkhUTUxFbWJlZEVsZW1lbnRUYWJsZSwgMCB9OwotY29uc3QgQ2xhc3NJ
bmZvIEpTSFRNTEVsZW1lbnQ6Om9iamVjdF9pbmZvID0geyAiSFRNTE9iamVjdEVsZW1lbnQiLCAm
SlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxPYmplY3RFbGVtZW50VGFibGUsIDAgfTsKLQotY29u
c3QgQ2xhc3NJbmZvKiBKU0hUTUxFbGVtZW50OjpjbGFzc0luZm8oKSBjb25zdAotewotICAgIHN0
YXRpYyBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBjb25zdCBDbGFzc0luZm8qPiBjbGFzc0lu
Zm9NYXA7Ci0gICAgaWYgKGNsYXNzSW5mb01hcC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY2xhc3NJ
bmZvTWFwLnNldChlbWJlZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZlbWJlZF9pbmZvKTsKLSAg
ICAgICAgY2xhc3NJbmZvTWFwLnNldChvYmplY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmb2Jq
ZWN0X2luZm8pOwotICAgIH0KLSAgICAKLSAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHN0YXRp
Y19jYXN0PEhUTUxFbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBjb25zdCBDbGFzc0luZm8qIHJlc3Vs
dCA9IGNsYXNzSW5mb01hcC5nZXQoZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKTsKLSAgICBp
ZiAocmVzdWx0KQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIHJldHVybiAmaW5mbzsKLX0K
LQotY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1lbnQ6Om9iamVjdF9h
Y2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjpvYmplY3RHZXR0ZXIsICZKU0hUTUxFbGVtZW50
OjpvYmplY3RTZXR0ZXIgfTsKLWNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyBKU0hUTUxF
bGVtZW50OjplbWJlZF9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjplbWJlZEdldHRlciwg
JkpTSFRNTEVsZW1lbnQ6OmVtYmVkU2V0dGVyIH07Ci0KLWNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFj
Y2Vzc29ycyogSlNIVE1MRWxlbWVudDo6YWNjZXNzb3JzKCkgY29uc3QKLXsKLSAgICBzdGF0aWMg
SGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgY29uc3QgQWNjZXNzb3JzKj4gYWNjZXNzb3JNYXA7
Ci0gICAgaWYgKGFjY2Vzc29yTWFwLmlzRW1wdHkoKSkgewotICAgICAgICBhY2Nlc3Nvck1hcC5h
ZGQoZW1iZWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmZW1iZWRfYWNjZXNzb3JzKTsKLSAgICAg
ICAgYWNjZXNzb3JNYXAuYWRkKG9iamVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZvYmplY3Rf
YWNjZXNzb3JzKTsKLSAgICB9Ci0gICAgCi0gICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0
aWNfY2FzdDxIVE1MRWxlbWVudCo+KGltcGwoKSk7Ci0gICAgcmV0dXJuIGFjY2Vzc29yTWFwLmdl
dChlbGVtZW50LT5sb2NhbE5hbWUoKS5pbXBsKCkpOwotfQotCiAvKgogQGJlZ2luIEpTSFRNTEVs
ZW1lbnRQcm90b3R5cGVUYWJsZSAwCiBAZW5kCi1AYmVnaW4gSFRNTEVsZW1lbnRUYWJsZSAwCi1A
ZW5kCi1AYmVnaW4gSFRNTE9iamVjdEVsZW1lbnRUYWJsZSAyMAotICBmb3JtICAgICAgICAgICAg
S0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RGb3JtICAgICAgICAgICAgRG9udERlbGV0ZXxSZWFk
T25seQotICBjb2RlICAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RDb2RlICAg
ICAgICAgICAgRG9udERlbGV0ZQotICBhbGlnbiAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpPYmplY3RBbGlnbiAgICAgICAgICAgRG9udERlbGV0ZQotICBhcmNoaXZlICAgICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpPYmplY3RBcmNoaXZlICAgICAgICAgRG9udERlbGV0ZQotICBib3Jk
ZXIgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RCb3JkZXIgICAgICAgICAgRG9u
dERlbGV0ZQotICBjb2RlQmFzZSAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RDb2Rl
QmFzZSAgICAgICAgRG9udERlbGV0ZQotICBjb2RlVHlwZSAgICAgICAgS0pTOjpKU0hUTUxFbGVt
ZW50OjpPYmplY3RDb2RlVHlwZSAgICAgICAgRG9udERlbGV0ZQotICBjb250ZW50RG9jdW1lbnQg
S0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RDb250ZW50RG9jdW1lbnQgRG9udERlbGV0ZXxSZWFk
T25seQotICBkYXRhICAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3REYXRhICAg
ICAgICAgICAgRG9udERlbGV0ZQotICBkZWNsYXJlICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpPYmplY3REZWNsYXJlICAgICAgICAgRG9udERlbGV0ZQotICBoZWlnaHQgICAgICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpPYmplY3RIZWlnaHQgICAgICAgICAgRG9udERlbGV0ZQotICBoc3Bh
Y2UgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RIc3BhY2UgICAgICAgICAgRG9u
dERlbGV0ZQotICBnZXRTVkdEb2N1bWVudCAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RHZXRT
VkdEb2N1bWVudCAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIG5hbWUgICAgICAgICAgICBLSlM6
OkpTSFRNTEVsZW1lbnQ6Ok9iamVjdE5hbWUgICAgICAgICAgICBEb250RGVsZXRlCi0gIHN0YW5k
YnkgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok9iamVjdFN0YW5kYnkgICAgICAgICBEb250
RGVsZXRlCi0gIHRhYkluZGV4ICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok9iamVjdFRhYklu
ZGV4ICAgICAgICBEb250RGVsZXRlCi0gIHR5cGUgICAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1l
bnQ6Ok9iamVjdFR5cGUgICAgICAgICAgICBEb250RGVsZXRlCi0gIHVzZU1hcCAgICAgICAgICBL
SlM6OkpTSFRNTEVsZW1lbnQ6Ok9iamVjdFVzZU1hcCAgICAgICAgICBEb250RGVsZXRlCi0gIHZz
cGFjZSAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok9iamVjdFZzcGFjZSAgICAgICAgICBE
b250RGVsZXRlCi0gIHdpZHRoICAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok9iamVjdFdp
ZHRoICAgICAgICAgICBEb250RGVsZXRlCi1AZW5kCi1AYmVnaW4gSFRNTEVtYmVkRWxlbWVudFRh
YmxlIDYKLSAgYWxpZ24gICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkVtYmVkQWxpZ24gICAg
ICAgICAgIERvbnREZWxldGUKLSAgaGVpZ2h0ICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkVt
YmVkSGVpZ2h0ICAgICAgICAgIERvbnREZWxldGUKLSAgZ2V0U1ZHRG9jdW1lbnQgS0pTOjpKU0hU
TUxFbGVtZW50OjpFbWJlZEdldFNWR0RvY3VtZW50IERvbnREZWxldGV8RnVuY3Rpb24gMAotICBu
YW1lICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6RW1iZWROYW1lICAgICAgICAgICAgRG9u
dERlbGV0ZQotICBzcmMgICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6RW1iZWRTcmMgICAg
ICAgICAgICAgRG9udERlbGV0ZQotICB0eXBlICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6
RW1iZWRUeXBlICAgICAgICAgICAgRG9udERlbGV0ZQotICB3aWR0aCAgICAgICAgIEtKUzo6SlNI
VE1MRWxlbWVudDo6RW1iZWRXaWR0aCAgICAgICAgICAgRG9udERlbGV0ZQotQGVuZAogKi8KIAor
Y29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmluZm8gPSB7ICJIVE1MRWxlbWVudCIsICZK
U0VsZW1lbnQ6OmluZm8sIDAsIDAgfTsKKwogS0pTX0lNUExFTUVOVF9QUk9UT1RZUEVfRlVOQ1RJ
T04oSlNIVE1MRWxlbWVudFByb3RvdHlwZUZ1bmN0aW9uKQogS0pTX0lNUExFTUVOVF9QUk9UT1RZ
UEUoIkhUTUxFbGVtZW50IiwgSlNIVE1MRWxlbWVudFByb3RvdHlwZSwgSlNIVE1MRWxlbWVudFBy
b3RvdHlwZUZ1bmN0aW9uKQogCkBAIC0xNTcsMTQyICs4MywxMSBAQCBKU0hUTUxFbGVtZW50OjpK
U0hUTUxFbGVtZW50KEV4ZWNTdGF0ZSogCiAgICAgc2V0UHJvdG90eXBlKEpTSFRNTEVsZW1lbnRQ
cm90b3R5cGU6OnNlbGYoZXhlYykpOwogfQogCi1KU1ZhbHVlICpKU0hUTUxFbGVtZW50OjpydW50
aW1lT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9yaWdpbmFsT2JqZWN0
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xv
dCkKLXsKLSAgICBKU0hUTUxFbGVtZW50KiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNIVE1MRWxl
bWVudCo+KHNsb3Quc2xvdEJhc2UoKSk7Ci0gICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0
aWNfY2FzdDxIVE1MRWxlbWVudCo+KHRoaXNPYmotPmltcGwoKSk7Ci0KLSAgICByZXR1cm4gZ2V0
UnVudGltZU9iamVjdChleGVjLCBlbGVtZW50KTsKLX0KLQotSlNWYWx1ZSAqSlNIVE1MRWxlbWVu
dDo6cnVudGltZU9iamVjdFByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IG9yaWdpbmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFBy
b3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBKU0hUTUxFbGVtZW50KiB0aGlzT2JqID0gc3RhdGlj
X2Nhc3Q8SlNIVE1MRWxlbWVudCo+KHNsb3Quc2xvdEJhc2UoKSk7Ci0gICAgSFRNTEVsZW1lbnQq
IGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KHRoaXNPYmotPmltcGwoKSk7Ci0K
LSAgICBpZiAoSlNWYWx1ZSAqcnVudGltZU9iamVjdCA9IGdldFJ1bnRpbWVPYmplY3QoZXhlYywg
ZWxlbWVudCkpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHJ1bnRpbWVP
YmplY3QpLT5nZXQoZXhlYywgcHJvcGVydHlOYW1lKTsKLSAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLX0KLQotYm9vbCBKU0hUTUxFbGVtZW50OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKLXsKLSAgICBIVE1MRWxlbWVudCAmZWxlbWVudCA9ICpzdGF0aWNfY2FzdDxIVE1MRWxlbWVu
dCo+KGltcGwoKSk7Ci0KLSAgICAvLyBGaXJzdCBsb29rIGF0IGR5bmFtaWMgcHJvcGVydGllcwot
ICAgIGlmIChlbGVtZW50Lmhhc0xvY2FsTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC5oYXNMb2Nh
bE5hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50Lmhhc0xvY2FsTmFtZShhcHBsZXRUYWcpKSB7Ci0g
ICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gIl9fYXBwbGVfcnVudGltZV9vYmplY3QiKSB7Ci0g
ICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBydW50aW1lT2JqZWN0R2V0dGVyKTsKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIEpTVmFsdWUgKnJ1bnRp
bWVPYmplY3QgPSBnZXRSdW50aW1lT2JqZWN0KGV4ZWMsJmVsZW1lbnQpOwotICAgICAgICBpZiAo
cnVudGltZU9iamVjdCkgewotICAgICAgICAgICAgSlNPYmplY3QqIGltcCA9IHN0YXRpY19jYXN0
PEpTT2JqZWN0Kj4ocnVudGltZU9iamVjdCk7Ci0gICAgICAgICAgICBpZiAoaW1wLT5oYXNQcm9w
ZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0
b20odGhpcywgcnVudGltZU9iamVjdFByb3BlcnR5R2V0dGVyKTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGNvbnN0
IEhhc2hUYWJsZSogdGFibGUgPSBjbGFzc0luZm8oKS0+cHJvcEhhc2hUYWJsZTsgLy8gZ2V0IHRo
ZSByaWdodCBoYXNodGFibGUKLSAgICBpZiAodGFibGUpIHsKLSAgICAgICAgY29uc3QgSGFzaEVu
dHJ5KiBlbnRyeSA9IExvb2t1cDo6ZmluZEVudHJ5KHRhYmxlLCBwcm9wZXJ0eU5hbWUpOwotICAg
ICAgICBpZiAoZW50cnkpIHsKLSAgICAgICAgICAgIGlmIChlbnRyeS0+YXR0ciAmIEZ1bmN0aW9u
KQotICAgICAgICAgICAgICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhpcywgZW50cnksIHN0YXRp
Y0Z1bmN0aW9uR2V0dGVyPEhUTUxFbGVtZW50RnVuY3Rpb24+KTsgCi0gICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgc2xvdC5zZXRTdGF0aWNFbnRyeSh0aGlzLCBlbnRyeSwgc3RhdGlj
VmFsdWVHZXR0ZXI8SlNIVE1MRWxlbWVudD4pOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBCYXNlIEpTSFRNTEVsZW1lbnQgc3R1ZmYgb3IgcGFy
ZW50IGNsYXNzIGZvcndhcmQsIGFzIHVzdWFsCi0gICAgcmV0dXJuIGdldFN0YXRpY1Byb3BlcnR5
U2xvdDxIVE1MRWxlbWVudEZ1bmN0aW9uLCBKU0hUTUxFbGVtZW50LCBXZWJDb3JlOjpKU0hUTUxF
bGVtZW50PihleGVjLCAmSFRNTEVsZW1lbnRUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90
KTsKLX0KLQotYm9vbCBKU0hUTUxFbGVtZW50OjppbXBsZW1lbnRzQ2FsbCgpIGNvbnN0Ci17Ci0g
ICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KGltcGwo
KSk7Ci0gICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8IGVsZW1lbnQtPmhh
c1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGFwcGxldFRhZykpIHsK
LSAgICAgICAgRnJhbWUqIGZyYW1lID0gZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKLSAg
ICAgICAgaWYgKCFmcmFtZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgS0pT
UHJveHkgKnByb3h5ID0gZnJhbWUtPnNjcmlwdFByb3h5KCk7Ci0gICAgICAgIEV4ZWNTdGF0ZSog
ZXhlYyA9IHByb3h5LT5pbnRlcnByZXRlcigpLT5nbG9iYWxFeGVjKCk7Ci0gICAgICAgIGlmIChK
U1ZhbHVlICpydW50aW1lT2JqZWN0ID0gZ2V0UnVudGltZU9iamVjdChleGVjLCBlbGVtZW50KSkK
LSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHJ1bnRpbWVPYmplY3Qp
LT5pbXBsZW1lbnRzQ2FsbCgpOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLUpTVmFs
dWUgKkpTSFRNTEVsZW1lbnQ6OmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIHRoaXNPYmosIGNvbnN0IExpc3QmYXJncykKLXsKLSAgICBIVE1MRWxlbWVudCogZWxlbWVu
dCA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBpZiAoZWxlbWVudC0+
aGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RUYWcpIHx8
IGVsZW1lbnQtPmhhc1RhZ05hbWUoYXBwbGV0VGFnKSkgewotICAgICAgICBpZiAoSlNWYWx1ZSAq
cnVudGltZU9iamVjdCA9IGdldFJ1bnRpbWVPYmplY3QoZXhlYywgZWxlbWVudCkpCi0gICAgICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihydW50aW1lT2JqZWN0KS0+Y2FsbChl
eGVjLCB0aGlzT2JqLCBhcmdzKTsKLSAgICB9Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19
Ci0KLUpTVmFsdWUgKkpTSFRNTEVsZW1lbnQ6Om9iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IGludCB0b2tlbikgY29uc3QKLXsKLSAgICBIVE1MT2JqZWN0RWxlbWVudCYgb2JqZWN0ID0gKnN0
YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRva2Vu
KSB7Ci0gICAgICAgIGNhc2UgT2JqZWN0Rm9ybTogICAgICAgICAgICByZXR1cm4gdG9KUyhleGVj
LG9iamVjdC5mb3JtKCkpOyAvLyB0eXBlIEhUTUxGb3JtRWxlbWVudAotICAgICAgICBjYXNlIE9i
amVjdENvZGU6ICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC5jb2RlKCkpOwotICAg
ICAgICBjYXNlIE9iamVjdEFsaWduOiAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC5h
bGlnbigpKTsKLSAgICAgICAgY2FzZSBPYmplY3RBcmNoaXZlOiAgICAgICAgIHJldHVybiBqc1N0
cmluZyhvYmplY3QuYXJjaGl2ZSgpKTsKLSAgICAgICAgY2FzZSBPYmplY3RCb3JkZXI6ICAgICAg
ICAgIHJldHVybiBqc1N0cmluZyhvYmplY3QuYm9yZGVyKCkpOwotICAgICAgICBjYXNlIE9iamVj
dENvZGVCYXNlOiAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC5jb2RlQmFzZSgpKTsKLSAg
ICAgICAgY2FzZSBPYmplY3RDb2RlVHlwZTogICAgICAgIHJldHVybiBqc1N0cmluZyhvYmplY3Qu
Y29kZVR5cGUoKSk7Ci0gICAgICAgIGNhc2UgT2JqZWN0Q29udGVudERvY3VtZW50OiByZXR1cm4g
Y2hlY2tOb2RlU2VjdXJpdHkoZXhlYyxvYmplY3QuY29udGVudERvY3VtZW50KCkpID8gCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9KUyhleGVjLCBvYmplY3Qu
Y29udGVudERvY3VtZW50KCkpIDoganNVbmRlZmluZWQoKTsKLSAgICAgICAgY2FzZSBPYmplY3RE
YXRhOiAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyhvYmplY3QuZGF0YSgpKTsKLSAgICAgICAg
Y2FzZSBPYmplY3REZWNsYXJlOiAgICAgICAgIHJldHVybiBqc0Jvb2xlYW4ob2JqZWN0LmRlY2xh
cmUoKSk7Ci0gICAgICAgIGNhc2UgT2JqZWN0SGVpZ2h0OiAgICAgICAgICByZXR1cm4ganNTdHJp
bmcob2JqZWN0LmhlaWdodCgpKTsKLSAgICAgICAgY2FzZSBPYmplY3RIc3BhY2U6ICAgICAgICAg
IHJldHVybiBqc051bWJlcihvYmplY3QuaHNwYWNlKCkpOwotICAgICAgICBjYXNlIE9iamVjdE5h
bWU6ICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC5uYW1lKCkpOwotICAgICAgICBj
YXNlIE9iamVjdFN0YW5kYnk6ICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC5zdGFuZGJ5
KCkpOwotICAgICAgICBjYXNlIE9iamVjdFRhYkluZGV4OiAgICAgICAgcmV0dXJuIGpzTnVtYmVy
KG9iamVjdC50YWJJbmRleCgpKTsKLSAgICAgICAgY2FzZSBPYmplY3RUeXBlOiAgICAgICAgICAg
IHJldHVybiBqc1N0cmluZyhvYmplY3QudHlwZSgpKTsKLSAgICAgICAgY2FzZSBPYmplY3RVc2VN
YXA6ICAgICAgICAgIHJldHVybiBqc1N0cmluZyhvYmplY3QudXNlTWFwKCkpOwotICAgICAgICBj
YXNlIE9iamVjdFZzcGFjZTogICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKG9iamVjdC52c3BhY2Uo
KSk7Ci0gICAgICAgIGNhc2UgT2JqZWN0V2lkdGg6ICAgICAgICAgICByZXR1cm4ganNTdHJpbmco
b2JqZWN0LndpZHRoKCkpOwotICAgIH0KLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQot
SlNWYWx1ZSAqSlNIVE1MRWxlbWVudDo6ZW1iZWRHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQg
dG9rZW4pIGNvbnN0Ci17Ci0gICAgSFRNTEVtYmVkRWxlbWVudCYgZW1iZWQgPSAqc3RhdGljX2Nh
c3Q8SFRNTEVtYmVkRWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAg
ICAgICBjYXNlIEVtYmVkQWxpZ246ICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoZW1iZWQuYWxp
Z24oKSk7Ci0gICAgICAgIGNhc2UgRW1iZWRIZWlnaHQ6ICAgICAgICAgIHJldHVybiBqc1N0cmlu
ZyhlbWJlZC5oZWlnaHQoKSk7Ci0gICAgICAgIGNhc2UgRW1iZWROYW1lOiAgICAgICAgICAgIHJl
dHVybiBqc1N0cmluZyhlbWJlZC5uYW1lKCkpOwotICAgICAgICBjYXNlIEVtYmVkU3JjOiAgICAg
ICAgICAgICByZXR1cm4ganNTdHJpbmcoZW1iZWQuc3JjKCkpOwotICAgICAgICBjYXNlIEVtYmVk
VHlwZTogICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoZW1iZWQudHlwZSgpKTsKLSAgICAgICAg
Y2FzZSBFbWJlZFdpZHRoOiAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGVtYmVkLndpZHRoKCkp
OwotICAgIH0KLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQotSlNWYWx1ZSAqSlNIVE1M
RWxlbWVudDo6Z2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29u
c3QKLXsKLSAgICAvLyBDaGVjayB0aGUgcHJvcGVydGllcyBzcGVjaWZpYyB0byBvdXIgZWxlbWVu
dCB0eXBlLgotICAgIGNvbnN0IEFjY2Vzc29ycyogYWNjZXNzID0gYWNjZXNzb3JzKCk7Ci0gICAg
aWYgKGFjY2VzcyAmJiBhY2Nlc3MtPm1fZ2V0dGVyKQotICAgICAgICByZXR1cm4gKHRoaXMtPioo
YWNjZXNzLT5tX2dldHRlcikpKGV4ZWMsIHRva2VuKTsKLSAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLX0KLQogVVN0cmluZyBKU0hUTUxFbGVtZW50Ojp0b1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMp
IGNvbnN0CiB7CiAgICAgaWYgKGltcGwoKS0+aGFzVGFnTmFtZShhVGFnKSkKICAgICAgICAgcmV0
dXJuIFVTdHJpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTEFuY2hvckVsZW1lbnQqPihpbXBsKCkp
LT5ocmVmKCkpOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIEpTRWxlbWVudDo6dG9TdHJpbmco
ZXhlYyk7CisgICAgcmV0dXJuIEpTRWxlbWVudDo6dG9TdHJpbmcoZXhlYyk7CiB9CiAKIHN0YXRp
YyBIVE1MRm9ybUVsZW1lbnQqIGdldEZvcm0oSFRNTEVsZW1lbnQqIGVsZW1lbnQpCkBAIC0zMDcs
MTM4ICsxMDIsMzIgQEAgc3RhdGljIEhUTUxGb3JtRWxlbWVudCogZ2V0Rm9ybShIVE1MRWxlbQog
ICAgIHJldHVybiAwOwogfQogCi12b2lkIEpTSFRNTEVsZW1lbnQ6OnB1c2hFdmVudEhhbmRsZXJT
Y29wZShFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hhaW4gJnNjb3BlKSBjb25zdAotewotICBIVE1M
RWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oaW1wbCgpKTsKLQot
ICAvLyBUaGUgZG9jdW1lbnQgaXMgcHV0IG9uIGZpcnN0LCBmYWxsIGJhY2sgdG8gc2VhcmNoaW5n
IGl0IG9ubHkgYWZ0ZXIgdGhlIGVsZW1lbnQgYW5kIGZvcm0uCi0gIHNjb3BlLnB1c2goc3RhdGlj
X2Nhc3Q8SlNPYmplY3QqPih0b0pTKGV4ZWMsIGVsZW1lbnQtPm93bmVyRG9jdW1lbnQoKSkpKTsK
LQotICAvLyBUaGUgZm9ybSBpcyBuZXh0LCBzZWFyY2hlZCBiZWZvcmUgdGhlIGRvY3VtZW50LCBi
dXQgYWZ0ZXIgdGhlIGVsZW1lbnQgaXRzZWxmLgotICAKLSAgLy8gRmlyc3QgdHJ5IHRvIG9idGFp
biB0aGUgZm9ybSBmcm9tIHRoZSBlbGVtZW50IGl0c2VsZi4gIFdlIGRvIHRoaXMgdG8gZGVhbCB3
aXRoCi0gIC8vIHRoZSBtYWxmb3JtZWQgY2FzZSB3aGVyZSA8Zm9ybT5zIGFyZW4ndCBpbiBvdXIg
cGFyZW50IGNoYWluIChlLmcuLCB3aGVuIHRoZXkgd2VyZSBpbnNpZGUgCi0gIC8vIDx0YWJsZT4g
b3IgPHRib2R5Pi4KLSAgSFRNTEZvcm1FbGVtZW50KiBmb3JtID0gZ2V0Rm9ybShlbGVtZW50KTsK
LSAgaWYgKGZvcm0pCi0gICAgc2NvcGUucHVzaChzdGF0aWNfY2FzdDxKU09iamVjdCo+KHRvSlMo
ZXhlYywgZm9ybSkpKTsKLSAgZWxzZSB7Ci0gICAgV2ViQ29yZTo6Tm9kZSogZm9ybSA9IGVsZW1l
bnQtPnBhcmVudE5vZGUoKTsKLSAgICB3aGlsZSAoZm9ybSAmJiAhZm9ybS0+aGFzVGFnTmFtZShm
b3JtVGFnKSkKLSAgICAgIGZvcm0gPSBmb3JtLT5wYXJlbnROb2RlKCk7Ci0gICAgCi0gICAgaWYg
KGZvcm0pCi0gICAgICBzY29wZS5wdXNoKHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4odG9KUyhleGVj
LCBmb3JtKSkpOwotICB9Ci0gIAotICAvLyBUaGUgZWxlbWVudCBpcyBvbiB0b3AsIHNlYXJjaGVk
IGZpcnN0LgotICBzY29wZS5wdXNoKHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4odG9KUyhleGVjLCBl
bGVtZW50KSkpOwotfQotCi1IVE1MRWxlbWVudEZ1bmN0aW9uOjpIVE1MRWxlbWVudEZ1bmN0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgaW50IGksIGludCBsZW4sIGNvbnN0IElkZW50aWZpZXImIG5hbWUp
Ci0gIDogSW50ZXJuYWxGdW5jdGlvbkltcChzdGF0aWNfY2FzdDxGdW5jdGlvblByb3RvdHlwZSo+
KGV4ZWMtPmxleGljYWxJbnRlcnByZXRlcigpLT5idWlsdGluRnVuY3Rpb25Qcm90b3R5cGUoKSks
IG5hbWUpCi0gICwgaWQoaSkKLXsKLSAgcHV0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5s
ZW5ndGgsIGpzTnVtYmVyKGxlbiksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsK
LX0KLQotSlNWYWx1ZSAqSFRNTEVsZW1lbnRGdW5jdGlvbjo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncykKLXsKLSAgICBp
ZiAoIXRoaXNPYmotPmluaGVyaXRzKCZKU0hUTUxFbGVtZW50OjppbmZvKSkKLSAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKLSAgICBET01FeGNlcHRpb25UcmFuc2xh
dG9yIGV4Y2VwdGlvbihleGVjKTsKLQotI2lmIEVOQUJMRShTVkcpCi0gICAgSFRNTEVsZW1lbnQg
JmVsZW1lbnQgPSAqc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihzdGF0aWNfY2FzdDxKU0hUTUxF
bGVtZW50Kj4odGhpc09iaiktPmltcGwoKSk7Ci0KLSAgICBpZiAoZWxlbWVudC5oYXNMb2NhbE5h
bWUob2JqZWN0VGFnKSkgewotICAgICAgICBIVE1MT2JqZWN0RWxlbWVudCYgb2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1lbnQmPihlbGVtZW50KTsKLSAgICAgICAgaWYgKGlkID09
IEpTSFRNTEVsZW1lbnQ6Ok9iamVjdEdldFNWR0RvY3VtZW50KQotICAgICAgICAgICAgcmV0dXJu
IGNoZWNrTm9kZVNlY3VyaXR5KGV4ZWMsIG9iamVjdC5nZXRTVkdEb2N1bWVudChleGNlcHRpb24p
KSA/IHRvSlMoZXhlYywgb2JqZWN0LmdldFNWR0RvY3VtZW50KGV4Y2VwdGlvbikpIDoganNVbmRl
ZmluZWQoKTsKLSAgICB9IGVsc2UgaWYgKGVsZW1lbnQuaGFzTG9jYWxOYW1lKGVtYmVkVGFnKSkg
ewotICAgICAgICBIVE1MRW1iZWRFbGVtZW50JiBlbWJlZCA9IHN0YXRpY19jYXN0PEhUTUxFbWJl
ZEVsZW1lbnQmPihlbGVtZW50KTsKLSAgICAgICAgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OkVt
YmVkR2V0U1ZHRG9jdW1lbnQpCi0gICAgICAgICAgICByZXR1cm4gY2hlY2tOb2RlU2VjdXJpdHko
ZXhlYywgZW1iZWQuZ2V0U1ZHRG9jdW1lbnQoZXhjZXB0aW9uKSkgPyB0b0pTKGV4ZWMsIGVtYmVk
LmdldFNWR0RvY3VtZW50KGV4Y2VwdGlvbikpIDoganNVbmRlZmluZWQoKTsKLSAgICB9Ci0jZW5k
aWYKLQotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi12b2lkIEpTSFRNTEVsZW1lbnQ6
OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNW
YWx1ZSAqdmFsdWUsIGludCBhdHRyKQordm9pZCBKU0hUTUxFbGVtZW50OjpwdXNoRXZlbnRIYW5k
bGVyU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBTY29wZUNoYWluJiBzY29wZSkgY29uc3QKIHsKLSAg
ICBIVE1MRWxlbWVudCAmZWxlbWVudCA9ICpzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KGltcGwo
KSk7Ci0gICAgLy8gRmlyc3QgbG9vayBhdCBkeW5hbWljIHByb3BlcnRpZXMKLSAgICBpZiAoZWxl
bWVudC5oYXNMb2NhbE5hbWUoZW1iZWRUYWcpIHx8IGVsZW1lbnQuaGFzTG9jYWxOYW1lKG9iamVj
dFRhZykgfHwgZWxlbWVudC5oYXNMb2NhbE5hbWUoYXBwbGV0VGFnKSkgewotICAgICAgICBpZiAo
SlNWYWx1ZSAqcnVudGltZU9iamVjdCA9IGdldFJ1bnRpbWVPYmplY3QoZXhlYywgJmVsZW1lbnQp
KSB7Ci0gICAgICAgICAgICBKU09iamVjdCogaW1wID0gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihy
dW50aW1lT2JqZWN0KTsKLSAgICAgICAgICAgIGlmIChpbXAtPmNhblB1dChleGVjLCBwcm9wZXJ0
eU5hbWUpKQotICAgICAgICAgICAgICAgIHJldHVybiBpbXAtPnB1dChleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9
IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oaW1wbCgpKTsKIAotICAgIGNvbnN0IEhhc2hUYWJs
ZSogdGFibGUgPSBjbGFzc0luZm8oKS0+cHJvcEhhc2hUYWJsZTsgLy8gZ2V0IHRoZSByaWdodCBo
YXNodGFibGUKLSAgICBpZiAodGFibGUpIHsKLSAgICAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRy
eSA9IExvb2t1cDo6ZmluZEVudHJ5KHRhYmxlLCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICBpZiAo
ZW50cnkpIHsKLSAgICAgICAgICAgIGlmIChlbnRyeS0+YXR0ciAmIEZ1bmN0aW9uKSB7IC8vIGZ1
bmN0aW9uOiBwdXQgYXMgb3ZlcnJpZGUgcHJvcGVydHkKLSAgICAgICAgICAgICAgICBKU09iamVj
dDo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIGF0dHIpOwotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoIShlbnRyeS0+YXR0ciAmIFJlYWRPbmx5
KSkgeyAvLyBsZXQgbG9va3VwUHV0IHByaW50IHRoZSB3YXJuaW5nIGlmIHJlYWQtb25seQotICAg
ICAgICAgICAgICAgIHB1dFZhbHVlUHJvcGVydHkoZXhlYywgZW50cnktPnZhbHVlLCB2YWx1ZSwg
YXR0cik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgfQorICAgIC8vIFRoZSBkb2N1bWVudCBpcyBwdXQgb24gZmlyc3QsIGZhbGwgYmFjayB0
byBzZWFyY2hpbmcgaXQgb25seSBhZnRlciB0aGUgZWxlbWVudCBhbmQgZm9ybS4KKyAgICBzY29w
ZS5wdXNoKHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4odG9KUyhleGVjLCBlbGVtZW50LT5vd25lckRv
Y3VtZW50KCkpKSk7CiAKLSAgICBsb29rdXBQdXQ8SlNIVE1MRWxlbWVudCwgV2ViQ29yZTo6SlNI
VE1MRWxlbWVudD4oZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgYXR0ciwgJkhUTUxFbGVtZW50
VGFibGUsIHRoaXMpOwotfQorICAgIC8vIFRoZSBmb3JtIGlzIG5leHQsIHNlYXJjaGVkIGJlZm9y
ZSB0aGUgZG9jdW1lbnQsIGJ1dCBhZnRlciB0aGUgZWxlbWVudCBpdHNlbGYuCiAKLXZvaWQgSlNI
VE1MRWxlbWVudDo6b2JqZWN0U2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuLCBKU1Zh
bHVlKiB2YWx1ZSkKLXsKLSAgICBIVE1MT2JqZWN0RWxlbWVudCYgb2JqZWN0ID0gKnN0YXRpY19j
YXN0PEhUTUxPYmplY3RFbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRva2VuKSB7Ci0g
ICAgICAgIC8vIHJlYWQtb25seTogZm9ybQotICAgICAgICBjYXNlIE9iamVjdENvZGU6ICAgICAg
ICAgICAgeyBvYmplY3Quc2V0Q29kZSh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2
YWx1ZSkpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBPYmplY3RBbGlnbjogICAgICAgICAgIHsg
b2JqZWN0LnNldEFsaWduKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7
IHJldHVybjsgfQotICAgICAgICBjYXNlIE9iamVjdEFyY2hpdmU6ICAgICAgICAgeyBvYmplY3Qu
c2V0QXJjaGl2ZSh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOyByZXR1
cm47IH0KLSAgICAgICAgY2FzZSBPYmplY3RCb3JkZXI6ICAgICAgICAgIHsgb2JqZWN0LnNldEJv
cmRlcih2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOyByZXR1cm47IH0K
LSAgICAgICAgY2FzZSBPYmplY3RDb2RlQmFzZTogICAgICAgIHsgb2JqZWN0LnNldENvZGVCYXNl
KHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7IHJldHVybjsgfQotICAg
ICAgICBjYXNlIE9iamVjdENvZGVUeXBlOiAgICAgICAgeyBvYmplY3Quc2V0Q29kZVR5cGUodmFs
dWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsgcmV0dXJuOyB9Ci0gICAgICAg
IC8vIHJlYWQtb25seTogT2JqZWN0Q29udGVudERvY3VtZW50Ci0gICAgICAgIGNhc2UgT2JqZWN0
RGF0YTogICAgICAgICAgICB7IG9iamVjdC5zZXREYXRhKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENo
ZWNrKGV4ZWMsIHZhbHVlKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIE9iamVjdERlY2xhcmU6
ICAgICAgICAgeyBvYmplY3Quc2V0RGVjbGFyZSh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0
dXJuOyB9Ci0gICAgICAgIGNhc2UgT2JqZWN0SGVpZ2h0OiAgICAgICAgICB7IG9iamVjdC5zZXRI
ZWlnaHQodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsgcmV0dXJuOyB9
Ci0gICAgICAgIGNhc2UgT2JqZWN0SHNwYWNlOiAgICAgICAgICB7IG9iamVjdC5zZXRIc3BhY2Uo
dmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBPYmplY3ROYW1l
OiAgICAgICAgICAgIHsgb2JqZWN0LnNldE5hbWUodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2so
ZXhlYywgdmFsdWUpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgT2JqZWN0U3RhbmRieTogICAg
ICAgICB7IG9iamVjdC5zZXRTdGFuZGJ5KHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMs
IHZhbHVlKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIE9iamVjdFRhYkluZGV4OiAgICAgICAg
eyBvYmplY3Quc2V0VGFiSW5kZXgodmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KLSAg
ICAgICAgY2FzZSBPYmplY3RUeXBlOiAgICAgICAgICAgIHsgb2JqZWN0LnNldFR5cGUodmFsdWVU
b1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNh
c2UgT2JqZWN0VXNlTWFwOiAgICAgICAgICB7IG9iamVjdC5zZXRVc2VNYXAodmFsdWVUb1N0cmlu
Z1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgT2Jq
ZWN0VnNwYWNlOiAgICAgICAgICB7IG9iamVjdC5zZXRWc3BhY2UodmFsdWUtPnRvSW50MzIoZXhl
YykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBPYmplY3RXaWR0aDogICAgICAgICAgIHsgb2Jq
ZWN0LnNldFdpZHRoKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7IHJl
dHVybjsgfQotICAgIH0KLX0KKyAgICAvLyBGaXJzdCB0cnkgdG8gb2J0YWluIHRoZSBmb3JtIGZy
b20gdGhlIGVsZW1lbnQgaXRzZWxmLiAgV2UgZG8gdGhpcyB0byBkZWFsIHdpdGgKKyAgICAvLyB0
aGUgbWFsZm9ybWVkIGNhc2Ugd2hlcmUgPGZvcm0+cyBhcmVuJ3QgaW4gb3VyIHBhcmVudCBjaGFp
biAoZS5nLiwgd2hlbiB0aGV5IHdlcmUgaW5zaWRlIAorICAgIC8vIDx0YWJsZT4gb3IgPHRib2R5
Pi4KKyAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBnZXRGb3JtKGVsZW1lbnQpOworICAgIGlm
IChmb3JtKQorICAgICAgICBzY29wZS5wdXNoKHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4odG9KUyhl
eGVjLCBmb3JtKSkpOworICAgIGVsc2UgeworICAgICAgICBXZWJDb3JlOjpOb2RlKiBmb3JtID0g
ZWxlbWVudC0+cGFyZW50Tm9kZSgpOworICAgICAgICB3aGlsZSAoZm9ybSAmJiAhZm9ybS0+aGFz
VGFnTmFtZShmb3JtVGFnKSkKKyAgICAgICAgICAgIGZvcm0gPSBmb3JtLT5wYXJlbnROb2RlKCk7
CiAKLXZvaWQgSlNIVE1MRWxlbWVudDo6ZW1iZWRTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQg
dG9rZW4sIEpTVmFsdWUqIHZhbHVlKQotewotICAgIEhUTUxFbWJlZEVsZW1lbnQmIGVtYmVkID0g
KnN0YXRpY19jYXN0PEhUTUxFbWJlZEVsZW1lbnQqPihpbXBsKCkpOwotICAgIHN3aXRjaCAodG9r
ZW4pIHsKLSAgICAgICAgY2FzZSBFbWJlZEFsaWduOiAgICAgICAgICAgeyBlbWJlZC5zZXRBbGln
bih2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOyByZXR1cm47IH0KLSAg
ICAgICAgY2FzZSBFbWJlZEhlaWdodDogICAgICAgICAgeyBlbWJlZC5zZXRIZWlnaHQodmFsdWUt
PnRvU3RyaW5nKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgRW1iZWROYW1lOiAgICAg
ICAgICAgIHsgZW1iZWQuc2V0TmFtZSh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2
YWx1ZSkpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBFbWJlZFNyYzogICAgICAgICAgICAgeyBl
bWJlZC5zZXRTcmModmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsgcmV0
dXJuOyB9Ci0gICAgICAgIGNhc2UgRW1iZWRUeXBlOiAgICAgICAgICAgIHsgZW1iZWQuc2V0VHlw
ZSh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOyByZXR1cm47IH0KLSAg
ICAgICAgY2FzZSBFbWJlZFdpZHRoOiAgICAgICAgICAgeyBlbWJlZC5zZXRXaWR0aCh2YWx1ZS0+
dG9TdHJpbmcoZXhlYykpOyByZXR1cm47IH0KKyAgICAgICAgaWYgKGZvcm0pCisgICAgICAgICAg
ICBzY29wZS5wdXNoKHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4odG9KUyhleGVjLCBmb3JtKSkpOwog
ICAgIH0KLX0KIAotdm9pZCBKU0hUTUxFbGVtZW50OjpwdXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0
ZSogZXhlYywgaW50IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgaW50KQotewotICAgIC8vIENoZWNr
IGZvciBwcm9wZXJ0aWVzIHRoYXQgYXBwbHkgdG8gYSBzcGVjaWZpYyBlbGVtZW50IHR5cGUuCi0g
ICAgY29uc3QgQWNjZXNzb3JzKiBhY2Nlc3MgPSBhY2Nlc3NvcnMoKTsKLSAgICBpZiAoYWNjZXNz
ICYmIGFjY2Vzcy0+bV9zZXR0ZXIpCi0gICAgICAgIHJldHVybiAodGhpcy0+KihhY2Nlc3MtPm1f
c2V0dGVyKSkoZXhlYywgdG9rZW4sIHZhbHVlKTsKKyAgICAvLyBUaGUgZWxlbWVudCBpcyBvbiB0
b3AsIHNlYXJjaGVkIGZpcnN0LgorICAgIHNjb3BlLnB1c2goc3RhdGljX2Nhc3Q8SlNPYmplY3Qq
Pih0b0pTKGV4ZWMsIGVsZW1lbnQpKSk7CiB9CiAKIEhUTUxFbGVtZW50KiB0b0hUTUxFbGVtZW50
KEpTVmFsdWUgKnZhbCkKQEAgLTY1Miw0ICszNDEsNjkgQEAgSlNWYWx1ZSogdG9KUyhFeGVjU3Rh
dGUqIGV4ZWMsIEhUTUxPcHRpbwogICAgIHJldHVybiBjYWNoZURPTU9iamVjdDxIVE1MT3B0aW9u
c0NvbGxlY3Rpb24sIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uPihleGVjLCBjKTsKIH0KIAorSlNW
YWx1ZSogcnVudGltZU9iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvcmln
aW5hbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCit7CisgICAgSlNIVE1MRWxlbWVudCogdGhpc09iaiA9IHN0YXRpY19jYXN0
PEpTSFRNTEVsZW1lbnQqPihzbG90LnNsb3RCYXNlKCkpOworICAgIEhUTUxFbGVtZW50KiBlbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPih0aGlzT2JqLT5pbXBsKCkpOworCisgICAg
cmV0dXJuIGdldFJ1bnRpbWVPYmplY3QoZXhlYywgZWxlbWVudCk7Cit9CisKK0pTVmFsdWUqIHJ1
bnRpbWVPYmplY3RQcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvcmln
aW5hbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCit7CisgICAgSlNIVE1MRWxlbWVudCogdGhpc09iaiA9IHN0YXRpY19jYXN0
PEpTSFRNTEVsZW1lbnQqPihzbG90LnNsb3RCYXNlKCkpOworICAgIEhUTUxFbGVtZW50KiBlbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPih0aGlzT2JqLT5pbXBsKCkpOworCisgICAg
aWYgKEpTVmFsdWUqIHJ1bnRpbWVPYmplY3QgPSBnZXRSdW50aW1lT2JqZWN0KGV4ZWMsIGVsZW1l
bnQpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihydW50aW1lT2JqZWN0
KS0+Z2V0KGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9
CisKK2Jvb2wgcnVudGltZU9iamVjdEN1c3RvbUdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
LCBKU0hUTUxFbGVtZW50KiBvcmlnaW5hbE9iaiwgSFRNTEVsZW1lbnQqIHRoaXNJbXApCit7Cisg
ICAgSlNWYWx1ZSogcnVudGltZU9iamVjdCA9IGdldFJ1bnRpbWVPYmplY3QoZXhlYywgdGhpc0lt
cCk7CisgICAgaWYgKHJ1bnRpbWVPYmplY3QpIHsKKyAgICAgICAgSlNPYmplY3QqIGltcCA9IHN0
YXRpY19jYXN0PEpTT2JqZWN0Kj4ocnVudGltZU9iamVjdCk7CisgICAgICAgIGlmIChpbXAtPmhh
c1Byb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tKG9yaWdpbmFsT2JqLCBydW50aW1lT2JqZWN0UHJvcGVydHlHZXR0ZXIpOworICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgcnVudGltZU9iamVjdEN1c3RvbVB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSogdmFsdWUsIGludCAvKmF0dHIqLywgSFRN
TEVsZW1lbnQqIHRoaXNJbXApCit7CisgICAgaWYgKEpTVmFsdWUqIHJ1bnRpbWVPYmplY3QgPSBn
ZXRSdW50aW1lT2JqZWN0KGV4ZWMsIHRoaXNJbXApKSB7CisgICAgICAgIEpTT2JqZWN0KiBpbXAg
PSBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHJ1bnRpbWVPYmplY3QpOworICAgICAgICBpZiAoaW1w
LT5jYW5QdXQoZXhlYywgcHJvcGVydHlOYW1lKSkgeworICAgICAgICAgICAgaW1wLT5wdXQoZXhl
YywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBydW50aW1lT2JqZWN0
SW1wbGVtZW50c0NhbGwoSFRNTEVsZW1lbnQqIHRoaXNJbXApCit7CisgICAgRnJhbWUqIGZyYW1l
ID0gdGhpc0ltcC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgS0pTUHJveHkqIHByb3h5ID0gZnJhbWUtPnNjcmlwdFByb3h5
KCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gcHJveHktPmludGVycHJldGVyKCktPmdsb2JhbEV4
ZWMoKTsKKyAgICBpZiAoSlNWYWx1ZSogcnVudGltZU9iamVjdCA9IGdldFJ1bnRpbWVPYmplY3Qo
ZXhlYywgdGhpc0ltcCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHJ1
bnRpbWVPYmplY3QpLT5pbXBsZW1lbnRzQ2FsbCgpOworCisgICAgcmV0dXJuIGZhbHNlOworfQor
CitKU1ZhbHVlKiBydW50aW1lT2JqZWN0Q2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogdGhpc09iaiwgY29uc3QgTGlzdCYgYXJncywgSFRNTEVsZW1lbnQqIHRoaXNJbXAp
Cit7CisgICAgaWYgKEpTVmFsdWUqIHJ1bnRpbWVPYmplY3QgPSBnZXRSdW50aW1lT2JqZWN0KGV4
ZWMsIHRoaXNJbXApKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihydW50
aW1lT2JqZWN0KS0+Y2FsbChleGVjLCB0aGlzT2JqLCBhcmdzKTsKKyAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMv
a2pzX2h0bWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19odG1sLmgJ
KHJldmlzaW9uIDIxODI3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Niw0MSArNDYsMTIgQEAgbmFtZXNwYWNlIEtKUyB7CiAgIGNsYXNzIEpT
SFRNTEVsZW1lbnQgOiBwdWJsaWMgV2ViQ29yZTo6SlNIVE1MRWxlbWVudCB7CiAgIHB1YmxpYzoK
ICAgICBKU0hUTUxFbGVtZW50KEV4ZWNTdGF0ZSosIFdlYkNvcmU6OkhUTUxFbGVtZW50Kik7Ci0g
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgSlNWYWx1ZSogZ2V0VmFsdWVQcm9wZXJ0eShF
eGVjU3RhdGUqLCBpbnQgdG9rZW4pIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKiwgaW50IGF0dHIg
PSBOb25lKTsKLSAgICB2b2lkIHB1dFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlKiwgaW50IHRva2Vu
LCBKU1ZhbHVlKiwgaW50KTsKLSAgICB2aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRl
KikgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHB1c2hFdmVudEhhbmRsZXJTY29wZShFeGVjU3Rh
dGUqLCBTY29wZUNoYWluICZzY29wZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBKU1ZhbHVlKiBjYWxs
QXNGdW5jdGlvbihFeGVjU3RhdGUqLCBKU09iamVjdCogdGhpc09iaiwgY29uc3QgTGlzdCYgYXJn
cyk7Ci0gICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDYWxsKCkgY29uc3Q7Ci0gICAgdmlydHVh
bCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0OwotICAgIHN0YXRpYyBjb25zdCBD
bGFzc0luZm8gaW5mbzsKIAotICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gb2JqZWN0X2luZm8s
IGVtYmVkX2luZm87CisgICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNv
bnN0IHsgcmV0dXJuICZpbmZvOyB9CisgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZvOwog
Ci0gICAgLy8gRklYTUU6IE1pZ2h0IG1ha2Ugc2Vuc2UgdG8gY29tYmluZSB0aGlzIHdpdGggQ2xh
c3NJbmZvIHNvbWUgZGF5LgotICAgIHR5cGVkZWYgSlNWYWx1ZSogKEpTSFRNTEVsZW1lbnQ6OipH
ZXR0ZXJGdW5jdGlvbikoRXhlY1N0YXRlKiwgaW50IHRva2VuKSBjb25zdDsKLSAgICB0eXBlZGVm
IHZvaWQgKEpTSFRNTEVsZW1lbnQ6OipTZXR0ZXJGdW5jdGlvbikoRXhlY1N0YXRlKiwgaW50IHRv
a2VuLCBKU1ZhbHVlKik7Ci0gICAgc3RydWN0IEFjY2Vzc29ycyB7IEdldHRlckZ1bmN0aW9uIG1f
Z2V0dGVyOyBTZXR0ZXJGdW5jdGlvbiBtX3NldHRlcjsgfTsKLSAgICBjb25zdCBBY2Nlc3NvcnMq
IGFjY2Vzc29ycygpIGNvbnN0OwotICAgIHN0YXRpYyBjb25zdCBBY2Nlc3NvcnMgb2JqZWN0X2Fj
Y2Vzc29ycywgZW1iZWRfYWNjZXNzb3JzOwotCi0gICAgSlNWYWx1ZSogb2JqZWN0R2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdDsKLSAgICB2b2lkICBvYmplY3RTZXR0ZXIo
RXhlY1N0YXRlKiwgaW50IHRva2VuLCBKU1ZhbHVlKik7Ci0gICAgSlNWYWx1ZSogZW1iZWRHZXR0
ZXIoRXhlY1N0YXRlKiwgaW50IHRva2VuKSBjb25zdDsKLSAgICB2b2lkICBlbWJlZFNldHRlcihF
eGVjU3RhdGUqLCBpbnQgdG9rZW4sIEpTVmFsdWUqKTsKLQotICAgIGVudW0gewotICAgICAgICAg
ICBPYmplY3RIc3BhY2UsIE9iamVjdEhlaWdodCwgT2JqZWN0QWxpZ24sCi0gICAgICAgICAgIE9i
amVjdEJvcmRlciwgT2JqZWN0Q29kZSwgT2JqZWN0VHlwZSwgT2JqZWN0VnNwYWNlLCBPYmplY3RB
cmNoaXZlLAotICAgICAgICAgICBPYmplY3REZWNsYXJlLCBPYmplY3RGb3JtLCBPYmplY3RDb2Rl
QmFzZSwgT2JqZWN0Q29kZVR5cGUsIE9iamVjdERhdGEsCi0gICAgICAgICAgIE9iamVjdE5hbWUs
IE9iamVjdFN0YW5kYnksIE9iamVjdFRhYkluZGV4LCBPYmplY3RVc2VNYXAsIE9iamVjdFdpZHRo
LCBPYmplY3RDb250ZW50RG9jdW1lbnQsIE9iamVjdEdldFNWR0RvY3VtZW50LAotICAgICAgICAg
ICBFbWJlZEFsaWduLCBFbWJlZEhlaWdodCwgRW1iZWROYW1lLCBFbWJlZFNyYywgRW1iZWRUeXBl
LCBFbWJlZFdpZHRoLCBFbWJlZEdldFNWR0RvY3VtZW50Ci0gICAgfTsKLSAgcHJpdmF0ZToKLSAg
ICBzdGF0aWMgSlNWYWx1ZSogcnVudGltZU9iamVjdEdldHRlcihFeGVjU3RhdGUqLCBKU09iamVj
dCosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKLSAgICBzdGF0aWMg
SlNWYWx1ZSogcnVudGltZU9iamVjdFByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSosIEpTT2JqZWN0
KiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwg
VVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgcHVz
aEV2ZW50SGFuZGxlclNjb3BlKEV4ZWNTdGF0ZSosIFNjb3BlQ2hhaW4mIHNjb3BlKSBjb25zdDsK
ICAgfTsKIAogICBXZWJDb3JlOjpIVE1MRWxlbWVudCogdG9IVE1MRWxlbWVudChKU1ZhbHVlKik7
IC8vIHJldHVybnMgMCBpZiBwYXNzZWQtaW4gdmFsdWUgaXMgbm90IGEgSlNIVE1MRWxlbWVudCBv
YmplY3QKQEAgLTEzMSw2ICsxMDIsMTMgQEAgbmFtZXNwYWNlIEtKUyB7CiAgIEpTVmFsdWUqIGdl
dEhUTUxDb2xsZWN0aW9uKEV4ZWNTdGF0ZSosIFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uKik7CiAg
IEpTVmFsdWUqIGdldEFsbEhUTUxDb2xsZWN0aW9uKEV4ZWNTdGF0ZSosIFdlYkNvcmU6OkhUTUxD
b2xsZWN0aW9uKik7CiAKLX0gLy8gbmFtZXNwYWNlCisgIEpTVmFsdWUqIHJ1bnRpbWVPYmplY3RH
ZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJv
cGVydHlTbG90Jik7CisgIEpTVmFsdWUqIHJ1bnRpbWVPYmplY3RQcm9wZXJ0eUdldHRlcihFeGVj
U3RhdGUqLCBKU09iamVjdCosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3Qm
KTsKKyAgYm9vbCBydW50aW1lT2JqZWN0Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmLCBKU0hUTUxFbGVtZW50KiwgV2Vi
Q29yZTo6SFRNTEVsZW1lbnQqKTsKKyAgYm9vbCBydW50aW1lT2JqZWN0Q3VzdG9tUHV0KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlKiwgaW50IGF0dHIsIFdlYkNvcmU6OkhU
TUxFbGVtZW50Kik7CisgIGJvb2wgcnVudGltZU9iamVjdEltcGxlbWVudHNDYWxsKFdlYkNvcmU6
OkhUTUxFbGVtZW50Kik7CisgIEpTVmFsdWUqIHJ1bnRpbWVPYmplY3RDYWxsQXNGdW5jdGlvbihF
eGVjU3RhdGUqLCBKU09iamVjdCosIGNvbnN0IExpc3QmLCBXZWJDb3JlOjpIVE1MRWxlbWVudCop
OworCit9IC8vIG5hbWVzcGFjZSBLSlMKIAotI2VuZGlmCisjZW5kaWYgLy8ga2pzX2h0bWxfaApJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZp
c2lvbiAyMTgyNykKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0JKHdvcmtpbmcgY29weSkKQEAgLTMyMiw2ICszMjIsOSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIK
ICAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChLSlM6OkV4ZWNTdGF0ZSos
IGNvbnN0IEtKUzo6SWRlbnRpZmllciYsIEtKUzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBLSlM6OkpTVmFsdWUqIGdldFZhbHVlUHJvcGVy
dHkoS0pTOjpFeGVjU3RhdGUqLCBpbnQgdG9rZW4pIGNvbnN0O1xuIik7CisgICAgICAgIGlmICgk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3Qi
fSkgeworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGN1c3RvbUdl
dE93blByb3BlcnR5U2xvdChLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6SWRlbnRpZmllciYs
IEtKUzo6UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgICMgQ2hl
Y2sgaWYgd2UgaGF2ZSBhbnkgd3JpdGFibGUgcHJvcGVydGllcwpAQCAtMzM1LDE1ICszMzgsMjQg
QEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgaWYgKCRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzKSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dChLSlM6
OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6SWRlbnRpZmllciYsIEtKUzo6SlNWYWx1ZSosIGludCBh
dHRyID0gS0pTOjpOb25lKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHZvaWQgcHV0VmFsdWVQcm9wZXJ0eShLSlM6OkV4ZWNTdGF0ZSosIGludCwgS0pTOjpKU1ZhbHVl
KiwgaW50IGF0dHIpO1xuIik7CisgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b21QdXRGdW5jdGlvbiJ9KSB7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIGJvb2wgY3VzdG9tUHV0KEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgS0pTOjpJ
ZGVudGlmaWVyJiwgS0pTOjpKU1ZhbHVlKiwgaW50IGF0dHIpO1xuIik7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICAjIENsYXNzIGluZm8KICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZp
cnR1YWwgY29uc3QgS0pTOjpDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZp
bmZvOyB9XG4iKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBjb25zdCBL
SlM6OkNsYXNzSW5mbyBpbmZvO1xuIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBz
dGF0aWMgY29uc3QgS0pTOjpDbGFzc0luZm8gaW5mbztcblxuIik7CiAKICAgICAjIEN1c3RvbSBt
YXJrIGZ1bmN0aW9uCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbU1hcmtGdW5jdGlvbiJ9KSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJcbiAg
ICB2aXJ0dWFsIHZvaWQgbWFyaygpO1xuXG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB2aXJ0dWFsIHZvaWQgbWFyaygpO1xuXG4iKTsKKyAgICB9CisKKyAgICAjIEN1c3Rv
bSBjYWxsIGZ1bmN0aW9ucworICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b21DYWxsIn0pIHsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0
dWFsIEtKUzo6SlNWYWx1ZSogY2FsbEFzRnVuY3Rpb24oS0pTOjpFeGVjU3RhdGUqLCBLSlM6OkpT
T2JqZWN0KiwgY29uc3QgS0pTOjpMaXN0JiBhcmdzKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0O1xuXG4i
KTsKICAgICB9CiAKICAgICAjIENvbnN0cnVjdG9yIG9iamVjdCBnZXR0ZXIKQEAgLTgwMyw2ICs4
MTUsMTIgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICYkaGFzTmFt
ZUdldHRlckdlbmVyYXRpb24oKTsKICAgICAgICAgfQogCisgICAgICAgIGlmICgkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QifSkgeworICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGJvb2wgZGlkR2V0ID0gY3VzdG9t
R2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoZGlkR2V0KVxuIik7CisgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7
CisgICAgICAgIH0KKwogICAgICAgICBpZiAoJHJlcXVpcmVzTWFudWFsTG9va3VwKSB7CiAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gJHtwYXJlbnRDbGFzc05hbWV9
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwogICAg
ICAgICB9IGVsc2UgewpAQCAtOTA3LDYgKzkyNSwxMiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47
XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDdXN0b21QdXRGdW5jdGlvbiJ9KSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgYm9vbCBkaWRQdXQgPSBjdXN0b21QdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgYXR0cik7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBpZiAoZGlkUHV0KVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJldHVybjtcbiIpOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBsb29rdXBQdXQ8JGNsYXNzTmFtZSwgJHBhcmVudENsYXNzTmFtZT4o
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgYXR0ciwgJiR7Y2xhc3NOYW1lfVRhYmxlLCB0aGlz
KTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCkBAIC0x
MDIwLDYgKzEwNDQsMTEgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4i
KTsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU1ZHQ2hlY2tTZWN1cml0eURvY3VtZW50In0pIHsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgaWYgKCFjaGVja05vZGVT
ZWN1cml0eShleGVjLCBpbXAtPmdldFNWR0RvY3VtZW50KCIgLiAoQHskZnVuY3Rpb24tPnJhaXNl
c0V4Y2VwdGlvbnN9ID8gImVjIiA6ICIiKSAuIikpKVxuIik7CisgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTtcbiIpOwor
ICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBteSAkcGFyYW1JbmRleCA9IDA7CiAgICAgICAg
ICAgICBteSAkZnVuY3Rpb25TdHJpbmcgPSAiaW1wIiAuICgkcG9kVHlwZSA/ICIuIiA6ICItPiIp
IC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKCI7CiAKSW5kZXg6IFdlYkNvcmUvaHRt
bC9IVE1MQXBwbGV0RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxB
cHBsZXRFbGVtZW50LmlkbAkocmV2aXNpb24gMjE4MjcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFw
cGxldEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CkBAIC0yMCw3ICsyMCw3IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbTGVn
YWN5UGFyZW50PUtKUzo6SlNIVE1MRWxlbWVudCwgR2VuZXJhdGVDb25zdHJ1Y3Rvcl0gSFRNTEFw
cGxldEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgaW50ZXJmYWNlIFtMZWdhY3lQYXJlbnQ9
S0pTOjpKU0hUTUxFbGVtZW50LCBHZW5lcmF0ZUNvbnN0cnVjdG9yLCBDdXN0b21QdXRGdW5jdGlv
biwgQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90LCBDdXN0b21DYWxsLCBIYXNPdmVycmlkaW5nTmFt
ZUdldHRlcl0gSFRNTEFwcGxldEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhbGlnbjsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIGFsdDsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIGFyY2hpdmU7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVtYmVk
RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQu
aWRsCShyZXZpc2lvbiAyMTgyNykKKysrIFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVs
IFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjAsMTMgKzIw
LDI2IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBIVE1MRW1iZWRFbGVtZW50
IDogSFRNTEVsZW1lbnQgeworICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6SlNIVE1M
RWxlbWVudCwgR2VuZXJhdGVDb25zdHJ1Y3RvciwgQ3VzdG9tUHV0RnVuY3Rpb24sIEN1c3RvbUdl
dE93blByb3BlcnR5U2xvdCwgQ3VzdG9tQ2FsbCwgSGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXJdIEhU
TUxFbWJlZEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhbGlnbjsKKyNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVy
dE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBoZWlnaHQ7CisjZWxzZQogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIGhlaWdodDsKKyNlbmRpZgog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIHNyYzsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7CisjaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKQorICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgd2lkdGg7CisjZWxzZQogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIHdpZHRoOworI2VuZGlmCisKKyNpZiBFTkFC
TEVfU1ZHCisgICAgICAgIFtTVkdDaGVja1NlY3VyaXR5RG9jdW1lbnRdIFNWR0RvY3VtZW50IGdl
dFNWR0RvY3VtZW50KCkKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworI2VuZGlm
CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsCShyZXZpc2lv
biAyMTgyNykKKysrIFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNh
bS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIwLDggKzIwLDcgQEAKIAogbW9k
dWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIEhUTUxPYmplY3RFbGVtZW50IDogSFRNTEVsZW1l
bnQgewotCisgICAgaW50ZXJmYWNlIFtMZWdhY3lQYXJlbnQ9S0pTOjpKU0hUTUxFbGVtZW50LCBH
ZW5lcmF0ZUNvbnN0cnVjdG9yLCBDdXN0b21QdXRGdW5jdGlvbiwgQ3VzdG9tR2V0T3duUHJvcGVy
dHlTbG90LCBDdXN0b21DYWxsLCBIYXNPdmVycmlkaW5nTmFtZUdldHRlcl0gSFRNTE9iamVjdEVs
ZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9y
bUVsZW1lbnQgZm9ybTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGNvZGU7CiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBhbGlnbjsKQEAg
LTQwLDggKzM5LDE0IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIHVzZU1hcDsKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICB2c3BhY2U7CiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAg
ICB3aWR0aDsKKwogICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQgICAgICAgIGNvbnRlbnREb2N1bWVudDsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDaGVja0ZyYW1lU2VjdXJpdHldIERvY3VtZW50ICAg
ICAgICBjb250ZW50RG9jdW1lbnQ7CisKKyNpZiBFTkFCTEVfU1ZHCisgICAgICAgIFtTVkdDaGVj
a1NlY3VyaXR5RG9jdW1lbnRdIFNWR0RvY3VtZW50IGdldFNWR0RvY3VtZW50KCkKKyAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworI2VuZGlmCiAKICNpZiBkZWZpbmVkKExBTkdVQUdF
X09CSkVDVElWRV9DKQogICAgICAgICAvLyBPYmplY3RpdmUtQyBleHRlbnNpb246CkluZGV4OiBX
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmlkbAkocmV2aXNpb24gMjE4MjcpCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgYXR0cmlidXRlIEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yIEVudGl0eVJlZmVyZW5jZTsK
ICAgICAgICAgYXR0cmlidXRlIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkNvbnN0cnVjdG9yIFByb2Nl
c3NpbmdJbnN0cnVjdGlvbjsKICAgICAgICAgCi0gICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
dGhlIGNvbW1lbnRlZC1vdXQgZ2xvYmFsIGNvbnN0cnVjdG9ycyBmb3IgZWxlbWVudHMgbGlzdGVk
IGluIERPTSBMZXZlbCAyIEhUTUwgc3BlY2lmaWNhdGlvbi4KICAgICAgICAgYXR0cmlidXRlIEhU
TUxFbGVtZW50Q29uc3RydWN0b3IgSFRNTEVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1M
QW5jaG9yRWxlbWVudENvbnN0cnVjdG9yIEhUTUxBbmNob3JFbGVtZW50OwogICAgICAgICBhdHRy
aWJ1dGUgSFRNTEFwcGxldEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MQXBwbGV0RWxlbWVudDsKQEAg
LTExMyw3ICsxMTIsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIEhUTUxN
ZW51RWxlbWVudENvbnN0cnVjdG9yIEhUTUxNZW51RWxlbWVudDsKICAgICAgICAgYXR0cmlidXRl
IEhUTUxNZXRhRWxlbWVudENvbnN0cnVjdG9yIEhUTUxNZXRhRWxlbWVudDsKICAgICAgICAgYXR0
cmlidXRlIEhUTUxNb2RFbGVtZW50Q29uc3RydWN0b3IgSFRNTE1vZEVsZW1lbnQ7Ci0vLyAgICAg
ICAgYXR0cmlidXRlIEhUTUxPYmplY3RFbGVtZW50Q29uc3RydWN0b3IgSFRNTE9iamVjdEVsZW1l
bnQ7CisgICAgICAgIGF0dHJpYnV0ZSBIVE1MT2JqZWN0RWxlbWVudENvbnN0cnVjdG9yIEhUTUxP
YmplY3RFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTE9MaXN0RWxlbWVudENvbnN0cnVj
dG9yIEhUTUxPTGlzdEVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MT3B0R3JvdXBFbGVt
ZW50Q29uc3RydWN0b3IgSFRNTE9wdEdyb3VwRWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhU
TUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IgSFRNTE9wdGlvbkVsZW1lbnQ7CkBAIC0xMzUsOCAr
MTM0LDEwIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgSFRNTFVMaXN0RWxl
bWVudENvbnN0cnVjdG9yIEhUTUxVTGlzdEVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1M
Q2FudmFzRWxlbWVudENvbnN0cnVjdG9yIEhUTUxDYW52YXNFbGVtZW50OwogICAgICAgICBhdHRy
aWJ1dGUgSFRNTE1hcnF1ZWVFbGVtZW50Q29uc3RydWN0b3IgSFRNTE1hcnF1ZWVFbGVtZW50Owor
ICAgICAgICBhdHRyaWJ1dGUgSFRNTEVtYmVkRWxlbWVudENvbnN0cnVjdG9yIEhUTUxFbWJlZEVs
ZW1lbnQ7CiAKICAgICAgICAgYXR0cmlidXRlIEhUTUxEb2N1bWVudENvbnN0cnVjdG9yIEhUTUxE
b2N1bWVudDsKKwogICAgICAgICBhdHRyaWJ1dGUgTXV0YXRpb25FdmVudENvbnN0cnVjdG9yIE11
dGF0aW9uRXZlbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBOb2RlRmlsdGVyQ29uc3RydWN0b3IgTm9k
ZUZpbHRlcjsKICAgICAgICAgYXR0cmlidXRlIFJhbmdlQ29uc3RydWN0b3IgUmFuZ2U7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMTgzMSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDA3LTA1LTI3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlIHJlc3VsdHMgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzODkzCisgICAgICAgIEF1dG9nZW5lcmF0ZSB0aGUgSlMgYmluZGluZ3MgZm9yIHRoZSBIVE1M
T2JqZWN0RWxlbWVudCwgCisgICAgICAgIEhUTUxFbWJlZEVsZW1lbnQgYW5kIEhUTUxBcHBsZXRF
bGVtZW50CisKKyAgICAgICAgLSBhY2NvdW50IGZvciB0aGUgbmV3IEpTSFRNTE9iamVjdEVsZW1l
bnQgYW5kIEpTSFRNTEVtYmVkRWxlbWVudCB0aGF0IGFyZQorICAgICAgICAgIGJlaW5nIGF1dG9n
ZW5lcmF0ZWQgYW5kIGNhbiBub3cgcHJvZHVjZSBjb25zdHJ1Y3RvcnMuCisKKyAgICAgICAgKiBm
YXN0L2RvbS9XaW5kb3cvZWxlbWVudC1jb25zdHJ1Y3RvcnMtb24td2luZG93LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0OgorCiAyMDA3LTA1LTI2ICBNaXR6IFBldHRlbCAgPG1pdHpAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBIeWF0dC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy9lbGVtZW50LWNvbnN0cnVjdG9ycy1vbi13aW5kb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9lbGVtZW50LWNvbnN0cnVjdG9ycy1vbi13
aW5kb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTgyNykKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9lbGVtZW50LWNvbnN0cnVjdG9ycy1vbi13aW5kb3ctZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIEhUTUxNZXRhRWxlbWVudDogW29iamVjdCBI
VE1MTWV0YUVsZW1lbnQKIAogSFRNTE1vZEVsZW1lbnQ6IFtvYmplY3QgSFRNTE1vZEVsZW1lbnRD
b25zdHJ1Y3Rvcl0KIAotSFRNTE9iamVjdEVsZW1lbnQ6IHVuZGVmaW5lZAorSFRNTE9iamVjdEVs
ZW1lbnQ6IFtvYmplY3QgSFRNTE9iamVjdEVsZW1lbnRDb25zdHJ1Y3Rvcl0KIAogSFRNTE9MaXN0
RWxlbWVudDogW29iamVjdCBIVE1MT0xpc3RFbGVtZW50Q29uc3RydWN0b3JdCiAKQEAgLTExMiw2
ICsxMTIsNiBAQCBIVE1MSW5zRWxlbWVudDogdW5kZWZpbmVkCiAKIEhUTUxEZWxFbGVtZW50OiB1
bmRlZmluZWQKIAotSFRNTEVtYmVkRWxlbWVudDogdW5kZWZpbmVkCitIVE1MRW1iZWRFbGVtZW50
OiBbb2JqZWN0IEhUTUxFbWJlZEVsZW1lbnRDb25zdHJ1Y3Rvcl0KIAogSFRNTE1hcnF1ZWVFbGVt
ZW50OiBbb2JqZWN0IEhUTUxNYXJxdWVlRWxlbWVudENvbnN0cnVjdG9yXQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTgyNykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUy
Miw2ICs1MjIsOCBAQCB3aW5kb3cuSFRNTERvY3VtZW50IFtvYmplY3QgSFRNTERvY3VtZW50CiB3
aW5kb3cuSFRNTERvY3VtZW50LnByb3RvdHlwZSBbcHJpbnRlZCBhYm92ZSBhcyB3aW5kb3cuRG9j
dW1lbnQucHJvdG90eXBlXQogd2luZG93LkhUTUxFbGVtZW50IFtvYmplY3QgSFRNTEVsZW1lbnRD
b25zdHJ1Y3Rvcl0KIHdpbmRvdy5IVE1MRWxlbWVudC5wcm90b3R5cGUgW3ByaW50ZWQgYWJvdmUg
YXMgd2luZG93LkVsZW1lbnQucHJvdG90eXBlXQord2luZG93LkhUTUxFbWJlZEVsZW1lbnQgW29i
amVjdCBIVE1MRW1iZWRFbGVtZW50Q29uc3RydWN0b3JdCit3aW5kb3cuSFRNTEVtYmVkRWxlbWVu
dC5wcm90b3R5cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93LkVsZW1lbnQucHJvdG90eXBlXQog
d2luZG93LkhUTUxGaWVsZFNldEVsZW1lbnQgW29iamVjdCBIVE1MRmllbGRTZXRFbGVtZW50Q29u
c3RydWN0b3JdCiB3aW5kb3cuSFRNTEZpZWxkU2V0RWxlbWVudC5wcm90b3R5cGUgW3ByaW50ZWQg
YWJvdmUgYXMgd2luZG93LkVsZW1lbnQucHJvdG90eXBlXQogd2luZG93LkhUTUxGb250RWxlbWVu
dCBbb2JqZWN0IEhUTUxGb250RWxlbWVudENvbnN0cnVjdG9yXQpAQCAtNTY4LDYgKzU3MCw4IEBA
IHdpbmRvdy5IVE1MTW9kRWxlbWVudCBbb2JqZWN0IEhUTUxNb2RFbGUKIHdpbmRvdy5IVE1MTW9k
RWxlbWVudC5wcm90b3R5cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93LkVsZW1lbnQucHJvdG90
eXBlXQogd2luZG93LkhUTUxPTGlzdEVsZW1lbnQgW29iamVjdCBIVE1MT0xpc3RFbGVtZW50Q29u
c3RydWN0b3JdCiB3aW5kb3cuSFRNTE9MaXN0RWxlbWVudC5wcm90b3R5cGUgW3ByaW50ZWQgYWJv
dmUgYXMgd2luZG93LkVsZW1lbnQucHJvdG90eXBlXQord2luZG93LkhUTUxPYmplY3RFbGVtZW50
IFtvYmplY3QgSFRNTE9iamVjdEVsZW1lbnRDb25zdHJ1Y3Rvcl0KK3dpbmRvdy5IVE1MT2JqZWN0
RWxlbWVudC5wcm90b3R5cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93LkVsZW1lbnQucHJvdG90
eXBlXQogd2luZG93LkhUTUxPcHRHcm91cEVsZW1lbnQgW29iamVjdCBIVE1MT3B0R3JvdXBFbGVt
ZW50Q29uc3RydWN0b3JdCiB3aW5kb3cuSFRNTE9wdEdyb3VwRWxlbWVudC5wcm90b3R5cGUgW3By
aW50ZWQgYWJvdmUgYXMgd2luZG93LkVsZW1lbnQucHJvdG90eXBlXQogd2luZG93LkhUTUxPcHRp
b25FbGVtZW50IFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5IVE1MRWxlbWVudF0K
</data>
<flag name="review"
          id="6077"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>