<?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>11268</bug_id>
          
          <creation_ts>2006-10-12 14:13:03 -0700</creation_ts>
          <short_desc>Implement the Objective-C DOM bindings for SVGNumber, SVGRect, and SVGPoint</short_desc>
          <delta_ts>2006-10-17 20:11:31 -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>SVG</component>
          <version>420+</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>53443</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-10-12 14:13:03 -0700</bug_when>
    <thetext>Getting these 3 classes to work should be one of the final hurdles to getting the Objective-C SVG DOM bindings working fully.  Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53444</commentid>
    <comment_count>1</comment_count>
      <attachid>11054</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-10-12 14:23:39 -0700</bug_when>
    <thetext>Created attachment 11054
patch

- Adds implementation for DOMSVGNumber, DOMSVGRect, and DOMSVGPoint.

- Moves the contents of ksvg/bindings/js/ to bindings/js/.

- Moves SVGZoomEvent.idl from ksvg/svg/ to ksvg/events/.

- Adds isSVGColor() and isSVGPaint() methods to StyleBase, matching the other CSSValue classing, and allowing the bindings to allocate appropriately.

- Removes #ifdefs around the getBBox() method in SVGLocatable.idl allowing generation for Objective-C.

- Assorted style cleanups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53445</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-10-12 14:25:58 -0700</bug_when>
    <thetext>Please note that I have not implemented caching for DOMSVGNumber, DOMSVGRect, or DOMSVGPoint as is done with the other Objective-C classes as I have not worked out a good way to do this yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52170</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-10-17 20:11:31 -0700</bug_when>
    <thetext>Landed in r17100.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11054</attachid>
            <date>2006-10-12 14:23:39 -0700</date>
            <delta_ts>2006-10-17 08:26:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>autoSVG.diff</filename>
            <type>text/plain</type>
            <size>68255</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNzAxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODcgQEAKKzIwMDYtMTAtMTIgIFNhbSBXZWluaWcgIDxzYW0ud2VpbmlnQGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQ
YXRjaCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjgKKyAg
ICAgICAgSW1wbGVtZW50IHRoZSBPYmplY3RpdmUtQyBET00gYmluZGluZ3MgZm9yIFNWR051bWJl
ciwgU1ZHUmVjdCwgYW5kIFNWR1BvaW50CisKKyAgICAgICAgLSBBZGRzIGltcGxlbWVudGF0aW9u
IGZvciBET01TVkdOdW1iZXIsIERPTVNWR1JlY3QsIGFuZCBET01TVkdQb2ludC4KKworICAgICAg
ICAtIE1vdmVzIHRoZSBjb250ZW50cyBvZiBrc3ZnL2JpbmRpbmdzL2pzLyB0byBiaW5kaW5ncy9q
cy8uCisKKyAgICAgICAgLSBNb3ZlcyBTVkdab29tRXZlbnQuaWRsIGZyb20ga3N2Zy9zdmcvIHRv
IGtzdmcvZXZlbnRzLy4KKworICAgICAgICAtIEFkZHMgaXNTVkdDb2xvcigpIGFuZCBpc1NWR1Bh
aW50KCkgbWV0aG9kcyB0byBTdHlsZUJhc2UsIG1hdGNoaW5nIAorICAgICAgICAgIHRoZSBvdGhl
ciBDU1NWYWx1ZSBjbGFzc2luZywgYW5kIGFsbG93aW5nIHRoZSBiaW5kaW5ncyB0byBhbGxvY2F0
ZQorICAgICAgICAgIGFwcHJvcHJpYXRlbHkuCisKKyAgICAgICAgLSBSZW1vdmVzICNpZmRlZnMg
YXJvdW5kIHRoZSBnZXRCQm94KCkgbWV0aG9kIGluIFNWR0xvY2F0YWJsZS5pZGwgYWxsb3dpbmcK
KyAgICAgICAgICBnZW5lcmF0aW9uIGZvciBPYmplY3RpdmUtQy4KKworICAgICAgICAtIEFzc29y
dGVkIHN0eWxlIGNsZWFudXBzLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmlu
ZGluZ3Mvb2JqYy9ET01DU1MubW06CisgICAgICAgICgrW0RPTUNTU1ZhbHVlIF9DU1NWYWx1ZVdp
dGg6V2ViQ29yZTo6XSk6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01FdmVudHMubW06Cisg
ICAgICAgICgrW0RPTUV2ZW50IF9ldmVudFdpdGg6V2ViQ29yZTo6XSk6CisgICAgICAgICogYmlu
ZGluZ3Mvb2JqYy9ET01TVkcuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVNWR051bWJl
ci5tbToKKyAgICAgICAgKC1bRE9NU1ZHTnVtYmVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1bRE9N
U1ZHTnVtYmVyIGZpbmFsaXplXSk6CisgICAgICAgICgtW0RPTVNWR051bWJlciB2YWx1ZV0pOgor
ICAgICAgICAoLVtET01TVkdOdW1iZXIgc2V0VmFsdWU6XSk6CisgICAgICAgICgtW0RPTVNWR051
bWJlciBfU1ZHTnVtYmVyXSk6CisgICAgICAgICgtW0RPTVNWR051bWJlciBfaW5pdFdpdGhGbG9h
dDpdKToKKyAgICAgICAgKCtbRE9NU1ZHTnVtYmVyIF9TVkdOdW1iZXJXaXRoOl0pOgorICAgICAg
ICAqIGJpbmRpbmdzL29iamMvRE9NU1ZHUG9pbnQubW06CisgICAgICAgICgtW0RPTVNWR1BvaW50
IGRlYWxsb2NdKToKKyAgICAgICAgKC1bRE9NU1ZHUG9pbnQgZmluYWxpemVdKToKKyAgICAgICAg
KC1bRE9NU1ZHUG9pbnQgeF0pOgorICAgICAgICAoLVtET01TVkdQb2ludCBzZXRYOl0pOgorICAg
ICAgICAoLVtET01TVkdQb2ludCB5XSk6CisgICAgICAgICgtW0RPTVNWR1BvaW50IHNldFk6XSk6
CisgICAgICAgICgtW0RPTVNWR1BvaW50IFdlYkNvcmU6Ol0pOgorICAgICAgICAoLVtET01TVkdQ
b2ludCBfaW5pdFdpdGhGbG9hdFBvaW50OldlYkNvcmU6Ol0pOgorICAgICAgICAoK1tET01TVkdQ
b2ludCBfU1ZHUG9pbnRXaXRoOldlYkNvcmU6Ol0pOgorICAgICAgICAqIGJpbmRpbmdzL29iamMv
RE9NU1ZHUmVjdC5tbToKKyAgICAgICAgKC1bRE9NU1ZHUmVjdCBkZWFsbG9jXSk6CisgICAgICAg
ICgtW0RPTVNWR1JlY3QgZmluYWxpemVdKToKKyAgICAgICAgKC1bRE9NU1ZHUmVjdCB4XSk6Cisg
ICAgICAgICgtW0RPTVNWR1JlY3Qgc2V0WDpdKToKKyAgICAgICAgKC1bRE9NU1ZHUmVjdCB5XSk6
CisgICAgICAgICgtW0RPTVNWR1JlY3Qgc2V0WTpdKToKKyAgICAgICAgKC1bRE9NU1ZHUmVjdCB3
aWR0aF0pOgorICAgICAgICAoLVtET01TVkdSZWN0IHNldFdpZHRoOl0pOgorICAgICAgICAoLVtE
T01TVkdSZWN0IGhlaWdodF0pOgorICAgICAgICAoLVtET01TVkdSZWN0IHNldEhlaWdodDpdKToK
KyAgICAgICAgKC1bRE9NU1ZHUmVjdCBXZWJDb3JlOjpdKToKKyAgICAgICAgKC1bRE9NU1ZHUmVj
dCBfaW5pdFdpdGhGbG9hdFJlY3Q6V2ViQ29yZTo6XSk6CisgICAgICAgICgrW0RPTVNWR1JlY3Qg
X1NWR1JlY3RXaXRoOldlYkNvcmU6Ol0pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvck9iakMucG06CisgICAgICAgICogY3NzL1N0eWxlQmFzZS5oOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVCYXNlOjppc1NWR0NvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
QmFzZTo6aXNTVkdQYWludCk6CisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdFbGVt
ZW50V3JhcHBlckZhY3RvcnkuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdz
L2pzL0pTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5Lmg6IFJlbW92ZWQuCisgICAgICAgICoga3N2
ZzIvYmluZGluZ3MvanMvSlNTVkdOdW1iZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcy
L2JpbmRpbmdzL2pzL0pTU1ZHTnVtYmVyLmg6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmlu
ZGluZ3MvanMvSlNTVkdQb2ludC5jcHA6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGlu
Z3MvanMvSlNTVkdQb2ludC5oOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2pz
L0pTU1ZHUmVjdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvanMvSlNT
VkdSZWN0Lmg6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0NvbG9yLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6aXNTVkdDb2xvcik6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5pZGw6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFRmxv
b2RFbGVtZW50LmlkbDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmlkbDoKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHTWFya2VyRWxlbWVudC5pZGw6CisgICAgICAgICoga3N2ZzIv
c3ZnL1NWR1BhaW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYWludDo6aXNTVkdQYWludCk6
CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1JlY3RFbGVtZW50LmlkbDoKKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHWm9vbUV2ZW50LmlkbDogUmVtb3ZlZC4KKwogMjAwNi0xMC0xMiAgTmlrb2xhcyBa
aW1tZXJtYW5uICA8emltbWVybWFubkBrZGUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1h
Y0RvbWUuCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxNzAxNykKKysrIFdlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBWUEFU
SCA9IFwKICAgICAkKFdlYkNvcmUpL3BhZ2UgXAogICAgICQoV2ViQ29yZSkveG1sIFwKICAgICAk
KFdlYkNvcmUpL2tzdmcyL3N2ZyBcCi0gICAgJChXZWJDb3JlKS9rc3ZnMi9iaW5kaW5ncy9qcyBc
CisgICAgJChXZWJDb3JlKS9rc3ZnMi9ldmVudHMgXAogIwogCiAuUEhPTlkgOiBhbGwKQEAgLTY1
NSw3ICs2NTUsNyBAQCBPQkpDX0JJTkRJTkdTX1NDUklQVFMgPSBcCiAjCiAKIERPTSUuaCA6ICUu
aWRsICQoT0JKQ19CSU5ESU5HU19TQ1JJUFRTKSBiaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVy
ZmFjZXMuaAotCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkv
YmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMgIiQoRkVBVFVS
RV9ERUZJTkVTKSBMQU5HVUFHRV9PQkpFQ1RJVkVfQyIgLS1nZW5lcmF0b3IgT2JqQyAtLWluY2x1
ZGUgZG9tIC0taW5jbHVkZSBodG1sIC0taW5jbHVkZSB4bWwgLS1pbmNsdWRlIC9rc3ZnMi9zdmcg
LS1vdXRwdXRkaXIgLiAkPAorCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQo
V2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMg
IiQoRkVBVFVSRV9ERUZJTkVTKSBMQU5HVUFHRV9PQkpFQ1RJVkVfQyIgLS1nZW5lcmF0b3IgT2Jq
QyAtLWluY2x1ZGUgZG9tIC0taW5jbHVkZSBodG1sIC0taW5jbHVkZSBjc3MgLS1pbmNsdWRlIHBh
Z2UgLS1pbmNsdWRlIHhtbCAtLWluY2x1ZGUgL2tzdmcyL3N2ZyAtLWluY2x1ZGUgL2tzdmcyL2V2
ZW50cyAtLW91dHB1dGRpciAuICQ8CiAKICMgbmV3LXN0eWxlIEphdmFTY3JpcHQgYmluZGluZ3MK
IApAQCAtNjY4LDQgKzY2OCw0IEBAIEpTX0JJTkRJTkdTX1NDUklQVFMgPSBcCiAjCiAKIEpTJS5o
IDogJS5pZGwgJChKU19CSU5ESU5HU19TQ1JJUFRTKQotCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5k
aW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5n
cy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAt
LWdlbmVyYXRvciBKUyAtLWluY2x1ZGUgZG9tIC0taW5jbHVkZSBodG1sIC0taW5jbHVkZSB4bWwg
LS1pbmNsdWRlIGtzdmcyL3N2ZyAtLW91dHB1dGRpciAuICQ8CisJcGVybCAtSSAkKFdlYkNvcmUp
L2JpbmRpbmdzL3NjcmlwdHMgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJp
bmRpbmdzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJ
UFQiIC0tZ2VuZXJhdG9yIEpTIC0taW5jbHVkZSBkb20gLS1pbmNsdWRlIGh0bWwgLS1pbmNsdWRl
IGNzcyAtLWluY2x1ZGUgcGFnZSAtLWluY2x1ZGUgeG1sIC0taW5jbHVkZSBrc3ZnMi9zdmcgLS1p
bmNsdWRlIC9rc3ZnMi9ldmVudHMgLS1vdXRwdXRkaXIgLiAkPApJbmRleDogV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE3MDE3KQorKysgV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTcx
NSw2ICs3MTUsMTUgQEAKIAkJODU1RDM1OEQwQUQ3MDdDQzAwMTlBQUM3IC8qIERPTVJHQkNvbG9y
LmggaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NUQz
NTg5MEFENzA3MzEwMDE5QUFDNyAvKiBET01SR0JDb2xvci5oICovOyB9OwogCQk4NTZDOEFFNDBB
OTEyNjQ5MDA1QzY4N0IgLyogRE9NT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NTZDOEFFMjBBOTEyNjQ5MDA1QzY4N0IgLyogRE9NT2JqZWN0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU2
QzhBRTUwQTkxMjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NkM4QUUzMEE5MTI2NDkwMDVDNjg3QiAvKiBE
T01PYmplY3QubW0gKi87IH07CisJCTg1NzREMUY5MEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR0Vs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTc0RDFGMTBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdFbGVtZW50V3Jh
cHBlckZhY3RvcnkuY3BwICovOyB9OworCQk4NTc0RDFGQTBBREU2MTIyMDA0Q0JBMTEgLyogSlNT
VkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1NzREMUYyMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR0VsZW1lbnRX
cmFwcGVyRmFjdG9yeS5oICovOyB9OworCQk4NTc0RDFGQjBBREU2MTIyMDA0Q0JBMTEgLyogSlNT
VkdOdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODU3NEQxRjMwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHTnVtYmVyLmNwcCAqLzsgfTsKKwkJ
ODU3NEQxRkMwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTc0RDFGNDBBREU2MTIyMDA0Q0JBMTEg
LyogSlNTVkdOdW1iZXIuaCAqLzsgfTsKKwkJODU3NEQxRkQwQURFNjEyMjAwNENCQTExIC8qIEpT
U1ZHUG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODU3NEQxRjUwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHUG9pbnQuY3BwICovOyB9OworCQk4
NTc0RDFGRTBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3NEQxRjYwQURFNjEyMjAwNENCQTExIC8q
IEpTU1ZHUG9pbnQuaCAqLzsgfTsKKwkJODU3NEQxRkYwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZH
UmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NTc0RDFGNzBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdSZWN0LmNwcCAqLzsgfTsKKwkJODU3NEQy
MDAwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3NEQxRjgwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZH
UmVjdC5oICovOyB9OworCQk4NTc0RDIzQTBBREU3RTNBMDA0Q0JBMTEgLyogU1ZHWm9vbUV2ZW50
LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3
NEQyMzkwQURFN0UzQTAwNENCQTExIC8qIFNWR1pvb21FdmVudC5pZGwgKi87IH07CiAJCTg1NzVE
RjdFMEFBNjEyN0UwMEY1REJCNSAvKiBET01IVE1MU3R5bGVFbGVtZW50LmggaW4gQ29weUZpbGVz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OUE5QzQ1MEFBNUUzQkQwMEI2
OTRCMiAvKiBET01IVE1MU3R5bGVFbGVtZW50LmggKi87IH07CiAJCTg1NzVERjgwMEFBNjEyRDYw
MEY1REJCNSAvKiBET01IVE1MQmFzZUVsZW1lbnQuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5QTlDM0QwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhU
TUxCYXNlRWxlbWVudC5oICovOyB9OwogCQk4NTc1REY4MTBBQTYxMkQ2MDBGNURCQjUgLyogRE9N
SFRNTEJvZHlFbGVtZW50LmggaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1OUE5QzNGMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQm9keUVsZW1lbnQu
aCAqLzsgfTsKQEAgLTE3MjMsMTQgKzE3MzIsNiBAQAogCQlBODIzQTc1QzA5QjZFNTM5MDBCNjA2
NDEgLyogR3JhcGhpY3NDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4MjNBNzVCMDlCNkU1MzkwMEI2MDY0MSAvKiBHcmFwaGljc0NvbnRl
eHQuY3BwICovOyB9OwogCQlBODI2RThBRTBBMUE4RjIzMDBDRDFCQjYgLyogSlNIVE1MT3B0aW9u
RWxlbWVudENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODI2RThBQzBBMUE4RjIzMDBDRDFCQjYgLyogSlNIVE1MT3B0aW9uRWxlbWVu
dENvbnN0cnVjdG9yLmggKi87IH07CiAJCUE4MjZFQzQ4MEExQjBDQkUwMENEMUJCNiAvKiBKU0hU
TUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTgyNkU4QUQwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTSFRNTE9w
dGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAgKi87IH07Ci0JCUE4MzNCQTdGMEEyQkEzRDQwMEQ1
NzY2NCAvKiBKU1NWR1JlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MzNCQTc1MEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR1JlY3QuaCAqLzsgfTsK
LQkJQTgzM0JBODEwQTJCQTNENDAwRDU3NjY0IC8qIEpTU1ZHUmVjdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQkE3NzBBMkJBM0Q0MDBENTc2
NjQgLyogSlNTVkdSZWN0LmNwcCAqLzsgfTsKLQkJQTgzM0JBODIwQTJCQTNENDAwRDU3NjY0IC8q
IEpTU1ZHTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODMzQkE3ODBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdOdW1iZXIuaCAqLzsgfTsKLQkJ
QTgzM0JBODUwQTJCQTNENDAwRDU3NjY0IC8qIEpTU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNCQTdCMEEyQkEzRDQwMEQ1NzY2NCAv
KiBKU1NWR1BvaW50LmggKi87IH07Ci0JCUE4MzNCQTg2MEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NW
R1BvaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MzNCQTdDMEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR1BvaW50LmNwcCAqLzsgfTsKLQkJQTgz
M0JBODcwQTJCQTNENDAwRDU3NjY0IC8qIEpTU1ZHTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNCQTdEMEEyQkEzRDQwMEQ1NzY2NCAv
KiBKU1NWR051bWJlci5jcHAgKi87IH07Ci0JCUE4MzNDNkQ4MEEyQ0VBNzcwMEQ1NzY2NCAvKiBK
U1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgzM0M2RDYwQTJDRUE3NzAwRDU3NjY0IC8qIEpTU1ZHRWxlbWVu
dFdyYXBwZXJGYWN0b3J5LmggKi87IH07Ci0JCUE4MzNDNkQ5MEEyQ0VBNzcwMEQ1NzY2NCAvKiBK
U1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzZENzBBMkNFQTc3MDBENTc2NjQgLyogSlNTVkdFbGVt
ZW50V3JhcHBlckZhY3RvcnkuY3BwICovOyB9OwogCQlBODMzQzdDQTBBMkNGMDZCMDBENTc2NjQg
LyogU1ZHTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjU2NTgxRTgwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR05hbWVzLmNwcCAqLzsgfTsKIAkJ
QTgzM0M3Q0MwQTJDRjA3NDAwRDU3NjY0IC8qIFhMaW5rTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgxRUEwOUQxNTA4RDAwMEU2MUQ3
IC8qIFhMaW5rTmFtZXMuY3BwICovOyB9OwogCQlBODMzQzgwQzBBMkNGMjU2MDBENTc2NjQgLyog
WE1MTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgzM0M4MEEwQTJDRjI1NjAwRDU3NjY0IC8qIFhNTE5hbWVzLmNwcCAqLzsgfTsKQEAgLTM2
MjQsNiArMzYyNSwxNSBAQAogCQk4NTVEMzU4OTBBRDcwNzMxMDAxOUFBQzcgLyogRE9NUkdCQ29s
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVJHQkNvbG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NkM4QUUyMEE5MTI2NDkwMDVDNjg3QiAvKiBE
T01PYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTZDOEFFMzBBOTEyNjQ5MDA1QzY4N0Ig
LyogRE9NT2JqZWN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IERPTU9iamVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU3NEQxRjEwQURF
NjEyMjAwNENCQTExIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1NzREMUYyMEFERTYxMjIwMDRDQkEx
MSAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODU3NEQxRjMwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHTnVtYmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR051bWJlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1NzREMUY0MEFERTYxMjIwMDRDQkExMSAv
KiBKU1NWR051bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdO
dW1iZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU3NEQxRjUwQURFNjEyMjAw
NENCQTExIC8qIEpTU1ZHUG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTU1ZHUG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTc0
RDFGNjBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNTVkdQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4NTc0RDFGNzBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdSZWN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR1JlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4NTc0RDFGODBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdSZWN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR1JlY3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODU3NEQyMzkwQURFN0UzQTAwNENCQTExIC8qIFNWR1pvb21FdmVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR1pvb21FdmVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1N0UwQjIzMEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3Vz
ZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01Nb3VzZUV2ZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1N0UwQjI0MEFCMDQzNDYwMDM2RTQ0
NyAvKiBET01Nb3VzZUV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IERPTU1vdXNlRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1
N0UwQjJCMEFCMDQzRkMwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50UHJpdmF0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTW91c2VFdmVudFByaXZhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ1MTksMTIgKzQ1MjksNiBAQAogCQlBODJGQzMzQjA4
Q0JCMDdDMDBFRkVFMjMgLyogU1ZHQ3Vyc29yRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0N1cnNvckVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4MkZD
MzNDMDhDQkIwN0MwMEVGRUUyMyAvKiBTVkdDdXJzb3JFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQ3Vyc29yRWxlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQlBODMzQjk5MzBBMkI3N0Q1MDBENTc2NjQgLyogU1ZHRG9jdW1lbnQuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTVkdEb2N1bWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUE4MzNCQTc1MEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR1JlY3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBODMzQkE3NzBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdSZWN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR1JlY3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODMzQkE3ODBBMkJBM0Q0MDBENTc2NjQgLyogSlNT
VkdOdW1iZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHTnVtYmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MzNCQTdCMEEyQkEzRDQwMEQ1NzY2
NCAvKiBKU1NWR1BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NW
R1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MzNCQTdDMEEyQkEzRDQw
MEQ1NzY2NCAvKiBKU1NWR1BvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1NWR1BvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgz
M0JBN0QwQTJCQTNENDAwRDU3NjY0IC8qIEpTU1ZHTnVtYmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR051bWJlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4MzNCRTlGMEEyQzMyOTMwMEQ1NzY2NCAvKiBTVkdMZW5ndGguaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdMZW5ndGguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBODMzQkVBMDBBMkMzMjkzMDBENTc2NjQgLyogU1ZHUmVjdC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNWR1JlY3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBODMzQkVBMTBBMkMzMjkzMDBENTc2NjQgLyogU1ZHUG9pbnQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTVkdQb2ludC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00NTM0LDggKzQ1MzgsNiBAQAogCQlBODMzQzBBODBBMkM0RkVDMDBENTc2NjQgLyogU1ZHQW5n
bGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmdsZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4MzNDMEE5MEEyQzRGRUMwMEQ1NzY2NCAvKiBTVkdUcmFuc2Zv
cm0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdUcmFuc2Zvcm0uaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBODMzQzVFNzBBMkNDQkE0MDBENTc2NjQgLyogU1ZHRWxl
bWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0VsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBODMzQzZENjBBMkNFQTc3MDBENTc2NjQgLyogSlNTVkdF
bGVtZW50V3JhcHBlckZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE4MzNDNkQ3MEEyQ0VBNzcwMEQ1NzY2NCAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9y
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdFbGVtZW50
V3JhcHBlckZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODMzQzc0
NDBBMkNFQzhGMDBENTc2NjQgLyogU1ZHU1ZHRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFNWR1NWR0VsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
ODMzQzdGNjBBMkNGMUQ4MDBENTc2NjQgLyogeG1sYXR0cnMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IHhtbGF0dHJzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODMzQzgw
QTBBMkNGMjU2MDBENTc2NjQgLyogWE1MTmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFhNTE5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTUxNjIsNyArNTE2NCw2IEBACiAJCUIyQ0I0MTYyMEFCNzU5MDQwMDREOUM0NSAvKiBTVkdV
c2VFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHVXNlRWxlbWVudC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQ0I0MTYzMEFCNzU5MDQwMDREOUM0NSAv
KiBTVkdWaWV3RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR1ZpZXdFbGVt
ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJDQjQxNjQwQUI3NTkwNDAw
NEQ5QzQ1IC8qIFNWR1pvb21BbmRQYW4uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkda
b29tQW5kUGFuLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjJDQjQxNjUwQUI3
NTkwNDAwNEQ5QzQ1IC8qIFNWR1pvb21FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFNWR1pvb21FdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyRTk1NDYx
MEFCNUZCN0YwMDc2REUzNyAvKiBTVkdBbmltYXRlZEFuZ2xlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU1ZHQW5pbWF0ZWRBbmdsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUIyRTk1NDYyMEFCNUZCN0YwMDc2REUzNyAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmltYXRlZEJvb2xlYW4uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCMkU5NTQ2MzBBQjVGQjdGMDA3NkRFMzcgLyogU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0FuaW1hdGVkRW51
bWVyYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzY4MCwzMyArNzY4
MSw5IEBACiAJCQlwYXRoID0gaHRtbDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
Ci0JCUE4MTIyQzdCMDhENTY0QjAwMDg0NEZBMyAvKiBiaW5kaW5ncyAqLyA9IHsKLQkJCWlzYSA9
IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQTgzM0JBMUYwQTJCQTAyQjAwRDU3NjY0
IC8qIGpzICovLAotCQkJKTsKLQkJCXBhdGggPSBiaW5kaW5nczsKLQkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7Ci0JCX07Ci0JCUE4MzNCQTFGMEEyQkEwMkIwMEQ1NzY2NCAvKiBqcyAqLyA9IHsK
LQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQTgzM0M2RDcwQTJDRUE3
NzAwRDU3NjY0IC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAqLywKLQkJCQlBODMz
QzZENjBBMkNFQTc3MDBENTc2NjQgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAqLywK
LQkJCQlBODMzQkE3RDBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdOdW1iZXIuY3BwICovLAotCQkJ
CUE4MzNCQTc4MEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR051bWJlci5oICovLAotCQkJCUE4MzNC
QTdDMEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR1BvaW50LmNwcCAqLywKLQkJCQlBODMzQkE3QjBB
MkJBM0Q0MDBENTc2NjQgLyogSlNTVkdQb2ludC5oICovLAotCQkJCUE4MzNCQTc3MEEyQkEzRDQw
MEQ1NzY2NCAvKiBKU1NWR1JlY3QuY3BwICovLAotCQkJCUE4MzNCQTc1MEEyQkEzRDQwMEQ1NzY2
NCAvKiBKU1NWR1JlY3QuaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0ganM7Ci0JCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwotCQl9OwogCQlBOEMwRjZFOTA4OTcwMUYxMDBCQTUxMTQgLyoga3N2ZzIg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUE4MTIyQzdC
MDhENTY0QjAwMDg0NEZBMyAvKiBiaW5kaW5ncyAqLywKIAkJCQlBOEMwRjZGMjA4OTcwMUYxMDBC
QTUxMTQgLyogY3NzICovLAogCQkJCUE4QzBGN0YxMDg5NzAxRjMwMEJBNTExNCAvKiBldmVudHMg
Ki8sCiAJCQkJQThDMEY2RUEwODk3MDFGMTAwQkE1MTE0IC8qIG1pc2MgKi8sCkBAIC03NzU0LDYg
Kzc3MzEsNyBAQAogCQkJCUE4REY1NDVDMDk4M0E3NTEwMDUyOTgxQiAvKiBKU1NWR0xhenlFdmVu
dExpc3RlbmVyLmggKi8sCiAJCQkJQThDMEY3RjUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1pvb21F
dmVudC5jcHAgKi8sCiAJCQkJQThDMEY3RjYwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1pvb21FdmVu
dC5oICovLAorCQkJCTg1NzREMjM5MEFERTdFM0EwMDRDQkExMSAvKiBTVkdab29tRXZlbnQuaWRs
ICovLAogCQkJKTsKIAkJCXBhdGggPSBldmVudHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtNzgzMyw3ICs3ODExLDYgQEAKIAkJCQlCMkNCNDE2MjBBQjc1OTA0MDA0RDlDNDUgLyog
U1ZHVXNlRWxlbWVudC5pZGwgKi8sCiAJCQkJQjJDQjQxNjMwQUI3NTkwNDAwNEQ5QzQ1IC8qIFNW
R1ZpZXdFbGVtZW50LmlkbCAqLywKIAkJCQlCMkNCNDE2NDBBQjc1OTA0MDA0RDlDNDUgLyogU1ZH
Wm9vbUFuZFBhbi5pZGwgKi8sCi0JCQkJQjJDQjQxNjUwQUI3NTkwNDAwNEQ5QzQ1IC8qIFNWR1pv
b21FdmVudC5pZGwgKi8sCiAJCQkJQjJDQjQxMUQwQUI3NThGNDAwNEQ5QzQ1IC8qIFNWR0VsbGlw
c2VFbGVtZW50LmlkbCAqLywKIAkJCQlCMkNCNDEwMTBBQjc1OEU2MDA0RDlDNDUgLyogU1ZHQUVs
ZW1lbnQuaWRsICovLAogCQkJCUIyQ0I0MTAyMEFCNzU4RTYwMDREOUM0NSAvKiBTVkdBbmltYXRl
Q29sb3JFbGVtZW50LmlkbCAqLywKQEAgLTgyODcsNiArODI2NCwxNCBAQAogCQkJCUE4MjZFOEFD
MEExQThGMjMwMENEMUJCNiAvKiBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuaCAqLywK
IAkJCQk0NDhBRDI3QTBBNDgxMzc5MDAyM0QxNzkgLyogSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25D
dXN0b20uY3BwICovLAogCQkJCTFBNzUwREQzMEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVy
YXRvckN1c3RvbS5jcHAgKi8sCisJCQkJODU3NEQxRjEwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZH
RWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAqLywKKwkJCQk4NTc0RDFGMjBBREU2MTIyMDA0Q0JB
MTEgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAqLywKKwkJCQk4NTc0RDFGMzBBREU2
MTIyMDA0Q0JBMTEgLyogSlNTVkdOdW1iZXIuY3BwICovLAorCQkJCTg1NzREMUY0MEFERTYxMjIw
MDRDQkExMSAvKiBKU1NWR051bWJlci5oICovLAorCQkJCTg1NzREMUY1MEFERTYxMjIwMDRDQkEx
MSAvKiBKU1NWR1BvaW50LmNwcCAqLywKKwkJCQk4NTc0RDFGNjBBREU2MTIyMDA0Q0JBMTEgLyog
SlNTVkdQb2ludC5oICovLAorCQkJCTg1NzREMUY3MEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR1Jl
Y3QuY3BwICovLAorCQkJCTg1NzREMUY4MEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR1JlY3QuaCAq
LywKIAkJCQkxQTc1MEUzMzBBOTBGODlGMDAwRkYyMTUgLyogSlNUcmVlV2Fsa2VyQ3VzdG9tLmNw
cCAqLywKIAkJCQk5M0I3MEQ0MTA5RUIwQzdDMDA5RDg0NjggLyogSlNYTUxIdHRwUmVxdWVzdC5j
cHAgKi8sCiAJCQkJOTNCNzBENDIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTWE1MSHR0cFJlcXVlc3Qu
aCAqLywKQEAgLTk2ODUsMTAgKzk2NzAsNiBAQAogCQkJCUE4RDA2NEZDMEEyM0MwQ0MwMDVFNzIw
MyAvKiBKU0hUTUxGb3JtRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREQ3Q0RGMjUwQTIz
Q0Y5ODAwMDY5OTI4IC8qIENTU1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEQw
NkIzOTBBMjY1RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmggaW4gSGVhZGVycyAqLywKLQkJCQlB
ODMzQkE3RjBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdSZWN0LmggaW4gSGVhZGVycyAqLywKLQkJ
CQlBODMzQkE4MjBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICov
LAotCQkJCUE4MzNCQTg1MEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR1BvaW50LmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBODMzQzZEODBBMkNFQTc3MDBENTc2NjQgLyogSlNTVkdFbGVtZW50V3JhcHBl
ckZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MzNDODBEMEEyQ0YyNTYwMEQ1NzY2NCAv
KiBYTUxOYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyNkU2QkMwQTJFM0IxMjAwNUMyOUZB
IC8qIEljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyNkU2QkYwQTJFM0IyOTAw
NUMyOUZBIC8qIFdlYkNvcmVJY29uRGF0YWJhc2VCcmlkZ2UuaCBpbiBIZWFkZXJzICovLApAQCAt
MTAzOTgsNiArMTAzNzksMTAgQEAKIAkJCQk2NTZEMzc0NjBBREJBNURFMDBBNDU1NEQgLyogV2Vi
UG9saWN5RGVjaWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3NDgwQURCQTVERTAwQTQ1
NTREIC8qIFdlYlN1YnJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUJBQUFC
RTBBRENBMDE1MDA1QkI1QTQgLyogUmV0YWluUHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQk4NTc0
RDFGQTBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTg1NzREMUZDMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR051bWJlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJODU3NEQxRkUwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHUG9p
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTg1NzREMjAwMEFERTYxMjIwMDRDQkExMSAvKiBKU1NW
R1JlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTA0NDUsNiArMTA0MzAsNyBAQAogCQkJbWFpbkdy
b3VwID0gMDg2N0Q2OTFGRTg0MDI4RkMwMkFBQzA3IC8qIFdlYktpdCAqLzsKIAkJCXByb2R1Y3RS
ZWZHcm91cCA9IDAzNDc2OERGRkYzOEE1MDQxMURCOUM4QiAvKiBQcm9kdWN0cyAqLzsKIAkJCXBy
b2plY3REaXJQYXRoID0gIiI7CisJCQlwcm9qZWN0Um9vdCA9ICIiOwogCQkJdGFyZ2V0cyA9ICgK
IAkJCQk5M0YxOThBNTA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZSAqLywKIAkJCQlERDA0MUZC
RTA5RDlEREJFMDAxMEFGMkEgLyogRGVyaXZlZCBTb3VyY2VzICovLApAQCAtMTA0ODksNiArMTA0
NzUsNyBAQAogCQkJCTFDRDQ0MThGMEE0Q0U3NkYwMEEwMDdBQiAvKiBub3J0aFNvdXRoUmVzaXpl
Q3Vyc29yLnRpZmYgaW4gUmVzb3VyY2VzICovLAogCQkJCTFDRDQ0MTkwMEE0Q0U3NkYwMEEwMDdB
QiAvKiBub3J0aFdlc3RTb3V0aEVhc3RSZXNpemVDdXJzb3IudGlmZiBpbiBSZXNvdXJjZXMgKi8s
CiAJCQkJNTExNTA5NUMwQTlDRTA0NzAwOTAxMDEzIC8qIHVybEljb24udGlmZiBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJODU3NEQyM0EwQURFN0UzQTAwNENCQTExIC8qIFNWR1pvb21FdmVudC5pZGwg
aW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpAQCAtMTExNTUsMTAgKzExMTQyLDYgQEAKIAkJCQlBOEQwNjRGQjBB
MjNDMENDMDA1RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThEMDY1QUUwQTI0NDZDRDAwNUU3MjAzIC8qIEpTSFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4RDA2QjNBMEEyNjVEQ0QwMDVFNzIwMyAvKiBIVE1MTmFt
ZXMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgzM0JBODEwQTJCQTNENDAwRDU3NjY0IC8qIEpT
U1ZHUmVjdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODMzQkE4NjBBMkJBM0Q0MDBENTc2NjQg
LyogSlNTVkdQb2ludC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODMzQkE4NzBBMkJBM0Q0MDBE
NTc2NjQgLyogSlNTVkdOdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgzM0M2RDkwQTJD
RUE3NzAwRDU3NjY0IC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4MzNDN0NBMEEyQ0YwNkIwMEQ1NzY2NCAvKiBTVkdOYW1lcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBODMzQzdDQzBBMkNGMDc0MDBENTc2NjQgLyogWExpbmtOYW1lcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODMzQzgwQzBBMkNGMjU2MDBENTc2NjQgLyogWE1MTmFtZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMTYyNiw2ICsxMTYwOSwxMCBAQAogCQkJCTY1NkQzNzQ0
MEFEQkE1REUwMEE0NTU0RCAvKiBXZWJOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTY1NkQzNzQ3MEFEQkE1REUwMEE0NTU0RCAvKiBXZWJQb2xpY3lEZWNp
ZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU2RDM3NDkwQURCQTVERTAwQTQ1NTREIC8qIFdl
YlN1YnJlc291cmNlTG9hZGVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODU3NEQxRjkwQURFNjEy
MjAwNENCQTExIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTg1NzREMUZCMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR051bWJlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk4NTc0RDFGRDBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdQb2ludC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk4NTc0RDFGRjBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdSZWN0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTUy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTLm1tCShyZXZpc2lv
biAxNzAxNykKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1MubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDEwICs0NSwxNCBAQAogI2ltcG9ydCAiRE9NV2luZG93LmgiCiAjaW1wb3J0ICJE
b2N1bWVudC5oIgogI2ltcG9ydCAiU3R5bGVTaGVldC5oIgotCiAjaW1wb3J0IDxvYmpjL29iamMt
Y2xhc3MuaD4KICNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KIAorI2lmZGVmIFNWR19TVVBQT1JUCisj
aW1wb3J0ICJET01TVkdDb2xvci5oIgorI2ltcG9ydCAiRE9NU1ZHUGFpbnQuaCIKKyNlbmRpZgor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgdHlwZWRlZiBET01XaW5kb3cgQWJzdHJhY3RWaWV3
OwogfQpAQCAtMTg5LDkgKzE5MywxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAg
ICB3cmFwcGVyQ2xhc3MgPSBbRE9NQ1NTVmFsdWVMaXN0IGNsYXNzXTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIERPTV9DU1NfSU5IRVJJVDoKLSAgICAgICAgY2FzZSBET01fQ1NT
X0NVU1RPTToKICAgICAgICAgICAgIHdyYXBwZXJDbGFzcyA9IFtET01DU1NWYWx1ZSBjbGFzc107
CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET01fQ1NTX0NVU1RPTToKKyNpZmRl
ZiBTVkdfU1VQUE9SVAorICAgICAgICAgICAgaWYgKGltcGwtPmlzU1ZHUGFpbnQoKSkKKyAgICAg
ICAgICAgICAgICB3cmFwcGVyQ2xhc3MgPSBbRE9NU1ZHUGFpbnQgY2xhc3NdOworICAgICAgICAg
ICAgZWxzZSBpZiAoaW1wbC0+aXNTVkdDb2xvcigpKQorICAgICAgICAgICAgICAgIHdyYXBwZXJD
bGFzcyA9IFtET01TVkdDb2xvciBjbGFzc107CisgICAgICAgICAgICBlbHNlCisjZW5kaWYKKyAg
ICAgICAgICAgICAgICB3cmFwcGVyQ2xhc3MgPSBbRE9NQ1NTVmFsdWUgY2xhc3NdOworICAgICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBbW1t3cmFwcGVyQ2xhc3MgYWxsb2NdIF9p
bml0V2l0aENTU1ZhbHVlOmltcGxdIGF1dG9yZWxlYXNlXTsKIH0KSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01FdmVudHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUV2ZW50cy5tbQkocmV2aXNpb24gMTcwMTcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NRXZlbnRzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04MywxNCArODMsMTQgQEAKICAgICAg
ICAgd3JhcHBlckNsYXNzID0gW0RPTU11dGF0aW9uRXZlbnQgY2xhc3NdOwogICAgIGVsc2UgaWYg
KGltcGwtPmlzS2V5Ym9hcmRFdmVudCgpKQogICAgICAgICB3cmFwcGVyQ2xhc3MgPSBbRE9NS2V5
Ym9hcmRFdmVudCBjbGFzc107Ci0gICAgZWxzZSBpZiAoaW1wbC0+aXNVSUV2ZW50KCkpCi0gICAg
ICAgIHdyYXBwZXJDbGFzcyA9IFtET01VSUV2ZW50IGNsYXNzXTsKLSAgICBlbHNlIGlmIChpbXBs
LT5pc092ZXJmbG93RXZlbnQoKSkKLSAgICAgICAgd3JhcHBlckNsYXNzID0gW0RPTU92ZXJmbG93
RXZlbnQgY2xhc3NdOwogI2lmZGVmIFNWR19TVVBQT1JUCiAgICAgZWxzZSBpZiAoaW1wbC0+aXNT
Vkdab29tRXZlbnQoKSkKICAgICAgICAgd3JhcHBlckNsYXNzID0gW0RPTVNWR1pvb21FdmVudCBj
bGFzc107CiAjZW5kaWYKKyAgICBlbHNlIGlmIChpbXBsLT5pc1VJRXZlbnQoKSkKKyAgICAgICAg
d3JhcHBlckNsYXNzID0gW0RPTVVJRXZlbnQgY2xhc3NdOworICAgIGVsc2UgaWYgKGltcGwtPmlz
T3ZlcmZsb3dFdmVudCgpKQorICAgICAgICB3cmFwcGVyQ2xhc3MgPSBbRE9NT3ZlcmZsb3dFdmVu
dCBjbGFzc107CiAgICAgZWxzZQogICAgICAgICB3cmFwcGVyQ2xhc3MgPSBbRE9NRXZlbnQgY2xh
c3NdOwogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NU1ZHLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVNWRy5oCShyZXZpc2lvbiAxNzAxNykKKysrIFdl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01TVkcuaAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdOdW1iZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RE9NU1ZHTnVtYmVyTGlzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdQYWludC5oPgorI2lt
cG9ydCA8V2ViQ29yZS9ET01TVkdQYXRoRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01T
VkdQYXRoU2VnLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR1BhdGhTZWdBcmNBYnMuaD4KICNp
bXBvcnQgPFdlYkNvcmUvRE9NU1ZHUGF0aFNlZ0FyY1JlbC5oPgpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTVNWR051bWJlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NU1ZHTnVtYmVyLm1tCShyZXZpc2lvbiAxNzAxNykKKysrIFdlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01TVkdOdW1iZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTMyLDI5ICszMiwzMCBA
QAogCiAjaW1wb3J0ICJET01JbnRlcm5hbC5oIgogCisjZGVmaW5lIElNUEwgKihyZWludGVycHJl
dF9jYXN0PGZsb2F0Kj4oX2ludGVybmFsKSkKKwogQGltcGxlbWVudGF0aW9uIERPTVNWR051bWJl
cgogCiAtICh2b2lkKWRlYWxsb2MKIHsKLSAgICAvLyBGSVhNRTogSU1QTEVNRU5UIE1FCisgICAg
ZGVsZXRlIHJlaW50ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihfaW50ZXJuYWwpOwogICAgIFtzdXBlciBk
ZWFsbG9jXTsKIH0KIAogLSAodm9pZClmaW5hbGl6ZQogewotICAgIC8vIEZJWE1FOiBJTVBMRU1F
TlQgTUUKKyAgICBkZWxldGUgcmVpbnRlcnByZXRfY2FzdDxmbG9hdCo+KF9pbnRlcm5hbCk7CiAg
ICAgW3N1cGVyIGZpbmFsaXplXTsKIH0KIAogLSAoZmxvYXQpdmFsdWUKIHsKLSAgICAvLyBGSVhN
RTogSU1QTEVNRU5UIE1FCi0gICAgcmV0dXJuIDAuMDsKKyAgICByZXR1cm4gSU1QTDsKIH0KIAog
LSAodm9pZClzZXRWYWx1ZTooZmxvYXQpbmV3VmFsdWUKIHsKLSAgICAvLyBGSVhNRTogSU1QTEVN
RU5UIE1FCisgICAgSU1QTCA9IG5ld1ZhbHVlOwogfQogCiBAZW5kCkBAIC02MywyMCArNjQsMjIg
QEAKIAogLSAoZmxvYXQpX1NWR051bWJlcgogewotICAgIC8vIEZJWE1FOiBJTVBMRU1FTlQgTUUK
LSAgICByZXR1cm4gMC4wOworICAgIHJldHVybiBJTVBMOwogfQogCiAtIChpZClfaW5pdFdpdGhG
bG9hdDooZmxvYXQpdmFsdWUKIHsKLSAgICAvLyBGSVhNRTogSU1QTEVNRU5UIE1FCisgICAgLy8g
RklYTUU6IEltcGxlbWVudCBDYWNoaW5nCiAgICAgW3N1cGVyIF9pbml0XTsKKyAgICBmbG9hdCAq
aW1wbCA9IG5ldyBmbG9hdDsKKyAgICAqaW1wbCA9IHZhbHVlOworICAgIF9pbnRlcm5hbCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8RE9NT2JqZWN0SW50ZXJuYWwqPihpbXBsKTsKICAgICByZXR1cm4gc2Vs
ZjsKIH0KIAogKyAoRE9NU1ZHTnVtYmVyICopX1NWR051bWJlcldpdGg6KGZsb2F0KXZhbHVlCiB7
Ci0gICAgLy8gRklYTUU6IElNUExFTUVOVCBNRQorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgQ2Fj
aGluZwogICAgIHJldHVybiBbW1tzZWxmIGFsbG9jXSBfaW5pdFdpdGhGbG9hdDp2YWx1ZV0gYXV0
b3JlbGVhc2VdOwogfQogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NU1ZHUG9pbnQu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVNWR1BvaW50Lm1tCShy
ZXZpc2lvbiAxNzAxNykKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01TVkdQb2ludC5tbQko
d29ya2luZyBjb3B5KQpAQCAtMzMsNDAgKzMzLDQwIEBACiAjaW1wb3J0ICJET01JbnRlcm5hbC5o
IgogI2ltcG9ydCAiRmxvYXRQb2ludC5oIgogCisjZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2Fz
dDxXZWJDb3JlOjpGbG9hdFBvaW50Kj4oX2ludGVybmFsKQorCiBAaW1wbGVtZW50YXRpb24gRE9N
U1ZHUG9pbnQKIAogLSAodm9pZClkZWFsbG9jCiB7Ci0gICAgLy8gRklYTUU6IElNUExFTUVOVCBN
RQorICAgIGRlbGV0ZSBJTVBMOwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAogLSAodm9pZClm
aW5hbGl6ZQogewotICAgIC8vIEZJWE1FOiBJTVBMRU1FTlQgTUUKKyAgICBkZWxldGUgSU1QTDsK
ICAgICBbc3VwZXIgZmluYWxpemVdOwogfQogCiAtIChmbG9hdCl4CiB7Ci0gICAgLy8gRklYTUU6
IElNUExFTUVOVCBNRQotICAgIHJldHVybiAwLjA7CisgICAgcmV0dXJuIElNUEwtPngoKTsKIH0K
IAogLSAodm9pZClzZXRYOihmbG9hdCluZXdYCiB7Ci0gICAgLy8gRklYTUU6IElNUExFTUVOVCBN
RQorICAgIElNUEwtPnNldFgobmV3WCk7CiB9CiAKIC0gKGZsb2F0KXkKIHsKLSAgICAvLyBGSVhN
RTogSU1QTEVNRU5UIE1FCi0gICAgcmV0dXJuIDAuMDsKKyAgICByZXR1cm4gSU1QTC0+eSgpOwog
fQogCiAtICh2b2lkKXNldFk6KGZsb2F0KW5ld1kKIHsKLSAgICAvLyBGSVhNRTogSU1QTEVNRU5U
IE1FCisgICAgSU1QTC0+c2V0WShuZXdZKTsKIH0KIAogLSAoRE9NU1ZHUG9pbnQgKiltYXRyaXhU
cmFuc2Zvcm06KERPTVNWR01hdHJpeCAqKW1hdHJpeApAQCAtODEsMjAgKzgxLDIxIEBACiAKIC0g
KFdlYkNvcmU6OkZsb2F0UG9pbnQpX1NWR1BvaW50CiB7Ci0gICAgLy8gRklYTUU6IElNUExFTUVO
VCBNRQotICAgIHJldHVybiBXZWJDb3JlOjpGbG9hdFBvaW50KCk7CisgICAgcmV0dXJuICooSU1Q
TCk7CiB9CiAKLS0gKGlkKV9pbml0V2l0aEZsb2F0UG9pbnQ6KFdlYkNvcmU6OkZsb2F0UG9pbnQp
aW1wbAorLSAoaWQpX2luaXRXaXRoRmxvYXRQb2ludDooV2ViQ29yZTo6RmxvYXRQb2ludCl2YWx1
ZQogewotICAgIC8vIEZJWE1FOiBJTVBMRU1FTlQgTUUKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50
IENhY2hpbmcKICAgICBbc3VwZXIgX2luaXRdOworICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgKmlt
cGwgPSBuZXcgV2ViQ29yZTo6RmxvYXRQb2ludCh2YWx1ZSk7CisgICAgX2ludGVybmFsID0gcmVp
bnRlcnByZXRfY2FzdDxET01PYmplY3RJbnRlcm5hbCo+KGltcGwpOwogICAgIHJldHVybiBzZWxm
OwogfQogCiArIChET01TVkdQb2ludCAqKV9TVkdQb2ludFdpdGg6KFdlYkNvcmU6OkZsb2F0UG9p
bnQpaW1wbAogewotICAgIC8vIEZJWE1FOiBJTVBMRU1FTlQgTUUKKyAgICAvLyBGSVhNRTogSW1w
bGVtZW50IENhY2hpbmcKICAgICByZXR1cm4gW1tbc2VsZiBhbGxvY10gX2luaXRXaXRoRmxvYXRQ
b2ludDppbXBsXSBhdXRvcmVsZWFzZV07CiB9CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01TVkdSZWN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01T
VkdSZWN0Lm1tCShyZXZpc2lvbiAxNzAxNykKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01T
VkdSZWN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2MiArMzMsNjAgQEAKICNpbXBvcnQgIkRP
TUludGVybmFsLmgiCiAjaW1wb3J0ICJGbG9hdFJlY3QuaCIKIAorI2RlZmluZSBJTVBMIHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RmxvYXRSZWN0Kj4oX2ludGVybmFsKQorCiBAaW1wbGVtZW50
YXRpb24gRE9NU1ZHUmVjdAogCiAtICh2b2lkKWRlYWxsb2MKIHsKLSAgICAvLyBGSVhNRTogSU1Q
TEVNRU5UIE1FCisgICAgZGVsZXRlIElNUEw7CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCiAt
ICh2b2lkKWZpbmFsaXplCiB7Ci0gICAgLy8gRklYTUU6IElNUExFTUVOVCBNRQorICAgIGRlbGV0
ZSBJTVBMOwogICAgIFtzdXBlciBmaW5hbGl6ZV07CiB9CiAKIC0gKGZsb2F0KXgKIHsKLSAgICAv
LyBGSVhNRTogSU1QTEVNRU5UIE1FCi0gICAgcmV0dXJuIDAuMDsKKyAgICByZXR1cm4gSU1QTC0+
eCgpOwogfQogCiAtICh2b2lkKXNldFg6KGZsb2F0KW5ld1gKIHsKLSAgICAvLyBGSVhNRTogSU1Q
TEVNRU5UIE1FCisgICAgSU1QTC0+c2V0WChuZXdYKTsKIH0KIAogLSAoZmxvYXQpeQogewotICAg
IC8vIEZJWE1FOiBJTVBMRU1FTlQgTUUKLSAgICByZXR1cm4gMC4wOworICAgIHJldHVybiBJTVBM
LT55KCk7CiB9CiAKIC0gKHZvaWQpc2V0WTooZmxvYXQpbmV3WQogewotICAgIC8vIEZJWE1FOiBJ
TVBMRU1FTlQgTUUKKyAgICBJTVBMLT5zZXRZKG5ld1kpOwogfQogCiAtIChmbG9hdCl3aWR0aAog
ewotICAgIC8vIEZJWE1FOiBJTVBMRU1FTlQgTUUKLSAgICByZXR1cm4gMC4wOworICAgIHJldHVy
biBJTVBMLT53aWR0aCgpOwogfQogCiAtICh2b2lkKXNldFdpZHRoOihmbG9hdCluZXdXaWR0aAog
ewotICAgIC8vIEZJWE1FOiBJTVBMRU1FTlQgTUUKKyAgICBJTVBMLT5zZXRXaWR0aChuZXdXaWR0
aCk7CiB9CiAKIC0gKGZsb2F0KWhlaWdodAogewotICAgIC8vIEZJWE1FOiBJTVBMRU1FTlQgTUUK
LSAgICByZXR1cm4gMC4wOworICAgIHJldHVybiBJTVBMLT5oZWlnaHQoKTsKIH0KIAogLSAodm9p
ZClzZXRIZWlnaHQ6KGZsb2F0KW5ld0hlaWdodAogewotICAgIC8vIEZJWE1FOiBJTVBMRU1FTlQg
TUUKKyAgICBJTVBMLT5zZXRIZWlnaHQobmV3SGVpZ2h0KTsKIH0KIAogQGVuZApAQCAtOTcsMjEg
Kzk1LDIyIEBACiAKIC0gKFdlYkNvcmU6OkZsb2F0UmVjdClfU1ZHUmVjdAogewotICAgIC8vIEZJ
WE1FOiBJTVBMRU1FTlQgTUUKLSAgICByZXR1cm4gV2ViQ29yZTo6RmxvYXRSZWN0KCk7CisgICAg
cmV0dXJuICooSU1QTCk7CiB9CiAKLS0gKGlkKV9pbml0V2l0aEZsb2F0UmVjdDooV2ViQ29yZTo6
RmxvYXRSZWN0KWltcGwKKy0gKGlkKV9pbml0V2l0aEZsb2F0UmVjdDooV2ViQ29yZTo6RmxvYXRS
ZWN0KXZhbHVlCiB7Ci0gICAgLy8gRklYTUU6IElNUExFTUVOVCBNRQorICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgQ2FjaGluZwogICAgIFtzdXBlciBfaW5pdF07CisgICAgV2ViQ29yZTo6RmxvYXRS
ZWN0ICppbXBsID0gbmV3IFdlYkNvcmU6OkZsb2F0UmVjdCh2YWx1ZSk7CisgICAgX2ludGVybmFs
ID0gcmVpbnRlcnByZXRfY2FzdDxET01PYmplY3RJbnRlcm5hbCo+KGltcGwpOwogICAgIHJldHVy
biBzZWxmOwogfQogCi0rIChET01TVkdSZWN0ICopX1NWR1JlY3RXaXRoOihXZWJDb3JlOjpGbG9h
dFJlY3QpaW1wbAorKyAoRE9NU1ZHUmVjdCAqKV9TVkdSZWN0V2l0aDooV2ViQ29yZTo6RmxvYXRS
ZWN0KXZhbHVlCiB7Ci0gICAgLy8gRklYTUU6IElNUExFTUVOVCBNRQotICAgIHJldHVybiBbW1tz
ZWxmIGFsbG9jXSBfaW5pdFdpdGhGbG9hdFJlY3Q6aW1wbF0gYXV0b3JlbGVhc2VdOworICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgQ2FjaGluZworICAgIHJldHVybiBbW1tzZWxmIGFsbG9jXSBfaW5p
dFdpdGhGbG9hdFJlY3Q6dmFsdWVdIGF1dG9yZWxlYXNlXTsKIH0KIAogQGVuZApJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkocmV2aXNpb24g
MTcwMTcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0J
KHdvcmtpbmcgY29weSkKQEAgLTkxNCw3ICs5MTQsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICAgICAgICAgICRhdHRyaWJ1dGVJbnRlcmZhY2VOYW1lIC49ICJCb3JkZXJz
IjsKICAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGVOYW1lIGVxICJvd25lckRvY3VtZW50
IikgewogICAgICAgICAgICAgICAgICMgRklYTUU6IGZvciBub3cgc3BlY2lhbCBjYXNlIGF0dHJp
YnV0ZSBvd25lckRvY3VtZW50IHRvIGNhbGwgZG9jdW1lbnQsIHRoaXMgaXMgaW5jb3JyZWN0Ci0g
ICAgICAgICAgICAgICAgIyBsZWdhY3kgYmVoYXZpb3IuIChzZWUgaHR0cDovL2J1Z3ppbGxhLm9w
ZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4OSkKKyAgICAgICAgICAgICAgICAjIGxl
Z2FjeSBiZWhhdmlvci4gKHNlZSBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDg4OSkKICAgICAgICAgICAgICAgICAkYXR0cmlidXRlTmFtZSA9ICJkb2N1bWVudCI7CiAg
ICAgICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJGlk
bFR5cGUpKSB7CiAgICAgICAgICAgICAgICAgIyBTcGVjaWFsIGNhc2UgZm9yIGFuaW1hdGVkIHR5
cGVzLgpJbmRleDogV2ViQ29yZS9jc3MvU3R5bGVCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9jc3MvU3R5bGVCYXNlLmgJKHJldmlzaW9uIDE3MDE3KQorKysgV2ViQ29yZS9jc3MvU3R5bGVC
YXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw4IEBACiAgKiBUaGlzIGZpbGUgaXMgcGFy
dCBvZiB0aGUgQ1NTIGltcGxlbWVudGF0aW9uIGZvciBLREUuCiAgKgogICogQ29weXJpZ2h0IChD
KSAxOTk5LTIwMDMgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqICAgICAgICAgICAgICAg
MTk5OSBXYWxkbyBCYXN0aWFuIChiYXN0aWFuQGtkZS5vcmcpCisgKiBDb3B5cmlnaHQgKEMpIDE5
OTkgV2FsZG8gQmFzdGlhbiAoYmFzdGlhbkBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA2
IFNhbXVlbCBXZWluaWcgKHNhbS53ZWluaWdAZ21pYWwuY29tKQogICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNjUsNiArNjYs
MTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQcmltaXRp
dmVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBp
c1ZhbHVlTGlzdCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1Zh
bHVlQ3VzdG9tKCkgeyByZXR1cm4gZmFsc2U7IH0KKyNpZmRlZiBTVkdfU1VQUE9SVAorICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNTVkdDb2xvcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc1NWR1BhaW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNl
bmRpZgogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYXJzZVN0cmluZyhjb25zdCBTdHJpbmcmLCBi
b29sIC8qc3RyaWN0Ki8gPSBmYWxzZSkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVh
bCB2b2lkIGNoZWNrTG9hZGVkKCk7CkluZGV4OiBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2pzL0pT
U1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcy
L2JpbmRpbmdzL2pzL0pTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkocmV2aXNpb24gMTcw
MTcpCisrKyBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwyNDYgKzAsMCBAQAotLyoKLSAqICBDb3B5cmln
aHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
ICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDU5
IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZmRlZiBTVkdfU1VQUE9SVAotCi0jaW5jbHVk
ZSAiSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKLQotI2luY2x1ZGUgIkpTU1ZHQUVsZW1l
bnQuaCIKLSNpbmNsdWRlICJKU1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCIKLSNpbmNsdWRlICJK
U1NWR0FuaW1hdGVFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdBbmltYXRlVHJhbnNmb3JtRWxl
bWVudC5oIgotI2luY2x1ZGUgIkpTU1ZHQ2lyY2xlRWxlbWVudC5oIgotI2luY2x1ZGUgIkpTU1ZH
Q2xpcFBhdGhFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdDdXJzb3JFbGVtZW50LmgiCi0jaW5j
bHVkZSAiSlNTVkdEZWZzRWxlbWVudC5oIgotI2luY2x1ZGUgIkpTU1ZHRGVzY0VsZW1lbnQuaCIK
LSNpbmNsdWRlICJKU1NWR0VsbGlwc2VFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdGRUJsZW5k
RWxlbWVudC5oIgotI2luY2x1ZGUgIkpTU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaCIKLSNpbmNs
dWRlICJKU1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdG
RUNvbXBvc2l0ZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudC5oIgotI2luY2x1ZGUgIkpTU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgiCi0jaW5j
bHVkZSAiSlNTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR0ZFRmxv
b2RFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdGRUZ1bmNBRWxlbWVudC5oIgotI2luY2x1ZGUg
IkpTU1ZHRkVGdW5jQkVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR0ZFRnVuY0dFbGVtZW50Lmgi
Ci0jaW5jbHVkZSAiSlNTVkdGRUZ1bmNSRWxlbWVudC5oIgotI2luY2x1ZGUgIkpTU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdGRUltYWdlRWxlbWVudC5oIgotI2lu
Y2x1ZGUgIkpTU1ZHRkVNZXJnZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR0ZFTWVyZ2VOb2Rl
RWxlbWVudC5oIgotI2luY2x1ZGUgIkpTU1ZHRkVPZmZzZXRFbGVtZW50LmgiCi0jaW5jbHVkZSAi
SlNTVkdGRVBvaW50TGlnaHRFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdGRVNwb3RMaWdodEVsZW1lbnQuaCIKLSNp
bmNsdWRlICJKU1NWR0ZFVGlsZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR0ZFVHVyYnVsZW5j
ZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR0ZpbHRlckVsZW1lbnQuaCIKLSNpbmNsdWRlICJK
U1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdHRWxlbWVudC5oIgot
I2luY2x1ZGUgIkpTU1ZHSW1hZ2VFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdMaW5lYXJHcmFk
aWVudEVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR0xpbmVFbGVtZW50LmgiCi0jaW5jbHVkZSAi
SlNTVkdNYXJrZXJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdNYXNrRWxlbWVudC5oIgotI2lu
Y2x1ZGUgIkpTU1ZHTWV0YWRhdGFFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdQYXRoRWxlbWVu
dC5oIgotI2luY2x1ZGUgIkpTU1ZHUGF0dGVybkVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR1Bv
bHlnb25FbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdQb2x5bGluZUVsZW1lbnQuaCIKLSNpbmNs
dWRlICJKU1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIgotI2luY2x1ZGUgIkpTU1ZHUmVjdEVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR1NjcmlwdEVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NW
R1NldEVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR1N0b3BFbGVtZW50LmgiCi0jaW5jbHVkZSAi
SlNTVkdTdHlsZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR1NWR0VsZW1lbnQuaCIKLSNpbmNs
dWRlICJKU1NWR1N3aXRjaEVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR1N5bWJvbEVsZW1lbnQu
aCIKLSNpbmNsdWRlICJKU1NWR1RleHRFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdUaXRsZUVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR1RSZWZFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNTVkdU
U3BhbkVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1NWR1VzZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJK
U1NWR1ZpZXdFbGVtZW50LmgiCi0KLSNpbmNsdWRlICJTVkdOYW1lcy5oIgotCi0jaW5jbHVkZSAi
U1ZHQUVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlQ29sb3JFbGVtZW50LmgiCi0jaW5j
bHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR0NpcmNsZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdD
bGlwUGF0aEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdDdXJzb3JFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiU1ZHRGVmc0VsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdEZXNjRWxlbWVudC5oIgotI2luY2x1
ZGUgIlNWR0VsbGlwc2VFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHRkVCbGVuZEVsZW1lbnQuaCIK
LSNpbmNsdWRlICJTVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR0ZFQ29t
cG9uZW50VHJhbnNmZXJFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHRkVDb21wb3NpdGVFbGVtZW50
LmgiCi0jaW5jbHVkZSAiU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgiCi0jaW5jbHVkZSAi
U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHRkVEaXN0YW50TGln
aHRFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHRkVGbG9vZEVsZW1lbnQuaCIKLSNpbmNsdWRlICJT
VkdGRUZ1bmNBRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR0ZFRnVuY0JFbGVtZW50LmgiCi0jaW5j
bHVkZSAiU1ZHRkVGdW5jR0VsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdGRUZ1bmNSRWxlbWVudC5o
IgotI2luY2x1ZGUgIlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR0ZF
SW1hZ2VFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHRkVNZXJnZUVsZW1lbnQuaCIKLSNpbmNsdWRl
ICJTVkdGRU1lcmdlTm9kZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdGRU9mZnNldEVsZW1lbnQu
aCIKLSNpbmNsdWRlICJTVkdGRVBvaW50TGlnaHRFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHRkVT
cGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR0ZFU3BvdExpZ2h0RWxlbWVu
dC5oIgotI2luY2x1ZGUgIlNWR0ZFVGlsZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdGRVR1cmJ1
bGVuY2VFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHRmlsdGVyRWxlbWVudC5oIgotI2luY2x1ZGUg
IlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHR0VsZW1lbnQuaCIKLSNp
bmNsdWRlICJTVkdJbWFnZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdMaW5lRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR01hcmtl
ckVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdNYXNrRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR01l
dGFkYXRhRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR1BhdGhFbGVtZW50LmgiCi0jaW5jbHVkZSAi
U1ZHUGF0dGVybkVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdQb2x5Z29uRWxlbWVudC5oIgotI2lu
Y2x1ZGUgIlNWR1BvbHlsaW5lRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR1JlY3RFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHU2Ny
aXB0RWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR1NldEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdT
dG9wRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR1N0eWxlRWxlbWVudC5oIgotI2luY2x1ZGUgIlNW
R1NWR0VsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdTd2l0Y2hFbGVtZW50LmgiCi0jaW5jbHVkZSAi
U1ZHU3ltYm9sRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR1RleHRFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiU1ZHVGl0bGVFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHVFJlZkVsZW1lbnQuaCIKLSNpbmNs
dWRlICJTVkdUU3BhbkVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdVc2VFbGVtZW50LmgiCi0jaW5j
bHVkZSAiU1ZHVmlld0VsZW1lbnQuaCIKLQotdXNpbmcgbmFtZXNwYWNlIEtKUzsKLQotLy8gRklY
TUU6IEV2ZW50dWFsbHkgdGhpcyBmaWxlIHNob3VsZCBiZSBhdXRvZ2VuZXJhdGVkLCBqdXN0IGxp
a2UgU1ZHTmFtZXMsIFNWR0VsZW1lbnRGYWN0b3J5LCBldGMuCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotdXNpbmcgbmFtZXNwYWNlIFNWR05hbWVzOwotCi10eXBlZGVmIERPTU5vZGUqICgqQ3Jl
YXRlU1ZHRWxlbWVudFdyYXBwZXJGdW5jdGlvbikoRXhlY1N0YXRlKiwgUGFzc1JlZlB0cjxTVkdF
bGVtZW50Pik7Ci0KLSNkZWZpbmUgRk9SX0VBQ0hfVEFHKG1hY3JvKSBcCi0gICAgbWFjcm8oYSwg
QSkgXAotICAgIG1hY3JvKGFuaW1hdGVDb2xvciwgQW5pbWF0ZUNvbG9yKSBcCi0gICAgbWFjcm8o
YW5pbWF0ZSwgQW5pbWF0ZSkgXAotICAgIG1hY3JvKGFuaW1hdGVUcmFuc2Zvcm0sIEFuaW1hdGVU
cmFuc2Zvcm0pIFwKLSAgICBtYWNybyhjaXJjbGUsIENpcmNsZSkgXAotICAgIG1hY3JvKGNsaXBQ
YXRoLCBDbGlwUGF0aCkgXAotICAgIG1hY3JvKGN1cnNvciwgQ3Vyc29yKSBcCi0gICAgbWFjcm8o
ZGVmcywgRGVmcykgXAotICAgIG1hY3JvKGRlc2MsIERlc2MpIFwKLSAgICBtYWNybyhlbGxpcHNl
LCBFbGxpcHNlKSBcCi0gICAgbWFjcm8oZmVCbGVuZCwgRkVCbGVuZCkgXAotICAgIG1hY3JvKGZl
Q29sb3JNYXRyaXgsIEZFQ29sb3JNYXRyaXgpIFwKLSAgICBtYWNybyhmZUNvbXBvbmVudFRyYW5z
ZmVyLCBGRUNvbXBvbmVudFRyYW5zZmVyKSBcCi0gICAgbWFjcm8oZmVDb21wb3NpdGUsIEZFQ29t
cG9zaXRlKSBcCi0gICAgbWFjcm8oZmVEaWZmdXNlTGlnaHRpbmcsIEZFRGlmZnVzZUxpZ2h0aW5n
KSBcCi0gICAgbWFjcm8oZmVEaXNwbGFjZW1lbnRNYXAsIEZFRGlzcGxhY2VtZW50TWFwKSBcCi0g
ICAgbWFjcm8oZmVEaXN0YW50TGlnaHQsIEZFRGlzdGFudExpZ2h0KSBcCi0gICAgbWFjcm8oZmVG
bG9vZCwgRkVGbG9vZCkgXAotICAgIG1hY3JvKGZlRnVuY0EsIEZFRnVuY0EpIFwKLSAgICBtYWNy
byhmZUZ1bmNCLCBGRUZ1bmNCKSBcCi0gICAgbWFjcm8oZmVGdW5jRywgRkVGdW5jRykgXAotICAg
IG1hY3JvKGZlRnVuY1IsIEZFRnVuY1IpIFwKLSAgICBtYWNybyhmZUdhdXNzaWFuQmx1ciwgRkVH
YXVzc2lhbkJsdXIpIFwKLSAgICBtYWNybyhmZUltYWdlLCBGRUltYWdlKSBcCi0gICAgbWFjcm8o
ZmVNZXJnZSwgRkVNZXJnZSkgXAotICAgIG1hY3JvKGZlTWVyZ2VOb2RlLCBGRU1lcmdlTm9kZSkg
XAotICAgIG1hY3JvKGZlT2Zmc2V0LCBGRU9mZnNldCkgXAotICAgIG1hY3JvKGZlUG9pbnRMaWdo
dCwgRkVQb2ludExpZ2h0KSBcCi0gICAgbWFjcm8oZmVTcGVjdWxhckxpZ2h0aW5nLCBGRVNwZWN1
bGFyTGlnaHRpbmcpIFwKLSAgICBtYWNybyhmZVNwb3RMaWdodCwgRkVTcG90TGlnaHQpIFwKLSAg
ICBtYWNybyhmZVRpbGUsIEZFVGlsZSkgXAotICAgIG1hY3JvKGZlVHVyYnVsZW5jZSwgRkVUdXJi
dWxlbmNlKSBcCi0gICAgbWFjcm8oZmlsdGVyLCBGaWx0ZXIpIFwKLSAgICBtYWNybyhmb3JlaWdu
T2JqZWN0LCBGb3JlaWduT2JqZWN0KSBcCi0gICAgbWFjcm8oZywgRykgXAotICAgIG1hY3JvKGlt
YWdlLCBJbWFnZSkgXAotICAgIG1hY3JvKGxpbmVhckdyYWRpZW50LCBMaW5lYXJHcmFkaWVudCkg
XAotICAgIG1hY3JvKGxpbmUsIExpbmUpIFwKLSAgICBtYWNybyhtYXJrZXIsIE1hcmtlcikgXAot
ICAgIG1hY3JvKG1hc2ssIE1hc2spIFwKLSAgICBtYWNybyhtZXRhZGF0YSwgTWV0YWRhdGEpIFwK
LSAgICBtYWNybyhwYXRoLCBQYXRoKSBcCi0gICAgbWFjcm8ocGF0dGVybiwgUGF0dGVybikgXAot
ICAgIG1hY3JvKHBvbHlsaW5lLCBQb2x5Z29uKSBcCi0gICAgbWFjcm8ocG9seWdvbiwgUG9seWxp
bmUpIFwKLSAgICBtYWNybyhyYWRpYWxHcmFkaWVudCwgUmFkaWFsR3JhZGllbnQpIFwKLSAgICBt
YWNybyhyZWN0LCBSZWN0KSBcCi0gICAgbWFjcm8oc2NyaXB0LCBTY3JpcHQpIFwKLSAgICBtYWNy
byhzZXQsIFNldCkgXAotICAgIG1hY3JvKHN0b3AsIFN0b3ApIFwKLSAgICBtYWNybyhzdHlsZSwg
U3R5bGUpIFwKLSAgICBtYWNybyhzdmcsIFNWRykgXAotICAgIG1hY3JvKHN3aXRjaCwgU3dpdGNo
KSBcCi0gICAgbWFjcm8oc3ltYm9sLCBTeW1ib2wpIFwKLSAgICBtYWNybyh0ZXh0LCBUZXh0KSBc
Ci0gICAgbWFjcm8odGl0bGUsIFRpdGxlKSBcCi0gICAgbWFjcm8odHJlZiwgVFJlZikgXAotICAg
IG1hY3JvKHRzcGFuLCBUU3BhbikgXAotICAgIG1hY3JvKHVzZSwgVXNlKSBcCi0gICAgbWFjcm8o
dmlldywgVmlldykgXAotICAgIC8vIGVuZCBvZiBtYWNybwotCi0jZGVmaW5lIENSRUFURV9XUkFQ
UEVSX0ZVTkNUSU9OKHRhZywgbmFtZSkgXAotc3RhdGljIERPTU5vZGUqIGNyZWF0ZSMjbmFtZSMj
V3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8U1ZHRWxlbWVudD4gZWxlbWVudCkg
XAoteyBcCi0gICAgcmV0dXJuIG5ldyBKU1NWRyMjbmFtZSMjRWxlbWVudChleGVjLCBzdGF0aWNf
Y2FzdDxTVkcjI25hbWUjI0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7IFwKLX0KLUZPUl9FQUNI
X1RBRyhDUkVBVEVfV1JBUFBFUl9GVU5DVElPTikKLSN1bmRlZiBDUkVBVEVfV1JBUFBFUl9GVU5D
VElPTgotCi1ET01Ob2RlKiBjcmVhdGVKU1NWR1dyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNz
UmVmUHRyPFNWR0VsZW1lbnQ+IGVsZW1lbnQpCi17Ci0gICAgc3RhdGljIEhhc2hNYXA8V2ViQ29y
ZTo6QXRvbWljU3RyaW5nSW1wbCosIENyZWF0ZVNWR0VsZW1lbnRXcmFwcGVyRnVuY3Rpb24+IG1h
cDsKLSAgICBpZiAobWFwLmlzRW1wdHkoKSkgewotI2RlZmluZSBBRERfVE9fSEFTSF9NQVAodGFn
LCBuYW1lKSBtYXAuc2V0KHRhZyMjVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlIyNuYW1l
IyNXcmFwcGVyKTsKLUZPUl9FQUNIX1RBRyhBRERfVE9fSEFTSF9NQVApCi0jdW5kZWYgQUREX1RP
X0hBU0hfTUFQCi0gICAgfQotICAgIENyZWF0ZVNWR0VsZW1lbnRXcmFwcGVyRnVuY3Rpb24gY3Jl
YXRlV3JhcHBlckZ1bmN0aW9uID0gbWFwLmdldChlbGVtZW50LT5sb2NhbE5hbWUoKS5pbXBsKCkp
OwotICAgIGlmIChjcmVhdGVXcmFwcGVyRnVuY3Rpb24pCi0gICAgICAgIHJldHVybiBjcmVhdGVX
cmFwcGVyRnVuY3Rpb24oZXhlYywgZWxlbWVudCk7Ci0gICAgcmV0dXJuIG5ldyBKU1NWR0VsZW1l
bnQoZXhlYywgZWxlbWVudC5nZXQoKSk7Ci19Ci0KLX0KLQotI2VuZGlmIC8vIFNWR19TVVBQT1JU
CkluZGV4OiBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR0VsZW1l
bnRXcmFwcGVyRmFjdG9yeS5oCShyZXZpc2lvbiAxNzAxNykKKysrIFdlYkNvcmUva3N2ZzIvYmlu
ZGluZ3MvanMvSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAt
MSwzOCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJv
c3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQotICovCi0KLSNpZm5kZWYgSlNTVkdFTEVNRU5UV1JB
UFBFUkZBQ1RPUllfSAotI2RlZmluZSBKU1NWR0VMRU1FTlRXUkFQUEVSRkFDVE9SWV9ICi0KLSNp
ZmRlZiBTVkdfU1VQUE9SVAotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNl
IEtKUyB7Ci0gICAgY2xhc3MgRE9NTm9kZTsKLSAgICBjbGFzcyBFeGVjU3RhdGU7Ci19Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBTVkdFbGVtZW50OwotICAgIEtKUzo6RE9NTm9k
ZSogY3JlYXRlSlNTVkdXcmFwcGVyKEtKUzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0cjxTVkdFbGVt
ZW50Pik7Ci19Ci0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCi0jZW5kaWYKSW5kZXg6IFdlYkNv
cmUva3N2ZzIvYmluZGluZ3MvanMvSlNTVkdOdW1iZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva3N2ZzIvYmluZGluZ3MvanMvSlNTVkdOdW1iZXIuY3BwCShyZXZpc2lvbiAxNzAxNykKKysr
IFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvanMvSlNTVkdOdW1iZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJKU1NWR051bWJlci5oIgotCi11c2luZyBuYW1lc3BhY2UgS0pTOwotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNvbnN0IENsYXNzSW5mbyBKU1NWR051bWJlcjo6aW5mbyA9
IHsgIlNWR051bWJlciIsIDAsIDAsIDAgfTsKLQotSlNTVkdOdW1iZXI6On5KU1NWR051bWJlcigp
Ci17Ci19Ci0KLWJvb2wgSlNTVkdOdW1iZXI6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQotewotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gInZhbHVlIikgewotICAgICAgICBzbG90LnNl
dEN1c3RvbSh0aGlzLCBnZXRWYWx1ZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAg
ICByZXR1cm4gRE9NT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKLX0KLQotSlNWYWx1ZSogSlNTVkdOdW1iZXI6OmdldFZhbHVlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIG9yaWdpbmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBKU1NWR051bWJlciogdGhp
c09iaiA9IHN0YXRpY19jYXN0PEpTU1ZHTnVtYmVyKj4oc2xvdC5zbG90QmFzZSgpKTsKLSAgICBp
ZiAocHJvcGVydHlOYW1lID09ICJ2YWx1ZSIpCi0gICAgICAgIHJldHVybiBqc051bWJlcih0aGlz
T2JqLT5tX3ZhbHVlKTsKLSAgICByZXR1cm4gMDsKLX0KLQotSlNWYWx1ZSogZ2V0SlNTVkdOdW1i
ZXIoRXhlY1N0YXRlKiBleGVjLCBkb3VibGUgdikKLXsKLSAgICByZXR1cm4gbmV3IEpTU1ZHTnVt
YmVyKGV4ZWMsIHYpOwotfQotCi19CkluZGV4OiBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2pzL0pT
U1ZHTnVtYmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9iaW5kaW5ncy9qcy9KU1NW
R051bWJlci5oCShyZXZpc2lvbiAxNzAxNykKKysrIFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvanMv
SlNTVkdOdW1iZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaWZuZGVmIEpTU1ZHTnVtYmVyX0gKLSNkZWZpbmUgSlNTVkdOdW1iZXJfSAot
Ci0jaW5jbHVkZSAia2pzX2JpbmRpbmcuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBKU1NWR051bWJlciA6IHB1YmxpYyBLSlM6OkRPTU9iamVjdCB7Ci1wdWJsaWM6Ci0gICAgSlNT
VkdOdW1iZXIoS0pTOjpFeGVjU3RhdGUqLCBkb3VibGUgdikgOiBtX3ZhbHVlKHYpIHsgfQotICAg
IH5KU1NWR051bWJlcigpOwotICAgIAotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoS0pTOjpFeGVjU3RhdGUqLCBjb25zdCBLSlM6OklkZW50aWZpZXImLCBLSlM6OlByb3BlcnR5
U2xvdCYpOwotICAgIHN0YXRpYyBKU1ZhbHVlKiBnZXRWYWx1ZShLSlM6OkV4ZWNTdGF0ZSosIEtK
Uzo6SlNPYmplY3QqIG9yaWdpbmFsT2JqZWN0LCBjb25zdCBLSlM6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgY29uc3QgS0pTOjpQcm9wZXJ0eVNsb3QmIHNsb3QpOwotICAgIC8vIG5vIHB1dCAt
IGFsbCByZWFkLW9ubHkKLSAgICAKLSAgICB2aXJ0dWFsIGNvbnN0IEtKUzo6Q2xhc3NJbmZvKiBj
bGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQotICAgIHN0YXRpYyBjb25zdCBLSlM6
OkNsYXNzSW5mbyBpbmZvOwotcHJpdmF0ZToKLSAgICBkb3VibGUgbV92YWx1ZTsKLX07Ci0KLUtK
Uzo6SlNWYWx1ZSogZ2V0SlNTVkdOdW1iZXIoS0pTOjpFeGVjU3RhdGUqLCBkb3VibGUpOwotCi19
Ci0KLSNlbmRpZgpJbmRleDogV2ViQ29yZS9rc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1BvaW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnQuY3Bw
CShyZXZpc2lvbiAxNzAxNykKKysrIFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvanMvSlNTVkdQb2lu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTU1ZHUG9pbnQuaCIKLQotI2luY2x1
ZGUgIkpTU1ZHUG9pbnRUYWJsZS5jcHAiCi0KLXVzaW5nIG5hbWVzcGFjZSBLSlM7Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY29uc3QgQ2xhc3NJbmZvIEpTU1ZHUG9pbnQ6OmluZm8gPSB7ICJT
VkdQb2ludCIsIDAsICZKU1NWR1BvaW50VGFibGUsIDAgfTsKLS8qCi1AYmVnaW4gSlNTVkdQb2lu
dFRhYmxlIDQKLSAgeCAgICAgICAgIFdlYkNvcmU6OkpTU1ZHUG9pbnQ6OlBvaW50WCAgICAgICBE
b250RGVsZXRlfFJlYWRPbmx5Ci0gIHkgICAgICAgICBXZWJDb3JlOjpKU1NWR1BvaW50OjpQb2lu
dFkgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotQGVuZAotKi8KLQotSlNTVkdQb2ludDo6fkpT
U1ZHUG9pbnQoKQotewotfQotCi1ib29sIEpTU1ZHUG9pbnQ6OmdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQotewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNTVkdQb2ludCwg
RE9NT2JqZWN0PihleGVjLCAgJkpTU1ZHUG9pbnRUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBz
bG90KTsKLX0KLQotSlNWYWx1ZSogSlNTVkdQb2ludDo6Z2V0VmFsdWVQcm9wZXJ0eShFeGVjU3Rh
dGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3QKLXsKLSAgICBzd2l0Y2ggKHRva2VuKSB7Ci0gICAg
Y2FzZSBQb2ludFg6Ci0gICAgICAgIHJldHVybiBqc051bWJlcihtX3BvaW50LngoKSk7Ci0gICAg
Y2FzZSBQb2ludFk6Ci0gICAgICAgIHJldHVybiBqc051bWJlcihtX3BvaW50LnkoKSk7Ci0gICAg
ZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotfQotCi1KU1ZhbHVlKiBnZXRKU1NW
R1BvaW50KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgRmxvYXRQb2ludCYgcCkKLXsKLSAgICByZXR1
cm4gbmV3IEpTU1ZHUG9pbnQoZXhlYywgcCk7Ci19Ci0KLUZsb2F0UG9pbnQgdG9GbG9hdFBvaW50
KEpTVmFsdWUqIHZhbCkKLXsKLSAgICByZXR1cm4gdmFsLT5pc09iamVjdCgmSlNTVkdQb2ludDo6
aW5mbykgPyBzdGF0aWNfY2FzdDxKU1NWR1BvaW50Kj4odmFsKS0+aW1wbCgpIDogRmxvYXRQb2lu
dCgpOwotfQotCi19CkluZGV4OiBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnQuaAko
cmV2aXNpb24gMTcwMTcpCisrKyBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0j
aWZuZGVmIEpTU1ZHUG9pbnRfSAotI2RlZmluZSBKU1NWR1BvaW50X0gKLQotI2luY2x1ZGUgImtq
c19iaW5kaW5nLmgiCi0jaW5jbHVkZSAiRmxvYXRQb2ludC5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWNsYXNzIEpTU1ZHUG9pbnQgOiBwdWJsaWMgS0pTOjpET01PYmplY3QgewotcHVibGlj
OgotICAgIEpTU1ZHUG9pbnQoS0pTOjpFeGVjU3RhdGUqLCBjb25zdCBGbG9hdFBvaW50JiBwKSA6
IG1fcG9pbnQocCkgeyB9Ci0gICAgfkpTU1ZHUG9pbnQoKTsKLSAgICAKLSAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgS0pTOjpJZGVudGlm
aWVyJiwgS0pTOjpQcm9wZXJ0eVNsb3QmKTsKLSAgICBKU1ZhbHVlKiBnZXRWYWx1ZVByb3BlcnR5
KEtKUzo6RXhlY1N0YXRlKiwgaW50IHRva2VuKSBjb25zdDsKLSAgICAvLyBubyBwdXQgLSBhbGwg
cmVhZC1vbmx5Ci0gICAgCi0gICAgdmlydHVhbCBjb25zdCBLSlM6OkNsYXNzSW5mbyogY2xhc3NJ
bmZvKCkgY29uc3QgeyByZXR1cm4gJmluZm87IH0KLSAgICBzdGF0aWMgY29uc3QgS0pTOjpDbGFz
c0luZm8gaW5mbzsKLSAgICBlbnVtIHsgUG9pbnRYLCBQb2ludFkgfTsKLSAgICAKLSAgICBGbG9h
dFBvaW50IGltcGwoKSB7IHJldHVybiBtX3BvaW50OyB9Ci0gICAgCi1wcml2YXRlOgotICAgIEZs
b2F0UG9pbnQgbV9wb2ludDsKLX07Ci0KLUtKUzo6SlNWYWx1ZSogZ2V0SlNTVkdQb2ludChLSlM6
OkV4ZWNTdGF0ZSosIGNvbnN0IEZsb2F0UG9pbnQmKTsKLUZsb2F0UG9pbnQgdG9GbG9hdFBvaW50
KEtKUzo6SlNWYWx1ZSopOwotICAKLX0KLQotI2VuZGlmCkluZGV4OiBXZWJDb3JlL2tzdmcyL2Jp
bmRpbmdzL2pzL0pTU1ZHUmVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9iaW5k
aW5ncy9qcy9KU1NWR1JlY3QuY3BwCShyZXZpc2lvbiAxNzAxNykKKysrIFdlYkNvcmUva3N2ZzIv
YmluZGluZ3MvanMvSlNTVkdSZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw4MCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNT
VkdSZWN0LmgiCi0KLSNpbmNsdWRlICJKU1NWR1JlY3RUYWJsZS5jcHAiCi0KLXVzaW5nIG5hbWVz
cGFjZSBLSlM7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY29uc3QgQ2xhc3NJbmZvIEpTU1ZH
UmVjdDo6aW5mbyA9IHsgIlNWR1JlY3QiLCAwLCAmSlNTVkdSZWN0VGFibGUsIDAgfTsKLS8qCi1A
YmVnaW4gSlNTVkdSZWN0VGFibGUgNAotICB4ICAgICAgICAgV2ViQ29yZTo6SlNTVkdSZWN0OjpS
ZWN0WCAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICB5ICAgICAgICAgV2ViQ29yZTo6
SlNTVkdSZWN0OjpSZWN0WSAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICB3aWR0aCAg
ICAgV2ViQ29yZTo6SlNTVkdSZWN0OjpSZWN0V2lkdGggICAgICAgRG9udERlbGV0ZXxSZWFkT25s
eQotICBoZWlnaHQgICAgV2ViQ29yZTo6SlNTVkdSZWN0OjpSZWN0SGVpZ2h0ICAgICAgRG9udERl
bGV0ZXxSZWFkT25seQotQGVuZAotKi8KLQotSlNTVkdSZWN0Ojp+SlNTVkdSZWN0KCkKLXsKLX0K
LQotYm9vbCBKU1NWR1JlY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewotICAg
IHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNTVkdSZWN0LCBET01PYmplY3Q+KGV4ZWMsICAm
SlNTVkdSZWN0VGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KLUpTVmFsdWUq
IEpTU1ZHUmVjdDo6Z2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikg
Y29uc3QKLXsKLSAgICBzd2l0Y2ggKHRva2VuKSB7Ci0gICAgY2FzZSBSZWN0WDoKLSAgICAgICAg
cmV0dXJuIGpzTnVtYmVyKG1fcmVjdC54KCkpOwotICAgIGNhc2UgUmVjdFk6Ci0gICAgICAgIHJl
dHVybiBqc051bWJlcihtX3JlY3QueSgpKTsKLSAgICBjYXNlIFJlY3RXaWR0aDoKLSAgICAgICAg
cmV0dXJuIGpzTnVtYmVyKG1fcmVjdC53aWR0aCgpKTsKLSAgICBjYXNlIFJlY3RIZWlnaHQ6Ci0g
ICAgICAgIHJldHVybiBqc051bWJlcihtX3JlY3QuaGVpZ2h0KCkpOwotICAgIGRlZmF1bHQ6Ci0g
ICAgICAgIHJldHVybiAwOwotICAgIH0KLX0KLQotSlNWYWx1ZSogZ2V0SlNTVkdSZWN0KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgRmxvYXRSZWN0JiByKQotewotICAgIHJldHVybiBuZXcgSlNTVkdS
ZWN0KGV4ZWMsIHIpOwotfQotCi1GbG9hdFJlY3QgdG9GbG9hdFJlY3QoSlNWYWx1ZSogdmFsKQot
ewotICAgIHJldHVybiB2YWwtPmlzT2JqZWN0KCZKU1NWR1JlY3Q6OmluZm8pID8gc3RhdGljX2Nh
c3Q8SlNTVkdSZWN0Kj4odmFsKS0+aW1wbCgpIDogRmxvYXRSZWN0KCk7Ci19Ci0KLX0KSW5kZXg6
IFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvanMvSlNTVkdSZWN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9rc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1JlY3QuaAkocmV2aXNpb24gMTcwMTcpCisrKyBX
ZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUmVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgSlNTVkdSZWN0X0gKLSNk
ZWZpbmUgSlNTVkdSZWN0X0gKLQotI2luY2x1ZGUgImtqc19iaW5kaW5nLmgiCi0jaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSlNTVkdSZWN0IDog
cHVibGljIEtKUzo6RE9NT2JqZWN0IHsKLXB1YmxpYzoKLSAgICBKU1NWR1JlY3QoS0pTOjpFeGVj
U3RhdGUqLCBjb25zdCBGbG9hdFJlY3QmIHIpIDogbV9yZWN0KHIpIHsgfQotICAgIH5KU1NWR1Jl
Y3QoKTsKLSAgICAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEtKUzo6RXhl
Y1N0YXRlKiwgY29uc3QgS0pTOjpJZGVudGlmaWVyJiwgS0pTOjpQcm9wZXJ0eVNsb3QmKTsKLSAg
ICBKU1ZhbHVlKiBnZXRWYWx1ZVByb3BlcnR5KEtKUzo6RXhlY1N0YXRlKiwgaW50IHRva2VuKSBj
b25zdDsKLSAgICAvLyBubyBwdXQgLSBhbGwgcmVhZC1vbmx5Ci0gICAgCi0gICAgdmlydHVhbCBj
b25zdCBLSlM6OkNsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJmluZm87IH0K
LSAgICBzdGF0aWMgY29uc3QgS0pTOjpDbGFzc0luZm8gaW5mbzsKLSAgICBlbnVtIHsgUmVjdFgs
IFJlY3RZLCBSZWN0V2lkdGgsIFJlY3RIZWlnaHQgfTsKLSAgICAKLSAgICBGbG9hdFJlY3QgaW1w
bCgpIHsgcmV0dXJuIG1fcmVjdDsgfQotICAgIAotcHJpdmF0ZToKLSAgICBGbG9hdFJlY3QgbV9y
ZWN0OwotfTsKLQotS0pTOjpKU1ZhbHVlKiBnZXRKU1NWR1JlY3QoS0pTOjpFeGVjU3RhdGUqLCBj
b25zdCBGbG9hdFJlY3QmKTsKLUZsb2F0UmVjdCB0b0Zsb2F0UmVjdChLSlM6OkpTVmFsdWUqKTsK
LQotfQotCi0jZW5kaWYKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NvbG9yLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ29sb3IuaAkocmV2aXNpb24gMTcwMTcpCisr
KyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDb2xvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEs
NyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5u
IDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxi
dWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbS53
ZWluaWdAZ21pYWwuY29tKQogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9q
ZWN0CiAKQEAgLTYxLDYgKzYyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBI
ZWxwZXJzCiAgICAgICAgIGNvbnN0IENvbG9yJiBjb2xvcigpIGNvbnN0OwogCisgICAgICAgIHZp
cnR1YWwgYm9vbCBpc1NWR0NvbG9yKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgcHJp
dmF0ZToKICAgICAgICAgQ29sb3IgbV9jb2xvcjsKICAgICAgICAgdW5zaWduZWQgc2hvcnQgbV9j
b2xvclR5cGU7CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVu
dC5pZGwJKHJldmlzaW9uIDE3MDE3KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVDb21wb3Np
dGVFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjcsMjIgKzI3LDIyIEBAIG1vZHVsZSBz
dmcgewogCiAgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0ZFQ29tcG9zaXRlRWxl
bWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7
Ci0gICAgLy8gQ29tcG9zaXRlIE9wZXJhdG9ycwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNW
R19GRUNPTVBPU0lURV9PUEVSQVRPUl9VTktOT1dOICAgID0gMDsKLSAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfT1ZFUiAgICAgICA9IDE7Ci0gICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9TSVRFX09QRVJBVE9SX0lOICAgICAgICAgPSAy
OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9PVVQg
ICAgICAgID0gMzsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BF
UkFUT1JfQVRPUCAgICAgICA9IDQ7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09N
UE9TSVRFX09QRVJBVE9SX1hPUiAgICAgICAgPSA1OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9BUklUSE1FVElDID0gNjsKKyAgICAgICAgLy8gQ29t
cG9zaXRlIE9wZXJhdG9ycworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01Q
T1NJVEVfT1BFUkFUT1JfVU5LTk9XTiAgICA9IDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9PVkVSICAgICAgID0gMTsKKyAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9TSVRFX09QRVJBVE9SX0lOICAgICAgICAgPSAy
OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1Jf
T1VUICAgICAgICA9IDM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBP
U0lURV9PUEVSQVRPUl9BVE9QICAgICAgID0gNDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgU1ZHX0ZFQ09NUE9TSVRFX09QRVJBVE9SX1hPUiAgICAgICAgPSA1OworICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfQVJJVEhNRVRJQyA9IDY7
CiAKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgICAgICBpbjE7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nICAgICAgaW4yOwotICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIF9vcGVyYXRvcjsKLSAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgICAgICBrMTsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgICAgICBrMjsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgICAgICBrMzsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHQW5pbWF0ZWROdW1iZXIgICAgICBrNDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNW
R0FuaW1hdGVkU3RyaW5nICAgICAgaW4xOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
QW5pbWF0ZWRTdHJpbmcgICAgICBpbjI7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdB
bmltYXRlZEVudW1lcmF0aW9uIF9vcGVyYXRvcjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFNWR0FuaW1hdGVkTnVtYmVyICAgICAgazE7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdBbmltYXRlZE51bWJlciAgICAgIGsyOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
QW5pbWF0ZWROdW1iZXIgICAgICBrMzsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0Fu
aW1hdGVkTnVtYmVyICAgICAgazQ7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRkVGbG9vZEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0ZFRmxvb2RFbGVtZW50LmlkbAkocmV2aXNpb24gMTcwMTcpCisrKyBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdGRUZsb29kRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcg
QEAgbW9kdWxlIHN2ZyB7CiAKICAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHRkVG
bG9vZEVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cyB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyAgICAgIGlu
MTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsKICAg
ICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMb2NhdGFibGUuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZS5pZGwJKHJldmlzaW9uIDE3
MDE3KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMzAsOSArMzAsNyBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0VsZW1lbnQgbmVhcmVzdFZpZXdwb3J0RWxlbWVudDsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFNWR0VsZW1lbnQgZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQ7CiAKLSNpZiAhZGVm
aW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykKICAgICAgICAgU1ZHUmVjdCAgIGdldEJCb3goKTsK
LSNlbmRpZgogICAgICAgICBTVkdNYXRyaXggZ2V0Q1RNKCk7CiAgICAgICAgIFNWR01hdHJpeCBn
ZXRTY3JlZW5DVE0oKTsKICAgICAgICAgU1ZHTWF0cml4IGdldFRyYW5zZm9ybVRvRWxlbWVudChp
biBTVkdFbGVtZW50IGVsZW1lbnQpCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdNYXJrZXJF
bGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdNYXJrZXJFbGVt
ZW50LmlkbAkocmV2aXNpb24gMTcwMTcpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdNYXJrZXJF
bGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBtb2R1bGUgc3ZnIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoICAgICAgbWFya2Vy
V2lkdGg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCAgICAg
IG1hcmtlckhlaWdodDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51
bWVyYXRpb24gb3JpZW50VHlwZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1h
dGVkQW5nbGUgICAgICBvcmllbnRBbmdsZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNW
R0FuaW1hdGVkQW5nbGUgICAgICAgb3JpZW50QW5nbGU7CiAKICAgICAgICAgdm9pZCBzZXRPcmll
bnRUb0F1dG8oKTsKICAgICAgICAgdm9pZCBzZXRPcmllbnRUb0FuZ2xlKGluIFNWR0FuZ2xlIGFu
Z2xlKTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhaW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGFpbnQuaAkocmV2aXNpb24gMTcwMTcpCisrKyBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdQYWludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoK
ICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94
QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbS53ZWluaWdAZ21p
YWwuY29tKQogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAg
LTYyLDYgKzYzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgU1ZHUGFp
bnQqIGRlZmF1bHRGaWxsKCk7CiAgICAgICAgIHN0YXRpYyBTVkdQYWludCogZGVmYXVsdFN0cm9r
ZSgpOwogCisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1NWR1BhaW50KCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQogICAgIHByaXZhdGU6CiAgICAgICAgIFNWR1BhaW50VHlwZSBtX3BhaW50VHlwZTsK
ICAgICAgICAgU3RyaW5nIG1fdXJpOwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUmVjdEVs
ZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1JlY3RFbGVtZW50
LmlkbAkocmV2aXNpb24gMTcwMTcpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdSZWN0RWxlbWVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw1IEBACiAvKgorICogQ29weXJpZ2h0IChD
KSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICogQ29weXJpZ2h0
IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yMywy
MCArMjQsMjAgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLW1vZHVsZSBzdmcKLXsKLSAgaW50
ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR1JlY3RFbGVtZW50IDogCi0gICAgICAgICAgICAg
ICAgU1ZHRWxlbWVudCwKLSAgICAgICAgICAgICAgICBTVkdUZXN0cywKLSAgICAgICAgICAgICAg
ICBTVkdMYW5nU3BhY2UsCi0gICAgICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCwKLSAgICAgICAgICAgICAgICBTVkdTdHlsYWJsZSwKLSAgICAgICAgICAgICAgICBTVkdU
cmFuc2Zvcm1hYmxlIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGgg
eDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeTsKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggd2lkdGg7Ci0gICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGhlaWdodDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHQW5pbWF0ZWRMZW5ndGggcng7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVk
TGVuZ3RoIHJ5OwotICB9OwotfTsKK21vZHVsZSBzdmcgeworCisgICAgaW50ZXJmYWNlIFtDb25k
aXRpb25hbD1TVkddIFNWR1JlY3RFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUZXN0cywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTVkdTdHlsYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHg7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdBbmltYXRlZExlbmd0aCB5OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWRMZW5ndGggd2lkdGg7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExl
bmd0aCBoZWlnaHQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0
aCByeDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHJ5Owor
ICAgIH07CisKK30KSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1pvb21FdmVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHWm9vbUV2ZW50LmlkbAkocmV2aXNpb24g
MTcwMTcpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdab29tRXZlbnQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotbW9kdWxlIHN2ZyB7Ci0KLSAgICBpbnRlcmZhY2UgW0NvbmRp
dGlvbmFsPVNWR10gU1ZHWm9vbUV2ZW50IDogZXZlbnRzOjpVSUV2ZW50IHsgCi0gICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdSZWN0IHpvb21SZWN0U2NyZWVuOwotICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgZmxvYXQgcHJldmlvdXNTY2FsZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFNWR1BvaW50IHByZXZpb3VzVHJhbnNsYXRlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgZmxvYXQgbmV3U2NhbGU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQb2ludCBu
ZXdUcmFuc2xhdGU7Ci0gICAgfTsKLQotfQo=
</data>
<flag name="review"
          id="3746"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>