<?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>27242</bug_id>
          
          <creation_ts>2009-07-13 17:55:04 -0700</creation_ts>
          <short_desc>JSC bindings should use an auto-bound RGBColor class instead of hand-rolled JSRGBColor</short_desc>
          <delta_ts>2009-07-22 00:04:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          <dependson>27133</dependson>
          <blocked>27088</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>131457</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-13 17:55:04 -0700</bug_when>
    <thetext>JSC bindings should use an auto-bound RGBColor class instead of hand-rolled JSRGBColor

The time has come for this buggy custom binding to die! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133681</commentid>
    <comment_count>1</comment_count>
      <attachid>33235</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-07-21 19:36:40 -0700</bug_when>
    <thetext>Created attachment 33235
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133692</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-07-21 21:27:57 -0700</bug_when>
    <thetext>Fixed in r46211.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133714</commentid>
    <comment_count>3</comment_count>
      <attachid>33235</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-22 00:02:43 -0700</bug_when>
    <thetext>Comment on attachment 33235
patch

 646 RGBColor* CSSPrimitiveValue::getRGBColorValue(ExceptionCode&amp; ec) const

and 

+RGBColor* SVGColor::rgbColor() const

Look like they&apos;re leaking, no?

They&apos;re returning raw pointers to RGBColor object which have a ref count of 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133715</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-22 00:03:25 -0700</bug_when>
    <thetext>It seems we eventually want RGBColor to be a wrapper around Color instead of unsigned.  That way the red/green/blue/alpha accessors are already written for us (instead of having to re-write the &lt;&lt; code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133716</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-22 00:04:00 -0700</bug_when>
    <thetext>I&apos;m very glad you did this though.  I tried and ran into Obj-C issues which I didn&apos;t really want to deal with. ;)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33235</attachid>
            <date>2009-07-21 19:36:40 -0700</date>
            <delta_ts>2009-07-22 00:02:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>48714</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjIwNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTQgQEAKKzIwMDktMDctMjEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9y
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzI0MgorICAgICAgICBK
U0MgYmluZGluZ3Mgc2hvdWxkIHVzZSBhbiBhdXRvLWJvdW5kIFJHQkNvbG9yIGNsYXNzIGluc3Rl
YWQgb2YgaGFuZC1yb2xsZWQgSlNSR0JDb2xvcgorCisgICAgICAgIE1vdmUgdGhlIEpTQyBhbmQg
T2JqZWN0aXZlLUMgYmluZGluZ3Mgb250byB1c2luZyB0aGUgUkdCQ29sb3Igb2JqZWN0IGluc3Rl
YWQKKyAgICAgICAgb2YganVzdCBhbiB1bnNpZ25lZCBpbnQuIFRoZSBKU0MgYmluZGluZ3MgYXJl
IG5vdyBjb21wbGV0ZWx5IGF1dG9nZW5lcmF0ZWQgZm9yCisgICAgICAgIHRoaXMgY2xhc3MuIChB
bHNvIHJlbW92ZXMgdGhlIGxhc3QgbHV0IHRhYmxlIGZyb20gV2ViQ29yZSkuCisKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAg
ICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJDb3JlU291cmNlcy5ia2w6CisgICAgICAgICogYmluZGluZ3MvanMvSlNSR0JDb2xvci5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNSR0JDb2xvci5oOiBSZW1vdmVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoLVtET01SR0JDb2xv
ciBfY29sb3JdKToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVJHQkNvbG9yLm1tOgorICAg
ICAgICAoLVtET01SR0JDb2xvciBkZWFsbG9jXSk6CisgICAgICAgICgtW0RPTVJHQkNvbG9yIGZp
bmFsaXplXSk6CisgICAgICAgICgtW0RPTVJHQkNvbG9yIHJlZF0pOgorICAgICAgICAoLVtET01S
R0JDb2xvciBncmVlbl0pOgorICAgICAgICAoLVtET01SR0JDb2xvciBibHVlXSk6CisgICAgICAg
ICgtW0RPTVJHQkNvbG9yIGFscGhhXSk6CisgICAgICAgICgtW0RPTVJHQkNvbG9yIGNvbG9yXSk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG06CisgICAgICAgICogY3NzL0NTU1BhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQ29sb3IpOgorICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6Z2V0UkdCQ29sb3JWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0UkdCQTMyVmFs
dWUpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N0eWxlU2VsZWN0b3I6OmdldENvbG9yRnJvbVByaW1pdGl2ZVZhbHVlKToKKyAgICAg
ICAgKiBjc3MvUkdCQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UkdCQ29sb3I6OmFscGhh
KToKKyAgICAgICAgKiBjc3MvUkdCQ29sb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJHQkNvbG9y
Ojpjb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSR0JDb2xvcjo6UkdCQ29sb3IpOgorICAgICAg
ICAqIGNzcy9SR0JDb2xvci5pZGw6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAg
ICAgICAqIHN2Zy9TVkdDb2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6cmdi
Q29sb3IpOgorICAgICAgICAqIHN2Zy9TVkdDb2xvci5oOgorCiAyMDA5LTA3LTIxICBKaWFuIExp
ICA8amlhbmxpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZp
bi4KSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDQ2MTI1KQorKysgV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0zOTIsOSArMzkyLDcgQEAgRE9NX0NM
QVNTRVMgPSBcCiAuUEhPTlkgOiBhbGwKIAogYWxsIDogXAotICAgICQoZmlsdGVyLW91dCBKU0V2
ZW50TGlzdGVuZXIuaCBKU0V2ZW50VGFyZ2V0LmggSlNSR0JDb2xvci5oLCQoRE9NX0NMQVNTRVM6
JT1KUyUuaCkpIFwKLSAgICBcCi0gICAgSlNSR0JDb2xvci5sdXQuaCBcCisgICAgJChmaWx0ZXIt
b3V0IEpTRXZlbnRMaXN0ZW5lci5oIEpTRXZlbnRUYXJnZXQuaCwkKERPTV9DTEFTU0VTOiU9SlMl
LmgpKSBcCiAgICAgXAogICAgIEpTSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKICAgICBcCkBAIC01
NDUsMTUgKzU0Myw2IEBAIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmggOiBjc3MvbWFrZS1jc3MtZmkK
IAogIyAtLS0tLS0tLQogCi0jIGxvb2t1cCB0YWJsZXMgZm9yIG9sZC1zdHlsZSBKYXZhU2NyaXB0
IGJpbmRpbmdzCi0KLSUubHV0Lmg6ICUuY3BwICQoQ1JFQVRFX0hBU0hfVEFCTEUpCi0JJChDUkVB
VEVfSEFTSF9UQUJMRSkgJDwgLW4gV2ViQ29yZSA+ICRACi0lVGFibGUuY3BwOiAlLmNwcCAkKENS
RUFURV9IQVNIX1RBQkxFKQotCSQoQ1JFQVRFX0hBU0hfVEFCTEUpICQ8IC1uIFdlYkNvcmUgPiAk
QAotCi0jIC0tLS0tLS0tCi0KICMgSFRNTCB0YWcgYW5kIGF0dHJpYnV0ZSBuYW1lcwogCiBpZmVx
ICgkKGZpbmRzdHJpbmcgRU5BQkxFX1ZJREVPLCQoRkVBVFVSRV9ERUZJTkVTKSksIEVOQUJMRV9W
SURFTykKSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNDYxMjUpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCSh3b3JraW5nIGNvcHkpCkBAIC02Myw5ICs2Myw3IEBAIHdlYmNvcmVndGtfY3BwZmxhZ3Mg
Kz0gXAogd2ViY29yZV9idWlsdF9ub3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL0RvY1R5
cGVTdHJpbmdzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvdG9rZW5pemVyLmNwcCBcCi0JRGVyaXZl
ZFNvdXJjZXMvQ29sb3JEYXRhLmMgXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmx1dC5oIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUkdCQ29sb3IubHV0LmgKKwlEZXJp
dmVkU291cmNlcy9Db2xvckRhdGEuYwogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURl
cml2ZWRTb3VyY2VzL0NTU0dyYW1tYXIuY3BwIFwKQEAgLTEwMiw2ICsxMDAsNyBAQCBJRExfQklO
RElOR1MgKz0gXAogCVdlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlc1J1bGUuaWRsIFwKIAlXZWJDb3Jl
L2Nzcy9Db3VudGVyLmlkbCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmlkbCBcCisJV2ViQ29y
ZS9jc3MvUkdCQ29sb3IuaWRsIFwKIAlXZWJDb3JlL2Nzcy9SZWN0LmlkbCBcCiAJV2ViQ29yZS9j
c3MvU3R5bGVTaGVldC5pZGwgXAogCVdlYkNvcmUvY3NzL1N0eWxlU2hlZXRMaXN0LmlkbCBcCkBA
IC01ODMsNiArNTgyLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5RXhwLmNwcCBcCiAJV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5oIFwKIAlXZWJDb3Jl
L2Nzcy9QYWlyLmggXAorCVdlYkNvcmUvY3NzL1JHQkNvbG9yLmggXAogCVdlYkNvcmUvY3NzL1Jl
Y3QuaCBcCiAJV2ViQ29yZS9jc3MvU2hhZG93VmFsdWUuY3BwIFwKIAlXZWJDb3JlL2Nzcy9TaGFk
b3dWYWx1ZS5oIFwKQEAgLTMzMzIsOCArMzMzMiw1IEBAIGRpc3Rfd2VicmVzb3VyY2VzX0RBVEEg
PSBcCiAjIENsZWFuIHJ1bGVzIGZvciBXZWJDb3JlCiAKIENMRUFORklMRVMgKz0gXAotCWxpYldl
YkNvcmVKUy5sYSBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UubHV0Lmgg
XAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNSR0JDb2xvci5sdXQuaCBcCi0JV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmx1dC5oCisJbGliV2ViQ29yZUpTLmxhCiAKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBy
bwkocmV2aXNpb24gNDYxMjUpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkp
CkBAIC0yNjEsNyArMjYxLDYgQEAgU1RZTEVTSEVFVFNfRU1CRUQgPSBcCiAKIERPTUxVVF9GSUxF
UyArPSBcCiAgICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBcCi0gICAgYmluZGlu
Z3MvanMvSlNSR0JDb2xvci5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJh
c2UuY3BwCiAKIElETF9CSU5ESU5HUyArPSBcCkBAIC0yODIsNiArMjgxLDcgQEAgSURMX0JJTkRJ
TkdTICs9IFwKICAgICBjc3MvQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaWRsIFwKICAgICBjc3Mv
Q1NTVmFyaWFibGVzUnVsZS5pZGwgXAogICAgIGNzcy9NZWRpYUxpc3QuaWRsIFwKKyAgICBjc3Mv
UkdCQ29sb3IuaWRsIFwKICAgICBjc3MvUmVjdC5pZGwgXAogICAgIGNzcy9TdHlsZVNoZWV0Lmlk
bCBcCiAgICAgY3NzL1N0eWxlU2hlZXRMaXN0LmlkbCBcCkBAIC01MTIsNyArNTEyLDYgQEAgU09V
UkNFUyArPSBcCiAgICAgYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHAgXAogICAgIGJp
bmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1F1
YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5jcHAgXAotICAgIGJpbmRpbmdzL2pzL0pTUkdCQ29sb3Iu
Y3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwIFwKICAgICBiaW5k
aW5ncy9qcy9KU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNU
ZXh0Q3VzdG9tLmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAkocmV2aXNpb24gNDYxMjUpCisrKyBX
ZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDcgKzEyNSw2
IEBAIFRoaXMgZmlsZSBjb250YWlucyB0aGUgbGlzdCBvZiBmaWxlcyBuZWUKICAgICAgICAgYmlu
ZGluZ3MvanMvSlNQbHVnaW5DdXN0b20uY3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTUGx1Z2lu
QXJyYXlDdXN0b20uY3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTUXVhcmFudGluZWRPYmplY3RX
cmFwcGVyLmNwcAotICAgICAgICBiaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmNwcAogICAgICAgICBi
aW5kaW5ncy9qcy9KU1NRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwCiAgICAgICAgIGJpbmRp
bmdzL2pzL0pTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pT
U3RvcmFnZUN1c3RvbS5jcHAKQEAgLTM4MSw2ICszODAsNyBAQCBUaGlzIGZpbGUgY29udGFpbnMg
dGhlIGxpc3Qgb2YgZmlsZXMgbmVlCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNS
YW5nZS5jcHAKICAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JhbmdlRXhjZXB0aW9u
LmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmVjdC5jcHAKKyAgICAgICAg
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JHQkNvbG9yLmNwcAogICAgICAgICBEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTU2NyZWVuLmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU3RvcmFnZS5jcHAKICAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1N0b3JhZ2VF
dmVudC5jcHAKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNp
b24gNDYxMjUpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC03NjcwLDcgKzc2NzAsNTEgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJ
CTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1JHQkNvbG9yLmx1dC5oIg0KKwkJCQlSZWxhdGl2ZVBh
dGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNSR0JDb2xvci5jcHAiDQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4N
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQor
CQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJ
CQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
CisJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJL
aXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1JHQkNvbG9y
LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCkBAIC0yODUzMCwxNCArMjg1NzQs
NiBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNSR0JDb2xvci5jcHAiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4N
Ci0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNSR0JDb2xv
ci5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuY3BwIg0KIAkJCQkJ
Pg0KIAkJCQk8L0ZpbGU+DQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDQ2MTI1KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM4OTIsOSArMzg5Miw2IEBACiAJCUJD
MzA1QzdBMEMwNzZCQjMwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMwNUM3ODBDMDc2QkIzMDBD
RDIwRjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudC5oICovOyB9OwogCQlCQzMwNUNBNDBDMDc4MUJC
MDBDRDIwRjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMwNUNBMzBDMDc4MUJCMDBDRDIwRjAg
LyogSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAgKi87IH07CiAJCUJDMzNGQjFCMEYzMEVF
ODUwMDJDREQ3QyAvKiBSZW5kZXJMaW5lQm94TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMzRkIxQTBGMzBFRTg1MDAyQ0REN0MgLyogUmVu
ZGVyTGluZUJveExpc3QuY3BwICovOyB9OwotCQlCQzM0NTI0MzBEN0UwMEVBMDAxNjU3NEEgLyog
SlNSR0JDb2xvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzM0NTI0MTBEN0UwMEVBMDAxNjU3NEEgLyogSlNSR0JDb2xvci5jcHAgKi87IH07Ci0J
CUJDMzQ1MjQ0MEQ3RTAwRUEwMDE2NTc0QSAvKiBKU1JHQkNvbG9yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzM0NTI0MjBEN0UwMEVBMDAxNjU3NEEg
LyogSlNSR0JDb2xvci5oICovOyB9OwotCQlCQzM0NTI1NjBEN0UwMjg1MDAxNjU3NEEgLyogSlNS
R0JDb2xvci5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMzQ1MjU1MEQ3RTAyODUwMDE2NTc0QSAvKiBKU1JHQkNvbG9yLmx1dC5oICovOyB9Owog
CQlCQzM0OEJCRTBEQjdGNTMxMDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzM0OEJCRDBE
QjdGNTMxMDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgKi87IH07CiAJCUJD
MzQ4QkQzMERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzQ4QkQxMERCN0Y4MDQwMDRB
QkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0LmNwcCAqLzsgfTsKIAkJQkMzNDhCRDQwREI3RjgwNDAw
NEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzQ4QkQyMERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hNTEh0dHBS
ZXF1ZXN0LmggKi87IH07CkBAIC00MDM5LDYgKzQwMzYsMTAgQEAKIAkJQkM2REFERUYwQTE5NUZE
RjAwRTVDRDE0IC8qIFdlYkZvbnRDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM2REFERUUwQTE5NUZERjAwRTVDRDE0IC8qIFdlYkZvbnRDYWNo
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJD
NkRBREZBMEExOTYwMkIwMEU1Q0QxNCAvKiBXZWJGb250Q2FjaGUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzZEQURGOTBBMTk2MDJCMDBFNUNEMTQg
LyogV2ViRm9udENhY2hlLm1tICovOyB9OwogCQlCQzZEQzdBMTBDMUE0QkZBMDA0RTIwMTcgLyog
SlNIVE1MQWxsQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM2REM3QTAwQzFBNEJGQTAwNEUyMDE3IC8qIEpTSFRNTEFsbENvbGxlY3Rp
b24uaCAqLzsgfTsKKwkJQkM3NERBMzcxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc0REEzNTEwMTNG
M0Y3MDA3OTg3QUQgLyogUkdCQ29sb3IuaCAqLzsgfTsKKwkJQkM3NERBMzgxMDEzRjNGNzAwNzk4
N0FEIC8qIFJHQkNvbG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNzREQTM2MTAxM0YzRjcwMDc5ODdBRCAvKiBSR0JDb2xvci5jcHAgKi87IH07
CisJCUJDNzREQTQ4MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzREQTQ2MTAxM0Y0NjgwMDc5
ODdBRCAvKiBKU1JHQkNvbG9yLmNwcCAqLzsgfTsKKwkJQkM3NERBNDkxMDEzRjQ2ODAwNzk4N0FE
IC8qIEpTUkdCQ29sb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDNzREQTQ3MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmggKi87IH07CiAJ
CUJDNzZBQzEzMEREN0FENUMwMDQxNUYzNCAvKiBQYXJzZXJVdGlsaXRpZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzZBQzExMEREN0FENUMwMDQx
NUYzNCAvKiBQYXJzZXJVdGlsaXRpZXMuaCAqLzsgfTsKIAkJQkM3NzJCM0IwQzRFQTkxRTAwODMy
ODVGIC8qIENTU0hlbHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzc3MkIzNTBDNEVBOTFFMDA4MzI4NUYgLyogQ1NTSGVscGVyLmNwcCAqLzsg
fTsKIAkJQkM3NzJCM0MwQzRFQTkxRTAwODMyODVGIC8qIENTU0hlbHBlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzJCMzYwQzRFQTkxRTAwODMy
ODVGIC8qIENTU0hlbHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC04NzI2LDkgKzg3MjcsNiBAQAogCQlCQzMwNUM3ODBDMDc2QkIzMDBDRDIw
RjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNIVE1MT2JqZWN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzMwNUNBMzBDMDc4MUJCMDBDRDIwRjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxPYmplY3RFbGVt
ZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzM0ZCMUEwRjMw
RUU4NTAwMkNERDdDIC8qIFJlbmRlckxpbmVCb3hMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckxpbmVCb3hMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQkMzNDUyNDEwRDdFMDBFQTAwMTY1NzRBIC8qIEpTUkdCQ29sb3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSR0JDb2xvci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMzQ1MjQyMEQ3RTAwRUEwMDE2NTc0QSAvKiBK
U1JHQkNvbG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUkdCQ29sb3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMzNDUyNTUwRDdFMDI4NTAwMTY1NzRB
IC8qIEpTUkdCQ29sb3IubHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
UkdCQ29sb3IubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMzQ4QkE3MERC
N0YxQjgwMDRBQkFCOSAvKiBYTUxIdHRwUmVxdWVzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gWE1MSHR0cFJlcXVlc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzM0
OEJCRDBEQjdGNTMxMDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzNDhCRDEwREI3RjgwNDAwNEFCQUI5
IC8qIEpTWE1MSHR0cFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNYTUxIdHRwUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC04ODc5LDYgKzg4NzcsMTAgQEAKIAkJQkM2REFERUUwQTE5NUZERjAwRTVDRDE0IC8qIFdlYkZv
bnRDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRm9udENhY2hl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNkRBREY5MEExOTYwMkIwMEU1Q0Qx
NCAvKiBXZWJGb250Q2FjaGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViRm9udENhY2hlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzZE
QzdBMDBDMUE0QkZBMDA0RTIwMTcgLyogSlNIVE1MQWxsQ29sbGVjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MQWxsQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQzc0REEzNTEwMTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29sb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUkdCQ29sb3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM3NERBMzYxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJHQkNvbG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM3NERBNDYxMDEzRjQ2ODAwNzk4N0FEIC8q
IEpTUkdCQ29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNS
R0JDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNzREQTQ3MTAxM0Y0
NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTUkdCQ29sb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NkFDMTEw
REQ3QUQ1QzAwNDE1RjM0IC8qIFBhcnNlclV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQYXJzZXJVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkM3NzJCMzUwQzRFQTkxRTAwODMyODVGIC8qIENTU0hlbHBlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTSGVscGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NzJCMzYwQzRFQTkxRTAwODMyODVGIC8qIENTU0hlbHBlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTSGVscGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjUwMCw3ICsxMjUwMiw4IEBACiAJCQkJQkMzQzM5QjUw
QzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmggKi8sCiAJCQkJQkNGRTJGMEYwQzFCNTgz
NzAwMjAyMzVGIC8qIEpTUmVjdC5jcHAgKi8sCiAJCQkJQkNGRTJGMTAwQzFCNTgzNzAwMjAyMzVG
IC8qIEpTUmVjdC5oICovLAotCQkJCUJDMzQ1MjU1MEQ3RTAyODUwMDE2NTc0QSAvKiBKU1JHQkNv
bG9yLmx1dC5oICovLAorCQkJCUJDNzREQTQ2MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9y
LmNwcCAqLywKKwkJCQlCQzc0REE0NzEwMTNGNDY4MDA3OTg3QUQgLyogSlNSR0JDb2xvci5oICov
LAogCQkJCUJDRTAxMzk4MEMwQkVGMTgwMDQzODYwQSAvKiBKU1N0eWxlU2hlZXQuY3BwICovLAog
CQkJCUJDRTAxMzk5MEMwQkVGMTgwMDQzODYwQSAvKiBKU1N0eWxlU2hlZXQuaCAqLywKIAkJCQlB
ODRFQkQ4MjBDQjhDOTc3MDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdC5jcHAgKi8sCkBAIC0x
MzQ0MSwxNiArMTM0NDQsMTMgQEAKIAkJQkMxQTM3OTMwOTdDNkZCMTAwMTlGM0Q4IC8qIGpzICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0MTVCN0M2MjBG
RjVBNzY3MDA2NzcwRjcgLyogSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5oICovLAotCQkJCTQx
NUI3QzU0MEZGNTk4RTYwMDY3NzBGNyAvKiBKU0Fic3RyYWN0V29ya2VyQ3VzdG9tLmNwcCAqLywK
LQkJCQk0MTVCN0M1NTBGRjU5OEU2MDA2NzcwRjcgLyogSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rv
ci5jcHAgKi8sCi0JCQkJNDE1QjdDNTYwRkY1OThFNjAwNjc3MEY3IC8qIEpTU2hhcmVkV29ya2Vy
Q3VzdG9tLmNwcCAqLywKIAkJCQlCQzRFREVGNzBDMDhGNDE0MDA3RURENDkgLyogQ3VzdG9tICov
LAogCQkJCTE0REZCMzNGMEE3REY3NjMwMDE4Rjc2OSAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJ
CQkJQkNENTMzNjMwRUQ2ODQ4OTAwODg3NDY4IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVy
LmggKi8sCiAJCQkJOTNGOEIzMDYwQTMwMEZFQTAwRjYxQUI4IC8qIENvZGVHZW5lcmF0b3JKUy5w
bSAqLywKIAkJCQkxNDMyRTg0ODBDNTE0OTNGMDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmNwcCAq
LywKIAkJCQkxNDMyRTg0NjBDNTE0OTM4MDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmggKi8sCisJ
CQkJNDE1QjdDNTQwRkY1OThFNjAwNjc3MEY3IC8qIEpTQWJzdHJhY3RXb3JrZXJDdXN0b20uY3Bw
ICovLAogCQkJCUU0RUVGRkM2MEQzNDU1MEMwMDQ2OUE1OCAvKiBKU0F1ZGlvQ29uc3RydWN0b3Iu
Y3BwICovLAogCQkJCUU0RUVGRkM3MEQzNDU1MEMwMDQ2OUE1OCAvKiBKU0F1ZGlvQ29uc3RydWN0
b3IuaCAqLywKIAkJCQlFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIuY3BwICovLApAQCAtMTM0OTEsOCArMTM0OTEsOSBAQAogCQkJCTkzQjcwRDUwMDlF
QjBDN0MwMDlEODQ2OCAvKiBKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCAqLywKIAkJCQlDMDkx
NTg4ODBEQjQyMDkyMDBFNTVBRjQgLyogSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXIuY3BwICov
LAogCQkJCUMwOTE1ODg5MERCNDIwOTIwMEU1NUFGNCAvKiBKU1F1YXJhbnRpbmVkT2JqZWN0V3Jh
cHBlci5oICovLAotCQkJCUJDMzQ1MjQxMEQ3RTAwRUEwMDE2NTc0QSAvKiBKU1JHQkNvbG9yLmNw
cCAqLywKLQkJCQlCQzM0NTI0MjBEN0UwMEVBMDAxNjU3NEEgLyogSlNSR0JDb2xvci5oICovLAor
CQkJCTQxNUI3QzU1MEZGNTk4RTYwMDY3NzBGNyAvKiBKU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9y
LmNwcCAqLywKKwkJCQk0MTVCN0M2MjBGRjVBNzY3MDA2NzcwRjcgLyogSlNTaGFyZWRXb3JrZXJD
b25zdHJ1Y3Rvci5oICovLAorCQkJCTQxNUI3QzU2MEZGNTk4RTYwMDY3NzBGNyAvKiBKU1NoYXJl
ZFdvcmtlckN1c3RvbS5jcHAgKi8sCiAJCQkJQjIxMTI3QTUwQjMxODY3NzAwMDlCRTUzIC8qIEpT
U1ZHUE9EVHlwZVdyYXBwZXIuaCAqLywKIAkJCQk0OTgzOTE2MTBGMUU4RUUxMDBDMjM3ODIgLyog
SlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5jcHAgKi8sCiAJCQkJNDk4MzkxNjIwRjFFOEVF
MTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuaCAqLywKQEAgLTE0MTE4
LDcgKzE0MTE5LDYgQEAKIAkJRjUyM0QxODQwMkRFNDJFODAxODYzNUNBIC8qIGNzcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTNDQTRDOUMwOURGOTNG
QTAwREY4Njc3IC8qIG1ha2V0b2tlbml6ZXIgKi8sCiAJCQkJQTgwRTZDREEwQTE5ODlDQTAwN0ZC
OEM1IC8qIENvdW50ZXIuaCAqLywKIAkJCQk5MzA3MDVDNzA5RTBDOTVGMDBCMTdGRTQgLyogQ291
bnRlci5pZGwgKi8sCiAJCQkJQTgwRTZDQkIwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0JvcmRlcklt
YWdlVmFsdWUuY3BwICovLApAQCAtMTQyMzcsNiArMTQyMzcsNyBAQAogCQkJCTkzQ0E0Qzk5MDlE
RjkzRkEwMERGODY3NyAvKiBodG1sLmNzcyAqLywKIAkJCQk5M0NBNEM5QTA5REY5M0ZBMDBERjg2
NzcgLyogbWFrZS1jc3MtZmlsZS1hcnJheXMucGwgKi8sCiAJCQkJOTNDQTRDOUIwOURGOTNGQTAw
REY4Njc3IC8qIG1ha2Vwcm9wLnBsICovLAorCQkJCTkzQ0E0QzlDMDlERjkzRkEwMERGODY3NyAv
KiBtYWtldG9rZW5pemVyICovLAogCQkJCTkzQ0E0QzlEMDlERjkzRkEwMERGODY3NyAvKiBtYWtl
dmFsdWVzLnBsICovLAogCQkJCTA3MEREOEY1MEYwMTg2ODAwMDcyN0RFQiAvKiBtZWRpYUNvbnRy
b2xzLmNzcyAqLywKIAkJCQkwN0FGRTU5MDBGMTQ0NkJEMDA4NDE2MTcgLyogbWVkaWFDb250cm9s
c1FULmNzcyAqLywKQEAgLTE0MjU1LDYgKzE0MjU2LDggQEAKIAkJCQk5M0NBNEM5RjA5REY5M0ZB
MDBERjg2NzcgLyogcXVpcmtzLmNzcyAqLywKIAkJCQlCQzQzNjhFNzBDMjI2RTMyMDA1RUZCNUYg
LyogUmVjdC5oICovLAogCQkJCUE4MEU3OTk2MEExOUJEMjEwMDdGQjhDNSAvKiBSZWN0LmlkbCAq
LywKKwkJCQlCQzc0REEzNjEwMTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29sb3IuY3BwICovLAorCQkJ
CUJDNzREQTM1MTAxM0YzRjcwMDc5ODdBRCAvKiBSR0JDb2xvci5oICovLAogCQkJCTg1OEMzOEVG
MEFBOEZERDEwMEIxODdBNCAvKiBSR0JDb2xvci5pZGwgKi8sCiAJCQkJQTgwRTZDQ0EwQTE5ODlD
QTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmNwcCAqLywKIAkJCQlBODBFNkNCRTBBMTk4OUNBMDA3
RkI4QzUgLyogU2hhZG93VmFsdWUuaCAqLywKQEAgLTE2MDk5LDggKzE2MTAyLDYgQEAKIAkJCQk2
NURGMzIwMjA5RDFDQzYwMDAwQkUzMjUgLyogSlNSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RDIzQ0E1NUQwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDRkUyRjEyMEMxQjU4MzgwMDIwMjM1RiAvKiBKU1JlY3QuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUJDMzQ1MjQ0MEQ3RTAwRUEwMDE2NTc0QSAvKiBKU1JHQkNvbG9yLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlCQzM0NTI1NjBEN0UwMjg1MDAxNjU3NEEgLyogSlNSR0JDb2xvci5sdXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUMwMUMzMEMyNzREREQwMDlGNEVDOSAvKiBKU1NjcmVl
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4MjQzMjkwRDBDRThBMjAwNDYwQzhGIC8qIEpTU1FM
RXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTgyRkVEMENBQjA3RUUwMDIyMzdBRSAvKiBK
U1NRTFJlc3VsdFNldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNzAwMSw2ICsxNzAwMiw4IEBACiAJ
CQkJMTVDNzcwOEQxMDBEM0M2QjAwNUJBMjY3IC8qIFZhbGlkaXR5U3RhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE1Qzc3MDkzMTAwRDNDQTgwMDVCQTI2NyAvKiBKU1ZhbGlkaXR5U3RhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTE1Qzc3MEE2MTAwRDQxQ0QwMDVCQTI2NyAvKiBET01WYWxpZGl0
eVN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzc0REEzNzEwMTNGM0Y3MDA3OTg3QUQgLyog
UkdCQ29sb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNzREQTQ5MTAxM0Y0NjgwMDc5ODdBRCAv
KiBKU1JHQkNvbG9yLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE3MjUzLDcgKzE3MjU2LDcgQEAKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxs
UGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7QlVJTFRfUFJP
RFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XZWJDb3JlXCJcbmNkIFwiJHtCVUlMVF9QUk9EVUNU
U19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmVcIlxuXG5leHBvcnQgQ1JFQVRFX0hBU0hfVEFC
TEU9XCIke0pBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJ9L2NyZWF0ZV9oYXNoX3Rh
YmxlXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNST09UfVwiIFdlYkNvcmVcbmV4cG9ydCBXZWJD
b3JlPVwiV2ViQ29yZVwiXG5cbmlmIFsgXCIke0FDVElPTn1cIiA9IFwiYnVpbGRcIiAtbyBcIiR7
QUNUSU9OfVwiID0gXCJpbnN0YWxsXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGhkcnNc
IiBdOyB0aGVuXG4gICAgbWFrZSAtZiBcIldlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1q
IGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmF2YWlsY3B1YFxuZmlcbiI7CisJCQlzaGVsbFNjcmlw
dCA9ICJta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlXCJcbmNkIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmVc
IlxuXG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV2ViQ29yZVxuZXhwb3J0IFdlYkNvcmU9
XCJXZWJDb3JlXCJcblxuaWYgWyBcIiR7QUNUSU9OfVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJ
T059XCIgPSBcImluc3RhbGxcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIF07
IHRoZW5cbiAgICBtYWtlIC1mIFwiV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlXCIgLWogYC91
c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYXZhaWxjcHVgXG5maVxuIjsKIAkJfTsKIC8qIEVuZCBQQlhT
aGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCkBAIC0xODE4Myw3ICsxODE4Niw2IEBA
CiAJCQkJNjVERjMyMDEwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRDIzQ0E1NUYwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNGRTJGMTEwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlCQzM0NTI0MzBEN0UwMEVBMDAxNjU3NEEgLyogSlNSR0JD
b2xvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VDMDFDMjBDMjc0REREMDA5RjRFQzkgLyog
SlNTY3JlZW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE0Qzc2MzcwQ0U5MjI1RTAwN0VGM0NE
IC8qIEpTU1FMRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFODJGRUMwQ0FCMDdFRTAw
MjIzN0FFIC8qIEpTU1FMUmVzdWx0U2V0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTkwMzEsNiAr
MTkwMzMsOCBAQAogCQkJCTE1Qzc3MDhFMTAwRDNDNkIwMDVCQTI2NyAvKiBWYWxpZGl0eVN0YXRl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE1Qzc3MDk0MTAwRDNDQTgwMDVCQTI2NyAvKiBKU1Zh
bGlkaXR5U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTVDNzcwQTUxMDBENDFDRDAwNUJB
MjY3IC8qIERPTVZhbGlkaXR5U3RhdGUubW0gaW4gU291cmNlcyAqLywKKwkJCQlCQzc0REEzODEw
MTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM3NERB
NDgxMDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdCQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUkdCQ29sb3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNSR0JDb2xvci5jcHAJKHJldmlzaW9uIDQ2MTI1KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw4NyArMCww
IEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUu
b3JnKQotICogIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQot
ICogIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA2IEphbWVzIEcuIFNw
ZXRoIChzcGV0aEBlbmQuY29tKQotICogIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2Vpbmln
IChzYW1Ad2Via2l0Lm9yZykKLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
Ci0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU1JHQkNvbG9yLmgiCi0KLSNpbmNsdWRlICJDU1NQ
cmltaXRpdmVWYWx1ZS5oIgotI2luY2x1ZGUgIkpTQ1NTUHJpbWl0aXZlVmFsdWUuaCIKLQotdXNp
bmcgbmFtZXNwYWNlIEpTQzsKLQotc3RhdGljIEpTVmFsdWUganNSR0JDb2xvclJlZChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90Jik7Ci1zdGF0aWMgSlNW
YWx1ZSBqc1JHQkNvbG9yR3JlZW4oRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0
IFByb3BlcnR5U2xvdCYpOwotc3RhdGljIEpTVmFsdWUganNSR0JDb2xvckJsdWUoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOwotCi0vKgotQGJlZ2lu
IEpTUkdCQ29sb3JUYWJsZQotICByZWQgICBqc1JHQkNvbG9yUmVkICAgICAgICBEb250RGVsZXRl
fFJlYWRPbmx5Ci0gIGdyZWVuIGpzUkdCQ29sb3JHcmVlbiAgICAgIERvbnREZWxldGV8UmVhZE9u
bHkKLSAgYmx1ZSAganNSR0JDb2xvckJsdWUgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotQGVu
ZAotKi8KLQotI2luY2x1ZGUgIkpTUkdCQ29sb3IubHV0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU1JHQkNvbG9yKTsKLQotY29uc3QgQ2xh
c3NJbmZvIEpTUkdCQ29sb3I6OnNfaW5mbyA9IHsgIlJHQkNvbG9yIiwgMCwgJkpTUkdCQ29sb3JU
YWJsZSwgMCB9OwotCi1KU1JHQkNvbG9yOjpKU1JHQkNvbG9yKEV4ZWNTdGF0ZSogZXhlYywgdW5z
aWduZWQgY29sb3IpCi0gICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNl
cyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAotICAgIC8vIFRo
aXMgd2lsbCBiZSBmaXhlZCB3aGVuIEpTUkdCQ29sb3Igd3JhcHMgY3NzL1JHQkNvbG9yIGluc3Rl
YWQgb2YgYmVpbmcgY3VzdG9tLgotICAgIDogRE9NT2JqZWN0KGRlcHJlY2F0ZWRHZXRET01TdHJ1
Y3R1cmU8SlNSR0JDb2xvcj4oZXhlYykpCi0gICAgLCBtX2NvbG9yKGNvbG9yKQotewotfQotCi1i
b29sIEpTUkdCQ29sb3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHJl
dHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNSR0JDb2xvciwgRE9NT2JqZWN0PihleGVjLCAmSlNS
R0JDb2xvclRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCi1KU1ZhbHVlIGdl
dEpTUkdCQ29sb3IoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBjb2xvcikKLXsKLSAgICByZXR1
cm4gbmV3IChleGVjKSBKU1JHQkNvbG9yKGV4ZWMsIGNvbG9yKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotSlNWYWx1ZSBqc1JHQkNv
bG9yUmVkKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5
U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gdG9KUyhleGVjLCBDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlKChzdGF0aWNfY2FzdDxKU1JHQkNvbG9yKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgp
KSktPmltcGwoKSA+PiAxNikgJiAweEZGLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikp
OwotfQotCi1KU1ZhbHVlIGpzUkdCQ29sb3JHcmVlbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcmV0dXJuIHRvSlMo
ZXhlYywgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSgoc3RhdGljX2Nhc3Q8SlNSR0JDb2xvcio+
KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5pbXBsKCkgPj4gOCkgJiAweEZGLCBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikpOwotfQotCi1KU1ZhbHVlIGpzUkdCQ29sb3JCbHVlKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xv
dCkKLXsKLSAgICByZXR1cm4gdG9KUyhleGVjLCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN0
YXRpY19jYXN0PEpTUkdCQ29sb3IqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKS0+aW1wbCgp
ICYgMHhGRiwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpKTsKLX0KLQpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1JHQkNvbG9yLmgJKHJldmlzaW9uIDQ2MTI1KQorKysgV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1JHQkNvbG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAq
ICBDb3B5cmlnaHQgKEMpIDIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBD
b3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqICBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2lmbmRlZiBKU1JHQkNvbG9y
X2gKLSNkZWZpbmUgSlNSR0JDb2xvcl9oCi0KLSNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICAvLyBGSVhNRTog
SlNSR0JDb2xvciBzaG91bGQgaGF2ZSBhIHByb3BlciBwcm90b3R5cGUgYW5kIGEgY29uc3RydWN0
b3IuCi0gICAgY2xhc3MgSlNSR0JDb2xvciA6IHB1YmxpYyBET01PYmplY3QgewotICAgIHB1Ymxp
YzoKLSAgICAgICAgSlNSR0JDb2xvcihKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIGNvbG9yKTsK
LQotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKLQotICAgICAg
ICB2aXJ0dWFsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVy
biAmc19pbmZvOyB9Ci0gICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87
Ci0KLSAgICAgICAgdW5zaWduZWQgaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1fY29sb3I7IH0KLQot
ICAgICAgICBzdGF0aWMgSlNDOjpPYmplY3RQcm90b3R5cGUqIGNyZWF0ZVByb3RvdHlwZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3Jl
YXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5m
byhKU0M6Ok9iamVjdFR5cGUpKTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAg
dW5zaWduZWQgbV9jb2xvcjsKLSAgICB9OwotCi0gICAgSlNDOjpKU1ZhbHVlIGdldEpTUkdCQ29s
b3IoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBjb2xvcik7Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEpTUkdCQ29sb3JfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCShy
ZXZpc2lvbiA0NjEyNSkKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTUwMyw2ICs1MDMsMjEgQEAgaWQgPERPTUV2ZW50VGFyZ2V0PiBraXQoV2ViQ29y
ZTo6RXZlbnRUYQogQGVuZAogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
Ly8gRE9NUkdCQ29sb3IKKworQGltcGxlbWVudGF0aW9uIERPTVJHQkNvbG9yIChXZWJQcml2YXRl
KQorCisvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCBhcyBzb29uIGFzIGFsbCBpbnRl
cm5hbCBBcHBsZSB1c2VzIG9mIGl0IGhhdmUgYmVlbiByZXBsYWNlZCB3aXRoCisvLyBjYWxscyB0
byB0aGUgcHVibGljIG1ldGhvZCAtIChOU0NvbG9yICopY29sb3IuCistIChOU0NvbG9yICopX2Nv
bG9yCit7CisgICAgcmV0dXJuIFtzZWxmIGNvbG9yXTsKK30KKworQGVuZAorCisKKy8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBET01Ob2RlRmlsdGVyCiAKIERPTU5vZGVG
aWx0ZXIgKmtpdChXZWJDb3JlOjpOb2RlRmlsdGVyKiBpbXBsKQpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTVJHQkNvbG9yLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01SR0JDb2xvci5tbQkocmV2aXNpb24gNDYxMjUpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NUkdCQ29sb3IubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxLDExNSArMzEsNzQgQEAK
ICNpbXBvcnQgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW1wb3J0ICJDb2xvck1hYy5oIgogI2lt
cG9ydCAiRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9u
SGFuZGxlcnMuaCIKKyNpbXBvcnQgIlJHQkNvbG9yLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5o
IgogI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKICNpbXBvcnQgIldlYlNjcmlwdE9iamVj
dFByaXZhdGUuaCIKLSNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2lt
cG9ydCA8d3RmL0dldFB0ci5oPgogCi1zdGF0aWMgTlNNYXBUYWJsZSogUkdCQ29sb3JXcmFwcGVy
Q2FjaGU7Ci0KLXN0YXRpYyBpZCBnZXRXcmFwcGVyRm9yUkdCKFdlYkNvcmU6OlJHQkEzMiB2YWx1
ZSkKLXsKLSAgICBpZiAoIVJHQkNvbG9yV3JhcHBlckNhY2hlKQotICAgICAgICByZXR1cm4gbmls
OwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpZD4oTlNNYXBHZXQoUkdCQ29sb3JXcmFwcGVyQ2Fj
aGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHZhbHVlKSkpOwotfQotCi1zdGF0aWMg
dm9pZCBzZXRXcmFwcGVyRm9yUkdCKGlkIHdyYXBwZXIsIFdlYkNvcmU6OlJHQkEzMiB2YWx1ZSkK
LXsKLSAgICBpZiAoIVJHQkNvbG9yV3JhcHBlckNhY2hlKQotICAgICAgICAvLyBObyBuZWVkIHRv
IHJldGFpbi9mcmVlIGVpdGhlciBpbXBsIGtleSwgb3IgaWQgdmFsdWUuICBJdGVtcyB3aWxsIGJl
IHJlbW92ZWQKLSAgICAgICAgLy8gZnJvbSB0aGUgY2FjaGUgaW4gZGVhbGxvYyBtZXRob2RzLgot
ICAgICAgICBSR0JDb2xvcldyYXBwZXJDYWNoZSA9IGNyZWF0ZVdyYXBwZXJDYWNoZVdpdGhJbnRl
Z2VyS2V5cygpOwotICAgIE5TTWFwSW5zZXJ0KFJHQkNvbG9yV3JhcHBlckNhY2hlLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IHZvaWQqPih2YWx1ZSksIHdyYXBwZXIpOwotfQotCi1zdGF0aWMgdm9p
ZCByZW1vdmVXcmFwcGVyRm9yUkdCKFdlYkNvcmU6OlJHQkEzMiB2YWx1ZSkKLXsKLSAgICBpZiAo
IVJHQkNvbG9yV3JhcHBlckNhY2hlKQotICAgICAgICByZXR1cm47Ci0gICAgTlNNYXBSZW1vdmUo
UkdCQ29sb3JXcmFwcGVyQ2FjaGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHZhbHVl
KSk7Ci19CisjZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpSR0JDb2xvcio+
KF9pbnRlcm5hbCkKIAogQGltcGxlbWVudGF0aW9uIERPTVJHQkNvbG9yCiAKLSsgKHZvaWQpaW5p
dGlhbGl6ZQorLSAodm9pZClkZWFsbG9jCiB7Ci0gICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5n
KCk7Ci0jaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCi0gICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9u
TWFpblRocmVhZChzZWxmKTsKLSNlbmRpZgorICAgIHsgRE9NX0FTU0VSVF9NQUlOX1RIUkVBRCgp
OyBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOyB9CisgICAgaWYgKF9pbnRl
cm5hbCkKKyAgICAgICAgSU1QTC0+ZGVyZWYoKTsKKyAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAK
LS0gKHZvaWQpZGVhbGxvYworLSAodm9pZClmaW5hbGl6ZQogewotICAgIGlmIChXZWJDb3JlT2Jq
Q1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRocmVhZChbRE9NUkdCQ29sb3IgY2xhc3NdLCBzZWxm
KSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIHJlbW92ZVdyYXBwZXJGb3JSR0IocmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KF9pbnRlcm5hbCkpOwotICAgIF9pbnRlcm5hbCA9IDA7Ci0g
ICAgW3N1cGVyIGRlYWxsb2NdOworICAgIGlmIChfaW50ZXJuYWwpCisgICAgICAgIElNUEwtPmRl
cmVmKCk7CisgICAgW3N1cGVyIGZpbmFsaXplXTsKIH0KIAogLSAoRE9NQ1NTUHJpbWl0aXZlVmFs
dWUgKilyZWQKIHsKLSAgICBXZWJDb3JlOjpSR0JBMzIgcmdiID0gcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KF9pbnRlcm5hbCk7Ci0gICAgaW50IHZhbHVlID0gKHJnYiA+PiAxNikgJiAweEZG
OwotICAgIHJldHVybiBraXQoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpLmdldCgpKTsKKyAgICBy
ZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnJlZCgpKSk7CiB9CiAKIC0gKERPTUNTU1ByaW1p
dGl2ZVZhbHVlICopZ3JlZW4KIHsKLSAgICBXZWJDb3JlOjpSR0JBMzIgcmdiID0gcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KF9pbnRlcm5hbCk7Ci0gICAgaW50IHZhbHVlID0gKHJnYiA+PiA4
KSAmIDB4RkY7Ci0gICAgcmV0dXJuIGtpdChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCBXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikuZ2V0KCkp
OworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Z3JlZW4oKSkpOwogfQogCiAtIChE
T01DU1NQcmltaXRpdmVWYWx1ZSAqKWJsdWUKIHsKLSAgICBXZWJDb3JlOjpSR0JBMzIgcmdiID0g
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KF9pbnRlcm5hbCk7Ci0gICAgaW50IHZhbHVlID0g
cmdiICYgMHhGRjsKLSAgICByZXR1cm4ga2l0KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGUodmFsdWUsIFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKS5nZXQo
KSk7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5ibHVlKCkpKTsKIH0KIAogLSAo
RE9NQ1NTUHJpbWl0aXZlVmFsdWUgKilhbHBoYQogewotICAgIFdlYkNvcmU6OlJHQkEzMiByZ2Ig
PSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oX2ludGVybmFsKTsKLSAgICBmbG9hdCB2YWx1
ZSA9IHN0YXRpY19jYXN0PGZsb2F0PihXZWJDb3JlOjpDb2xvcihyZ2IpLmFscGhhKCkpIC8gMHhG
RjsKLSAgICByZXR1cm4ga2l0KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFs
dWUsIFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKS5nZXQoKSk7Ci0gICAg
CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5hbHBoYSgpKSk7CiB9CiAKIC0gKE5T
Q29sb3IgKiljb2xvcgogewotICAgIFdlYkNvcmU6OlJHQkEzMiByZ2IgPSByZWludGVycHJldF9j
YXN0PHVpbnRwdHJfdD4oX2ludGVybmFsKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6bnNDb2xvcihX
ZWJDb3JlOjpDb2xvcihyZ2IpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6bnNDb2xvcihJTVBMLT5j
b2xvcigpKTsKIH0KIAogQGVuZAogCi1AaW1wbGVtZW50YXRpb24gRE9NUkdCQ29sb3IgKFdlYlBy
aXZhdGUpCi0KLS8vIEZJWE1FOiB0aGlzIHNob3VsZCBiZSByZW1vdmVkIG9uY2UgYWxsIGludGVy
bmFsIEFwcGxlIHVzZXMgb2YgaXQgaGF2ZSBiZWVuIHJlcGxhY2VkIHdpdGgKLS8vIGNhbGxzIHRv
IHRoZSBwdWJsaWMgbWV0aG9kLCBjb2xvciB3aXRob3V0IHRoZSBsZWFkaW5nIHVuZGVyc2NvcmUu
Ci0tIChOU0NvbG9yICopX2NvbG9yCitXZWJDb3JlOjpSR0JDb2xvciogY29yZShET01SR0JDb2xv
ciAqd3JhcHBlcikKIHsKLSAgICByZXR1cm4gW3NlbGYgY29sb3JdOworICAgIHJldHVybiB3cmFw
cGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpSR0JDb2xvcio+KHdyYXBwZXItPl9pbnRl
cm5hbCkgOiAwOwogfQogCi1AZW5kCi0KLVdlYkNvcmU6OlJHQkEzMiBjb3JlKERPTVJHQkNvbG9y
ICpjb2xvcikKK0RPTVJHQkNvbG9yICpraXQoV2ViQ29yZTo6UkdCQ29sb3IqIHZhbHVlKQogewot
ICAgICByZXR1cm4gY29sb3IgPyBzdGF0aWNfY2FzdDxXZWJDb3JlOjpSR0JBMzI+KHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90Pihjb2xvci0+X2ludGVybmFsKSkgOiAwOwotfQotCi1ET01SR0JD
b2xvciAqa2l0KFdlYkNvcmU6OlJHQkEzMiB2YWx1ZSkKLXsKLSAgICBpZiAoRE9NUkdCQ29sb3Ig
KndyYXBwZXIgPSBnZXRXcmFwcGVyRm9yUkdCKHZhbHVlKSkKKyAgICB7IERPTV9BU1NFUlRfTUFJ
Tl9USFJFQUQoKTsgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsgfTsKKyAg
ICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gbmlsOworICAgIGlmIChET01SR0JDb2xvciAq
d3JhcHBlciA9IGdldERPTVdyYXBwZXIodmFsdWUpKQogICAgICAgICByZXR1cm4gW1t3cmFwcGVy
IHJldGFpbl0gYXV0b3JlbGVhc2VdOwotCiAgICAgRE9NUkdCQ29sb3IgKndyYXBwZXIgPSBbW0RP
TVJHQkNvbG9yIGFsbG9jXSBfaW5pdF07CiAgICAgd3JhcHBlci0+X2ludGVybmFsID0gcmVpbnRl
cnByZXRfY2FzdDxET01PYmplY3RJbnRlcm5hbCo+KHZhbHVlKTsKLSAgICBzZXRXcmFwcGVyRm9y
UkdCKHdyYXBwZXIsIHZhbHVlKTsKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgYWRkRE9NV3JhcHBl
cih3cmFwcGVyLCB2YWx1ZSk7CiAgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKIH0K
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCShyZXZpc2lv
biA0NjEyNSkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIG15ICVwcmltaXRpdmVUeXBlSGFzaCA9ICgi
aW50IiA9PiAxLCAic2gKICAgICAgICAgICAgICAgICAgICAgICAgICAiZmxvYXQiID0+IDEsICJk
b3VibGUiID0+IDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICJib29sZWFuIiA9PiAxLCAi
dm9pZCIgPT4gMSk7CiAKLW15ICVwb2RUeXBlSGFzaCA9ICgiUkdCQ29sb3IiID0+IDEsICJTVkdO
dW1iZXIiID0+IDEsICJTVkdUcmFuc2Zvcm0iID0+IDEpOworbXkgJXBvZFR5cGVIYXNoID0gKCJT
VkdOdW1iZXIiID0+IDEsICJTVkdUcmFuc2Zvcm0iID0+IDEpOwogbXkgJXBvZFR5cGVzV2l0aFdy
aXRhYmxlUHJvcGVydGllc0hhc2ggPSAoIlNWR0xlbmd0aCIgPT4gMSwgIlNWR01hdHJpeCIgPT4g
MSwgIlNWR1BvaW50IiA9PiAxLCAiU1ZHUmVjdCIgPT4gMSk7CiBteSAlc3RyaW5nVHlwZUhhc2gg
PSAoIkRPTVN0cmluZyIgPT4gMSwgIkF0b21pY1N0cmluZyIgPT4gMSk7CiAKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gNDYxMjUp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjUsNyArMTY1LDcgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgICMg
V2hlbiB3ZSdyZSBmaW5pc2hlZCB3aXRoIHRoZSBvbmUtZmlsZS1wZXItY2xhc3MKICAgICAjIHJl
b3JnYW5pemF0aW9uLCB3ZSB3b24ndCBuZWVkIHRoZXNlIHNwZWNpYWwgY2FzZXMuCiAgICAgaWYg
KCRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUpIG9yIEF2b2lkSW5jbHVzaW9u
T2ZUeXBlKCR0eXBlKQotICAgICAgICBvciAkdHlwZSBlcSAiRE9NU3RyaW5nIiBvciAkdHlwZSBl
cSAiRE9NT2JqZWN0IiBvciAkdHlwZSBlcSAiUkdCQ29sb3IiIG9yICR0eXBlIGVxICJBcnJheSIp
IHsKKyAgICAgICAgb3IgJHR5cGUgZXEgIkRPTVN0cmluZyIgb3IgJHR5cGUgZXEgIkRPTU9iamVj
dCIgb3IgJHR5cGUgZXEgIkFycmF5IikgewogICAgIH0gZWxzaWYgKCR0eXBlID1+IC9TVkdQYXRo
U2VnLykgewogICAgICAgICAkam9pbmVkTmFtZSA9ICR0eXBlOwogICAgICAgICAkam9pbmVkTmFt
ZSA9fiBzL0Fic3xSZWwvLzsKQEAgLTE2OTEsMTEgKzE2OTEsNiBAQCBzdWIgTmF0aXZlVG9KU1Zh
bHVlCiAgICAgICAgIHJldHVybiAianNTdHJpbmcoZXhlYywgJHZhbHVlKSI7CiAgICAgfQogCi0g
ICAgaWYgKCR0eXBlIGVxICJSR0JDb2xvciIpIHsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siSlMk
dHlwZS5oIn0gPSAxOwotICAgICAgICByZXR1cm4gImdldEpTUkdCQ29sb3IoZXhlYywgJHZhbHVl
KSI7Ci0gICAgfQotCiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1BvZFR5cGUoJHR5cGUpKSB7
CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTJHR5cGUuaCJ9ID0gMTsKIApJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkocmV2aXNpb24gNDYx
MjUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0JKHdv
cmtpbmcgY29weSkKQEAgLTUyMiwxMSArNTIyLDYgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCR0eXBlIGVxICJSR0JDb2xvciIpIHsK
LSAgICAgICAgJGltcGxJbmNsdWRlc3siRE9NUkdCQ29sb3JJbnRlcm5hbC5oIn0gPSAxOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgaWYgKCR0eXBlIGVxICJET01XaW5kb3ciKSB7CiAg
ICAgICAgICRpbXBsSW5jbHVkZXN7IkRPTUFic3RyYWN0Vmlld0ludGVybmFsLmgifSA9IDE7CiAg
ICAgICAgICRpbXBsSW5jbHVkZXN7IkRPTVdpbmRvdy5oIn0gPSAxOwpAQCAtOTI0LDggKzkxOSw2
IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNT
VkdBbmltYXRlZFR5cGUoJGludGVyZmFjZU5hbWUpKSB7CiAgICAgICAgICAgICBwdXNoKEBpbnRl
cm5hbEhlYWRlckNvbnRlbnQsICIjaW1wb3J0IDxXZWJDb3JlL1NWR0FuaW1hdGVkVGVtcGxhdGUu
aD5cblxuIik7Ci0gICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJSR0JDb2xvciIp
IHsKLSAgICAgICAgICAgIHB1c2goQGludGVybmFsSGVhZGVyQ29udGVudCwgIiNpbXBvcnQgPFdl
YkNvcmUvQ29sb3IuaD5cblxuIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwdXNo
KEBpbnRlcm5hbEhlYWRlckNvbnRlbnQsICJuYW1lc3BhY2UgV2ViQ29yZSB7XG4iKTsKICAgICAg
ICAgICAgICRzdGFydGVkTmFtZXNwYWNlID0gMTsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkocmV2aXNpb24g
NDYxMjUpCisrKyBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
ODMsNyArMjgzLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoUkdCQTMyJiBjb2xvcgog
ICAgICAgICAgICAgQ1NTVmFsdWUqIHZhbHVlID0gcGFyc2VyLm1fcGFyc2VkUHJvcGVydGllc1sw
XS0+dmFsdWUoKTsKICAgICAgICAgICAgIGlmICh2YWx1ZS0+Y3NzVmFsdWVUeXBlKCkgPT0gQ1NT
VmFsdWU6OkNTU19QUklNSVRJVkVfVkFMVUUpIHsKICAgICAgICAgICAgICAgICBDU1NQcmltaXRp
dmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KHZhbHVlKTsKLSAgICAgICAgICAgICAgICBjb2xvciA9IHByaW1pdGl2ZVZhbHVlLT5nZXRSR0JD
b2xvclZhbHVlKCk7CisgICAgICAgICAgICAgICAgY29sb3IgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0
UkdCQTMyVmFsdWUoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCShyZXZpc2lv
biA0NjEyNSkKKysrIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUGFpci5oIgorI2luY2x1ZGUgIlJHQkNvbG9yLmgiCiAj
aW5jbHVkZSAiUmVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSA8d3Rm
L0FTQ0lJQ1R5cGUuaD4KQEAgLTY0Miw3ICs2NDMsNyBAQCBSZWN0KiBDU1NQcmltaXRpdmVWYWx1
ZTo6Z2V0UmVjdFZhbHVlKEV4CiAgICAgcmV0dXJuIG1fdmFsdWUucmVjdDsKIH0KIAotdW5zaWdu
ZWQgQ1NTUHJpbWl0aXZlVmFsdWU6OmdldFJHQkNvbG9yVmFsdWUoRXhjZXB0aW9uQ29kZSYgZWMp
IGNvbnN0CitSR0JDb2xvciogQ1NTUHJpbWl0aXZlVmFsdWU6OmdldFJHQkNvbG9yVmFsdWUoRXhj
ZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgZWMgPSAwOwogICAgIGlmIChtX3R5cGUgIT0g
Q1NTX1JHQkNPTE9SKSB7CkBAIC02NTAsNyArNjUxLDggQEAgdW5zaWduZWQgQ1NTUHJpbWl0aXZl
VmFsdWU6OmdldFJHQkNvbG9yVgogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1
cm4gbV92YWx1ZS5yZ2Jjb2xvcjsKKyAgICAvLyBGSU1YRTogVGhpcyBzaG91bGQgbm90IHJldHVy
biBhIG5ldyBvYmplY3QgZm9yIGVhY2ggaW52b2NhdGlvbi4KKyAgICByZXR1cm4gUkdCQ29sb3I6
OmNyZWF0ZShtX3ZhbHVlLnJnYmNvbG9yKS5yZWxlYXNlUmVmKCk7CiB9CiAKIFBhaXIqIENTU1By
aW1pdGl2ZVZhbHVlOjpnZXRQYWlyVmFsdWUoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CkluZGV4
OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgJKHJldmlzaW9uIDQ2MTI1KQorKysgV2ViQ29yZS9jc3Mv
Q1NTUHJpbWl0aXZlVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogI2Rl
ZmluZSBDU1NQcmltaXRpdmVWYWx1ZV9oCiAKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1
ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzAsNiArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb3Vu
dGVyOwogY2xhc3MgRGFzaGJvYXJkUmVnaW9uOwogY2xhc3MgUGFpcjsKK2NsYXNzIFJHQkNvbG9y
OwogY2xhc3MgUmVjdDsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgU3RyaW5nSW1wbDsKQEAg
LTE1MCw4ICsxNTIsOCBAQCBwdWJsaWM6CiAgICAgUmVjdCogZ2V0UmVjdFZhbHVlKEV4Y2VwdGlv
bkNvZGUmKSBjb25zdDsKICAgICBSZWN0KiBnZXRSZWN0VmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGUgIT0gQ1NTX1JFQ1QgPyAwIDogbV92YWx1ZS5yZWN0OyB9CiAKLSAgICB1bnNpZ25lZCBn
ZXRSR0JDb2xvclZhbHVlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKLSAgICB1bnNpZ25lZCBnZXRS
R0JDb2xvclZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IENTU19SR0JDT0xPUiA/IDAg
OiBtX3ZhbHVlLnJnYmNvbG9yOyB9CisgICAgUkdCQ29sb3IqIGdldFJHQkNvbG9yVmFsdWUoRXhj
ZXB0aW9uQ29kZSYpIGNvbnN0OworICAgIFJHQkEzMiBnZXRSR0JBMzJWYWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZSAhPSBDU1NfUkdCQ09MT1IgPyAwIDogbV92YWx1ZS5yZ2Jjb2xvcjsgfQog
CiAgICAgUGFpciogZ2V0UGFpclZhbHVlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBQYWly
KiBnZXRQYWlyVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgIT0gQ1NTX1BBSVIgPyAwIDog
bV92YWx1ZS5wYWlyOyB9CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24g
NDYxMjUpCisrKyBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTc2Niw3ICs1NzY2LDcgQEAgQ29sb3IgQ1NTU3R5bGVTZWxlY3Rvcjo6Z2V0Q29sb3JG
cm9tUHJpbQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjb2wgPSBjb2xvckZvckNTU1ZhbHVl
KGlkZW50KTsKICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkg
PT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19SR0JDT0xPUikKLSAgICAgICAgY29sLnNldFJHQihw
cmltaXRpdmVWYWx1ZS0+Z2V0UkdCQ29sb3JWYWx1ZSgpKTsKKyAgICAgICAgY29sLnNldFJHQihw
cmltaXRpdmVWYWx1ZS0+Z2V0UkdCQTMyVmFsdWUoKSk7CiAgICAgcmV0dXJuIGNvbDsKIH0KIApJ
bmRleDogV2ViQ29yZS9jc3MvUkdCQ29sb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3Nz
L1JHQkNvbG9yLmNwcAkocmV2aXNpb24gNDYxMjUpCisrKyBXZWJDb3JlL2Nzcy9SR0JDb2xvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDA5IEdvb2dsZSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC01MSw1ICs1MiwxMSBAQCBQYXNzUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBSR0JDb2xvcjo6CiAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGUodmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKIH0KIAorUGFzc1JlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gUkdCQ29sb3I6OmFscGhhKCkKK3sKKyAgICBmbG9hdCB2YWx1
ZSA9IHN0YXRpY19jYXN0PGZsb2F0PigobV9yZ2JDb2xvciA+PiAyNCkgJiAweEZGKSAvIDB4RkY7
CisgICAgcmV0dXJuIFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUsIFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCkluZGV4OiBXZWJDb3JlL2Nzcy9SR0JDb2xvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvY3NzL1JHQkNvbG9yLmgJKHJldmlzaW9uIDQ2MTI1KQorKysgV2ViQ29yZS9jc3Mv
UkdCQ29sb3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgR29vZ2xlLCBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDI0ICsyOCwyOSBA
QAogI2RlZmluZSBSR0JDb2xvcl9oCiAKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgor
I2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgUkdCQ29sb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxS
R0JDb2xvcj4gewogICAgIHB1YmxpYzoKLSAgICAgICAgLy8gRklYTUU6IE1ha2UgY29uc3RydWN0
b3IgcHJpdmF0ZSBvbmNlIGNvZGVnZW5lcmF0b3IgY2hhbmdlcwotICAgICAgICAvLyBoYXZlIGxh
bmRlZCB1cHN0cmVhbS4KLSAgICAgICAgUkdCQ29sb3IodW5zaWduZWQgcmdiQ29sb3IpIDogbV9y
Z2JDb2xvcihyZ2JDb2xvcikgeyB9Ci0KICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8UkdCQ29s
b3I+IGNyZWF0ZSh1bnNpZ25lZCByZ2JDb2xvcik7CiAKICAgICAgICAgUGFzc1JlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gcmVkKCk7CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IGdyZWVuKCk7CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGJsdWUo
KTsKKyAgICAgICAgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gYWxwaGEoKTsKKworICAg
ICAgICBDb2xvciBjb2xvcigpIGNvbnN0IHsgcmV0dXJuIENvbG9yKG1fcmdiQ29sb3IpOyB9CiAK
ICAgICBwcml2YXRlOgotICAgICAgICB1bnNpZ25lZCBtX3JnYkNvbG9yOworICAgICAgICBSR0JD
b2xvcih1bnNpZ25lZCByZ2JDb2xvcikKKyAgICAgICAgICAgIDogbV9yZ2JDb2xvcihyZ2JDb2xv
cikKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgUkdCQTMyIG1fcmdiQ29sb3I7CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9jc3MvUkdCQ29s
b3IuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL1JHQkNvbG9yLmlkbAkocmV2aXNpb24g
NDYxMjUpCisrKyBXZWJDb3JlL2Nzcy9SR0JDb2xvci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0
LDcgKzI0LDYgQEAgbW9kdWxlIGNzcyB7CiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgT2JqQ0N1
c3RvbUltcGxlbWVudGF0aW9uLAogICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yLAotICAgICAg
ICBQT0RUeXBlPVJHQkEzMiwKICAgICAgICAgSW50ZXJmYWNlVVVJRD0yZTNiMTUwMS0yY2Y3LTRh
NGEtYmJmNy1kODg0M2QxYzNiZTcsCiAgICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD1jZjc3OTk1
My00ODk4LTQ4MDAtYWEzMS02YzllM2Y0NzExYmUKICAgICBdIFJHQkNvbG9yIHsKSW5kZXg6IFdl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCShyZXZpc2lvbiA0NjEyNSkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0zMDQsNiArMzA0LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBDb3VudGVyQ29uc3RydWN0b3IgQ291bnRlcjsKICAgICAgICAgYXR0cmli
dXRlIENTU1J1bGVMaXN0Q29uc3RydWN0b3IgQ1NTUnVsZUxpc3Q7CiAgICAgICAgIGF0dHJpYnV0
ZSBSZWN0Q29uc3RydWN0b3IgUmVjdDsKKyAgICAgICAgYXR0cmlidXRlIFJHQkNvbG9yQ29uc3Ry
dWN0b3IgUkdCQ29sb3I7CiAgICAgICAgIGF0dHJpYnV0ZSBTdHlsZVNoZWV0TGlzdENvbnN0cnVj
dG9yIFN0eWxlU2hlZXRMaXN0OwogCiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhlIGNv
bW1lbnRlZC1vdXQgZ2xvYmFsIGNvbnN0cnVjdG9ycyBmb3IgaW50ZXJmYWNlcyBsaXN0ZWQgaW4g
RE9NIExldmVsIDMgQ29yZSBzcGVjaWZpY2F0aW9uLgpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQ29s
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0NvbG9yLmNwcAkocmV2aXNpb24g
NDYxMjUpCisrKyBXZWJDb3JlL3N2Zy9TVkdDb2xvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDYgKzI1LDcgQEAKICNpbmNsdWRlICJTVkdDb2xvci5oIgogCiAjaW5jbHVkZSAiQ1NTUGFyc2Vy
LmgiCisjaW5jbHVkZSAiUkdCQ29sb3IuaCIKICNpbmNsdWRlICJTVkdFeGNlcHRpb24uaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjEsOSArNjIsOSBAQCB1bnNpZ25lZCBzaG9ydCBTVkdD
b2xvcjo6Y29sb3JUeXBlKCkgY29uCiAgICAgcmV0dXJuIG1fY29sb3JUeXBlOwogfQogCi11bnNp
Z25lZCBTVkdDb2xvcjo6cmdiQ29sb3IoKSBjb25zdAorUkdCQ29sb3IqIFNWR0NvbG9yOjpyZ2JD
b2xvcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fY29sb3IucmdiKCk7CisgICAgcmV0dXJuIFJH
QkNvbG9yOjpjcmVhdGUobV9jb2xvci5yZ2IoKSkucmVsZWFzZVJlZigpOwogfQogCiB2b2lkIFNW
R0NvbG9yOjpzZXRSR0JDb2xvcihjb25zdCBTdHJpbmcmIHJnYkNvbG9yLCBFeGNlcHRpb25Db2Rl
JiBlYykKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0NvbG9yLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdmcvU1ZHQ29sb3IuaAkocmV2aXNpb24gNDYxMjUpCisrKyBXZWJDb3JlL3N2Zy9TVkdDb2xv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorICAgIGNsYXNzIFJHQkNvbG9yOworCiAgICAgY2xhc3MgU1ZHQ29sb3IgOiBwdWJsaWMg
Q1NTVmFsdWUgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQ29s
b3I+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGNvbG9yKQpAQCAtNTUsNyArNTcsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIC8vICdTVkdDb2xvcicgZnVuY3Rpb25zCiAgICAgICAgIHVu
c2lnbmVkIHNob3J0IGNvbG9yVHlwZSgpIGNvbnN0OwogCi0gICAgICAgIHVuc2lnbmVkIHJnYkNv
bG9yKCkgY29uc3Q7CisgICAgICAgIFJHQkNvbG9yKiByZ2JDb2xvcigpIGNvbnN0OwogICAgICAg
ICAKICAgICAgICAgc3RhdGljIENvbG9yIGNvbG9yRnJvbVJHQkNvbG9yU3RyaW5nKGNvbnN0IFN0
cmluZyYpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NjIwNikKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA5LTA3LTIxICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ2hhbmdlcyBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI3MjQyCisgICAgICAgIEpTQyBiaW5kaW5ncyBzaG91bGQgdXNlIGFuIGF1dG8t
Ym91bmQgUkdCQ29sb3IgY2xhc3MgaW5zdGVhZCBvZiBoYW5kLXJvbGxlZCBKU1JHQkNvbG9yCisK
KyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0OgorCiAyMDA5LTA3LTIxICBT
aW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBUb3IgQXJuZSBWZXN0YsO4LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9t
LWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQ2MTI1KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEyNSw3ICsxMjUsNyBAQCBGQUlMIFRyeUFsbG9jYXRlKCdIVE1MT3B0aW9u
c0NvbGxlY3Rpb24nCiBGQUlMIFRyeUFsbG9jYXRlKCdMb2NhdGlvbicpIHNob3VsZCBiZSBleGNl
cHRpb24uIFdhcyBubyBjb25zdHJ1Y3Rvci4KIEZBSUwgVHJ5QWxsb2NhdGUoJ05hdmlnYXRvcicp
IHNob3VsZCBiZSBleGNlcHRpb24uIFdhcyBubyBjb25zdHJ1Y3Rvci4KIEZBSUwgVHJ5QWxsb2Nh
dGUoJ05vZGVJdGVyYXRvcicpIHNob3VsZCBiZSBleGNlcHRpb24uIFdhcyBubyBjb25zdHJ1Y3Rv
ci4KLUZBSUwgVHJ5QWxsb2NhdGUoJ1JHQkNvbG9yJykgc2hvdWxkIGJlIGV4Y2VwdGlvbi4gV2Fz
IG5vIGNvbnN0cnVjdG9yLgorUEFTUyBUcnlBbGxvY2F0ZSgnUkdCQ29sb3InKSBpcyAnZXhjZXB0
aW9uJwogRkFJTCBUcnlBbGxvY2F0ZSgnU2NyZWVuJykgc2hvdWxkIGJlIGV4Y2VwdGlvbi4gV2Fz
IG5vIGNvbnN0cnVjdG9yLgogRkFJTCBUcnlBbGxvY2F0ZSgnVHJlZVdhbGtlcicpIHNob3VsZCBi
ZSBleGNlcHRpb24uIFdhcyBubyBjb25zdHJ1Y3Rvci4KIEZBSUwgVHJ5QWxsb2NhdGUoJ1hQYXRo
RXhwcmVzc2lvbicpIHNob3VsZCBiZSBleGNlcHRpb24uIFdhcyBubyBjb25zdHJ1Y3Rvci4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRh
bmNlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDYxMjUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
MjksNiArMTI5LDcgQEAgUEFTUyBpbm5lci5QbHVnaW4uaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlu
bmVyLlBsdWdpbkFycmF5LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLlByb2dyZXNzRXZlbnQuaXNJbm5l
ciBpcyB0cnVlCitQQVNTIGlubmVyLlJHQkNvbG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5l
ci5SYW5nZS5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuUmFuZ2VFcnJvci5pc0lubmVyIGlz
IHRydWUKIFBBU1MgaW5uZXIuUmFuZ2VFeGNlcHRpb24uaXNJbm5lciBpcyB0cnVlCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDQ2MTI1KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2Vz
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDggKzEwMiw4IEBAIFBBU1MganNX
cmFwcGVyQ2xhc3Moc3R5bGVzaGVldC5jc3NSdWxlcy4KIFBBU1MganNXcmFwcGVyQ2xhc3Moc3R5
bGVzaGVldC5jc3NSdWxlcy5pdGVtKDApLnN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJ2NvbG9y
JykuX19wcm90b19fKSBpcyAnQ1NTUHJpbWl0aXZlVmFsdWVQcm90b3R5cGUnCiBQQVNTIGpzV3Jh
cHBlckNsYXNzKHN0eWxlc2hlZXQuY3NzUnVsZXMuaXRlbSgwKS5zdHlsZS5nZXRQcm9wZXJ0eUNT
U1ZhbHVlKCdjb2xvcicpLmNvbnN0cnVjdG9yKSBpcyAnQ1NTUHJpbWl0aXZlVmFsdWVDb25zdHJ1
Y3RvcicKIFBBU1MganNXcmFwcGVyQ2xhc3Moc3R5bGVzaGVldC5jc3NSdWxlcy5pdGVtKDApLnN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJ2NvbG9yJykuZ2V0UkdCQ29sb3JWYWx1ZSgpKSBpcyAn
UkdCQ29sb3InCi1GQUlMIGpzV3JhcHBlckNsYXNzKHN0eWxlc2hlZXQuY3NzUnVsZXMuaXRlbSgw
KS5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdjb2xvcicpLmdldFJHQkNvbG9yVmFsdWUoKS5f
X3Byb3RvX18pIHNob3VsZCBiZSBSR0JDb2xvclByb3RvdHlwZS4gV2FzIE9iamVjdC4KLUZBSUwg
anNXcmFwcGVyQ2xhc3Moc3R5bGVzaGVldC5jc3NSdWxlcy5pdGVtKDApLnN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUoJ2NvbG9yJykuZ2V0UkdCQ29sb3JWYWx1ZSgpLmNvbnN0cnVjdG9yKSBzaG91
bGQgYmUgUkdCQ29sb3JDb25zdHJ1Y3Rvci4gV2FzIEZ1bmN0aW9uLgorUEFTUyBqc1dyYXBwZXJD
bGFzcyhzdHlsZXNoZWV0LmNzc1J1bGVzLml0ZW0oMCkuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1
ZSgnY29sb3InKS5nZXRSR0JDb2xvclZhbHVlKCkuX19wcm90b19fKSBpcyAnUkdCQ29sb3JQcm90
b3R5cGUnCitQQVNTIGpzV3JhcHBlckNsYXNzKHN0eWxlc2hlZXQuY3NzUnVsZXMuaXRlbSgwKS5z
dHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdjb2xvcicpLmdldFJHQkNvbG9yVmFsdWUoKS5jb25z
dHJ1Y3RvcikgaXMgJ1JHQkNvbG9yQ29uc3RydWN0b3InCiBQQVNTIGpzV3JhcHBlckNsYXNzKHN0
eWxlc2hlZXQuY3NzUnVsZXMuaXRlbSgwKS5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdjbGlw
JykuZ2V0UmVjdFZhbHVlKCkpIGlzICdSZWN0JwogUEFTUyBqc1dyYXBwZXJDbGFzcyhzdHlsZXNo
ZWV0LmNzc1J1bGVzLml0ZW0oMCkuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnY2xpcCcpLmdl
dFJlY3RWYWx1ZSgpLl9fcHJvdG9fXykgaXMgJ1JlY3RQcm90b3R5cGUnCiBQQVNTIGpzV3JhcHBl
ckNsYXNzKHN0eWxlc2hlZXQuY3NzUnVsZXMuaXRlbSgwKS5zdHlsZS5nZXRQcm9wZXJ0eUNTU1Zh
bHVlKCdjbGlwJykuZ2V0UmVjdFZhbHVlKCkuY29uc3RydWN0b3IpIGlzICdSZWN0Q29uc3RydWN0
b3InCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQ2MTI1KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMTE3NCw2ICsxMTc0LDggQEAgd2luZG93LlByb2Nlc3NpbmdJbnN0cnVj
dGlvbiBbb2JqZWN0IFBybwogd2luZG93LlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5wcm90b3R5cGUg
W3ByaW50ZWQgYWJvdmUgYXMgd2luZG93Lk5vZGUucHJvdG90eXBlXQogd2luZG93LlByb2dyZXNz
RXZlbnQgW29iamVjdCBQcm9ncmVzc0V2ZW50Q29uc3RydWN0b3JdCiB3aW5kb3cuUHJvZ3Jlc3NF
dmVudC5wcm90b3R5cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93LkV2ZW50LnByb3RvdHlwZV0K
K3dpbmRvdy5SR0JDb2xvciBbb2JqZWN0IFJHQkNvbG9yQ29uc3RydWN0b3JdCit3aW5kb3cuUkdC
Q29sb3IucHJvdG90eXBlIFtvYmplY3QgUkdCQ29sb3JQcm90b3R5cGVdCiB3aW5kb3cuUmFuZ2Ug
W29iamVjdCBSYW5nZUNvbnN0cnVjdG9yXQogd2luZG93LlJhbmdlLkVORF9UT19FTkQgW251bWJl
cl0KIHdpbmRvdy5SYW5nZS5FTkRfVE9fU1RBUlQgW251bWJlcl0KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gNDYxMjUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4LDcgQEAgUEFTUyBQbHVn
aW4udG9TdHJpbmcoKSBpcyAnW29iamVjdCBQbHVnaQogUEFTUyBQbHVnaW5BcnJheS50b1N0cmlu
ZygpIGlzICdbb2JqZWN0IFBsdWdpbkFycmF5Q29uc3RydWN0b3JdJwogUEFTUyBQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24udG9TdHJpbmcoKSBpcyAnW29iamVjdCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25D
b25zdHJ1Y3Rvcl0nCiBQQVNTIFByb2dyZXNzRXZlbnQudG9TdHJpbmcoKSBpcyAnW29iamVjdCBQ
cm9ncmVzc0V2ZW50Q29uc3RydWN0b3JdJworUEFTUyBSR0JDb2xvci50b1N0cmluZygpIGlzICdb
b2JqZWN0IFJHQkNvbG9yQ29uc3RydWN0b3JdJwogUEFTUyBSYW5nZS50b1N0cmluZygpIGlzICdb
b2JqZWN0IFJhbmdlQ29uc3RydWN0b3JdJwogUEFTUyBSYW5nZUV4Y2VwdGlvbi50b1N0cmluZygp
IGlzICdbb2JqZWN0IFJhbmdlRXhjZXB0aW9uQ29uc3RydWN0b3JdJwogUEFTUyBSZWN0LnRvU3Ry
aW5nKCkgaXMgJ1tvYmplY3QgUmVjdENvbnN0cnVjdG9yXScK
</data>
<flag name="review"
          id="17548"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>