<?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>140599</bug_id>
          
          <creation_ts>2015-01-18 15:53:53 -0800</creation_ts>
          <short_desc>Generate matchingShorthandsForLonghand() implementation from CSSPropertyNames.in</short_desc>
          <delta_ts>2016-04-29 09:20:35 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>140501</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1062229</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-18 15:53:53 -0800</bug_when>
    <thetext>We should generate matchingShorthandsForLonghand() implementation from CSSPropertyNames.in. We already have all the information we need in CSSPropertyNames.in to generate the big switch() in matchingShorthandsForLonghand().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062241</commentid>
    <comment_count>1</comment_count>
      <attachid>244870</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-18 18:27:04 -0800</bug_when>
    <thetext>Created attachment 244870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062242</commentid>
    <comment_count>2</comment_count>
      <attachid>244870</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-18 18:27:48 -0800</bug_when>
    <thetext>Comment on attachment 244870
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=244870&amp;action=review

&gt; Source/WebCore/css/makeprop.pl:991
&gt;  print SHORTHANDS_CPP &lt;&lt; &quot;EOF&quot;;

The generated code looks like:
http://pastebin.com/j6nJ5FWg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062243</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-18 18:28:28 -0800</bug_when>
    <thetext>Attachment 244870 did not pass style-queue:


ERROR: Source/WebCore/css/StylePropertyShorthand.h:91:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/css/StylePropertyShorthand.h:94:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/css/StylePropertyShorthand.h:97:  Missing space before {  [whitespace/braces] [5]
Total errors found: 3 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062254</commentid>
    <comment_count>4</comment_count>
      <attachid>244870</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-01-18 20:51:30 -0800</bug_when>
    <thetext>Comment on attachment 244870
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062265</commentid>
    <comment_count>5</comment_count>
      <attachid>244870</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-18 21:32:26 -0800</bug_when>
    <thetext>Comment on attachment 244870
Patch

Clearing flags on attachment: 244870

Committed r178638: &lt;http://trac.webkit.org/changeset/178638&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062266</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-18 21:32:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188637</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-29 09:20:35 -0700</bug_when>
    <thetext>*** Bug 126049 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244870</attachid>
            <date>2015-01-18 18:27:04 -0800</date>
            <delta_ts>2015-01-18 21:32:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140599-20150118182710.patch</filename>
            <type>text/plain</type>
            <size>16046</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI2MzJmMDM0MWRmMTk5
MWRhN2NjMzQxOTczNDNkZDdmNzU2YzJkNS4uYWVlZWE0OTk2MmU2NmUzMTUwMWQ2ZjY0OWU5NGI1
ZjRlMDY0OGVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE1LTAxLTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgR2VuZXJhdGUgbWF0Y2hpbmdT
aG9ydGhhbmRzRm9yTG9uZ2hhbmQoKSBpbXBsZW1lbnRhdGlvbiBmcm9tIENTU1Byb3BlcnR5TmFt
ZXMuaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
MDU5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdl
bmVyYXRlIG1hdGNoaW5nU2hvcnRoYW5kc0ZvckxvbmdoYW5kKCkgaW1wbGVtZW50YXRpb24gZnJv
bQorICAgICAgICBDU1NQcm9wZXJ0eU5hbWVzLmluLiBXZSBhbHJlYWR5IGhhdmUgYWxsIHRoZSBp
bmZvcm1hdGlvbiB3ZSBuZWVkIGluCisgICAgICAgIENTU1Byb3BlcnR5TmFtZXMuaW4gdG8gZ2Vu
ZXJhdGUgdGhlIGJpZyBzd2l0Y2goKSBpbgorICAgICAgICBtYXRjaGluZ1Nob3J0aGFuZHNGb3JM
b25naGFuZCgpLgorCisgICAgICAgIEEgZmV3IHNob3J0aGFuZHMgc3RpbGwgYXJlbid0IGdlbmVy
YXRlZC4gSSB3aWxsIGxvb2sgaW50byBnZXR0aW5nIHJpZAorICAgICAgICBvZiB0aGUgY3VzdG9t
IGNvZGUgaW4gYSBmb2xsb3ctdXAgcGF0Y2guCisKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0
eVNob3J0aGFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYWtlVmVjdG9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Om1hdGNoaW5nU2hvcnRoYW5kc0ZvckxvbmdoYW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5oOgorICAgICAgICAoV2Vi
Q29yZTo6bWF0Y2hpbmdDdXN0b21TaG9ydGhhbmRzRm9yTG9uZ2hhbmQpOgorICAgICAgICAqIGNz
cy9tYWtlcHJvcC5wbDoKKyAgICAgICAgKGNvbnN0cnVjdFNob3J0aGFuZHNWZWN0b3IpOgorCiAy
MDE1LTAxLTE3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1NWRyAtPiBPVEYgQ29udmVydGVyXSBDcmFzaGVzIHdoZW4gU1ZHIGZvbnQgaXMgaW52
YWxpZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTaG9ydGhh
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTaG9ydGhhbmQuY3BwCmlu
ZGV4IDY1MmU2OTdiMDU5MmNkNGEwZTA3NjgxZTI4ZjFhOWZkODE5MGQ0ZTUuLjI0N2NhYWRmZWY3
YTY0YjRiODM0MWVjZTEzNDE1ZDhmNGU4YjgyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVByb3BlcnR5U2hvcnRoYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5jcHAKQEAgLTExMiwyNDAgKzExMiw2IEBAIGJvb2wgaXNF
eHBhbmRlZFNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIGlkKQogICAgIHJldHVybiBzaG9ydGhhbmRG
b3JQcm9wZXJ0eShpZCkubGVuZ3RoKCk7CiB9CiAKLXN0YXRpYyBWZWN0b3I8U3R5bGVQcm9wZXJ0
eVNob3J0aGFuZD4gbWFrZVZlY3Rvcihjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBhKQot
ewotICAgIHJldHVybiBWZWN0b3I8U3R5bGVQcm9wZXJ0eVNob3J0aGFuZD4oMSwgYSk7Ci19Ci0K
LXN0YXRpYyBWZWN0b3I8U3R5bGVQcm9wZXJ0eVNob3J0aGFuZD4gbWFrZVZlY3Rvcihjb25zdCBT
dHlsZVByb3BlcnR5U2hvcnRoYW5kJiBhLCBjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBi
KQotewotICAgIFZlY3RvcjxTdHlsZVByb3BlcnR5U2hvcnRoYW5kPiB2ZWN0b3I7Ci0gICAgdmVj
dG9yLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMik7Ci0gICAgdmVjdG9yLnVuY2hlY2tlZEFwcGVu
ZChhKTsKLSAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5kKGIpOwotICAgIHJldHVybiB2ZWN0b3I7
Ci19Ci0KLXN0YXRpYyBWZWN0b3I8U3R5bGVQcm9wZXJ0eVNob3J0aGFuZD4gbWFrZVZlY3Rvcihj
b25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBhLCBjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRo
YW5kJiBiLCBjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBjKQotewotICAgIFZlY3RvcjxT
dHlsZVByb3BlcnR5U2hvcnRoYW5kPiB2ZWN0b3I7Ci0gICAgdmVjdG9yLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkoMyk7Ci0gICAgdmVjdG9yLnVuY2hlY2tlZEFwcGVuZChhKTsKLSAgICB2ZWN0b3Iu
dW5jaGVja2VkQXBwZW5kKGIpOwotICAgIHZlY3Rvci51bmNoZWNrZWRBcHBlbmQoYyk7Ci0gICAg
cmV0dXJuIHZlY3RvcjsKLX0KLQotLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGdl
bmVyYXRlZCBmcm9tIENTU1Byb3BlcnR5TmFtZXMuaW4uCi1WZWN0b3I8U3R5bGVQcm9wZXJ0eVNo
b3J0aGFuZD4gbWF0Y2hpbmdTaG9ydGhhbmRzRm9yTG9uZ2hhbmQoQ1NTUHJvcGVydHlJRCBwcm9w
ZXJ0eUlEKQotewotICAgIHN3aXRjaCAocHJvcGVydHlJRCkgewotICAgIGNhc2UgQ1NTUHJvcGVy
dHlBbmltYXRpb25OYW1lOgotICAgIGNhc2UgQ1NTUHJvcGVydHlBbmltYXRpb25EdXJhdGlvbjoK
LSAgICBjYXNlIENTU1Byb3BlcnR5QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246Ci0gICAgY2FzZSBD
U1NQcm9wZXJ0eUFuaW1hdGlvbkRlbGF5OgotICAgIGNhc2UgQ1NTUHJvcGVydHlBbmltYXRpb25J
dGVyYXRpb25Db3VudDoKLSAgICBjYXNlIENTU1Byb3BlcnR5QW5pbWF0aW9uRGlyZWN0aW9uOgot
ICAgIGNhc2UgQ1NTUHJvcGVydHlBbmltYXRpb25GaWxsTW9kZToKLSAgICAgICAgcmV0dXJuIG1h
a2VWZWN0b3IoYW5pbWF0aW9uU2hvcnRoYW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kSW1hZ2U6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRTaXplOgotICAgIGNh
c2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQXR0YWNobWVudDoKLSAgICBjYXNlIENTU1Byb3BlcnR5
QmFja2dyb3VuZE9yaWdpbjoKLSAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZENsaXA6Ci0g
ICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcjoKLSAgICAgICAgcmV0dXJuIG1ha2VW
ZWN0b3IoYmFja2dyb3VuZFNob3J0aGFuZCgpKTsKLSAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dy
b3VuZFBvc2l0aW9uWDoKLSAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWToK
LSAgICAgICAgcmV0dXJuIG1ha2VWZWN0b3IoYmFja2dyb3VuZFNob3J0aGFuZCgpLCBiYWNrZ3Jv
dW5kUG9zaXRpb25TaG9ydGhhbmQoKSk7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRS
ZXBlYXRYOgotICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUmVwZWF0WToKLSAgICAgICAg
cmV0dXJuIG1ha2VWZWN0b3IoYmFja2dyb3VuZFNob3J0aGFuZCgpLCBiYWNrZ3JvdW5kUmVwZWF0
U2hvcnRoYW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21XaWR0aDoKLSAg
ICAgICAgcmV0dXJuIG1ha2VWZWN0b3IoYm9yZGVyU2hvcnRoYW5kKCksIGJvcmRlckJvdHRvbVNo
b3J0aGFuZCgpLCBib3JkZXJXaWR0aFNob3J0aGFuZCgpKTsKLSAgICBjYXNlIENTU1Byb3BlcnR5
Qm9yZGVyVG9wQ29sb3I6Ci0gICAgICAgIHJldHVybiBtYWtlVmVjdG9yKGJvcmRlclNob3J0aGFu
ZCgpLCBib3JkZXJUb3BTaG9ydGhhbmQoKSwgYm9yZGVyQ29sb3JTaG9ydGhhbmQoKSk7Ci0gICAg
Y2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0Q29sb3I6Ci0gICAgICAgIHJldHVybiBtYWtlVmVj
dG9yKGJvcmRlclNob3J0aGFuZCgpLCBib3JkZXJSaWdodFNob3J0aGFuZCgpLCBib3JkZXJDb2xv
clNob3J0aGFuZCgpKTsKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yOgotICAg
ICAgICByZXR1cm4gbWFrZVZlY3Rvcihib3JkZXJTaG9ydGhhbmQoKSwgYm9yZGVyTGVmdFNob3J0
aGFuZCgpLCBib3JkZXJDb2xvclNob3J0aGFuZCgpKTsKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm9y
ZGVyQm90dG9tQ29sb3I6Ci0gICAgICAgIHJldHVybiBtYWtlVmVjdG9yKGJvcmRlclNob3J0aGFu
ZCgpLCBib3JkZXJCb3R0b21TaG9ydGhhbmQoKSwgYm9yZGVyQ29sb3JTaG9ydGhhbmQoKSk7Ci0g
ICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckltYWdlU291cmNlOgotICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJJbWFnZVNsaWNlOgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJJbWFnZVdpZHRo
OgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJJbWFnZU91dHNldDoKLSAgICBjYXNlIENTU1By
b3BlcnR5Qm9yZGVySW1hZ2VSZXBlYXQ6Ci0gICAgICAgIHJldHVybiBtYWtlVmVjdG9yKGJvcmRl
ckltYWdlU2hvcnRoYW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0V2lkdGg6
Ci0gICAgICAgIHJldHVybiBtYWtlVmVjdG9yKGJvcmRlclNob3J0aGFuZCgpLCBib3JkZXJMZWZ0
U2hvcnRoYW5kKCksIGJvcmRlcldpZHRoU2hvcnRoYW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJUb3BMZWZ0UmFkaXVzOgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJUb3BSaWdo
dFJhZGl1czoKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6Ci0g
ICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUxlZnRSYWRpdXM6Ci0gICAgICAgIHJldHVy
biBtYWtlVmVjdG9yKGJvcmRlclJhZGl1c1Nob3J0aGFuZCgpLCB3ZWJraXRCb3JkZXJSYWRpdXNT
aG9ydGhhbmQoKSk7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0V2lkdGg6Ci0gICAg
ICAgIHJldHVybiBtYWtlVmVjdG9yKGJvcmRlclNob3J0aGFuZCgpLCBib3JkZXJSaWdodFNob3J0
aGFuZCgpLCBib3JkZXJXaWR0aFNob3J0aGFuZCgpKTsKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0Qm9yZGVySG9yaXpvbnRhbFNwYWNpbmc6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJv
cmRlclZlcnRpY2FsU3BhY2luZzoKLSAgICAgICAgcmV0dXJuIG1ha2VWZWN0b3IoYm9yZGVyU3Bh
Y2luZ1Nob3J0aGFuZCgpKTsKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5bGU6Ci0g
ICAgICAgIHJldHVybiBtYWtlVmVjdG9yKGJvcmRlclNob3J0aGFuZCgpLCBib3JkZXJUb3BTaG9y
dGhhbmQoKSwgYm9yZGVyU3R5bGVTaG9ydGhhbmQoKSk7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJv
cmRlckJvdHRvbVN0eWxlOgotICAgICAgICByZXR1cm4gbWFrZVZlY3Rvcihib3JkZXJTaG9ydGhh
bmQoKSwgYm9yZGVyQm90dG9tU2hvcnRoYW5kKCksIGJvcmRlclN0eWxlU2hvcnRoYW5kKCkpOwot
ICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0U3R5bGU6Ci0gICAgICAgIHJldHVybiBtYWtl
VmVjdG9yKGJvcmRlclNob3J0aGFuZCgpLCBib3JkZXJMZWZ0U2hvcnRoYW5kKCksIGJvcmRlclN0
eWxlU2hvcnRoYW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodFN0eWxlOgot
ICAgICAgICByZXR1cm4gbWFrZVZlY3Rvcihib3JkZXJTaG9ydGhhbmQoKSwgYm9yZGVyUmlnaHRT
aG9ydGhhbmQoKSwgYm9yZGVyU3R5bGVTaG9ydGhhbmQoKSk7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0
eUJvcmRlclRvcFdpZHRoOgotICAgICAgICByZXR1cm4gbWFrZVZlY3Rvcihib3JkZXJTaG9ydGhh
bmQoKSwgYm9yZGVyVG9wU2hvcnRoYW5kKCksIGJvcmRlcldpZHRoU2hvcnRoYW5kKCkpOwotICAg
IGNhc2UgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlOgotICAgIGNhc2UgQ1NTUHJvcGVydHlMaXN0
U3R5bGVQb3NpdGlvbjoKLSAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0eWxlSW1hZ2U6Ci0gICAg
ICAgIHJldHVybiBtYWtlVmVjdG9yKGxpc3RTdHlsZVNob3J0aGFuZCgpKTsKLSAgICBjYXNlIENT
U1Byb3BlcnR5Rm9udEZhbWlseToKLSAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFNpemU6Ci0gICAg
Y2FzZSBDU1NQcm9wZXJ0eUZvbnRTdHlsZToKLSAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFZhcmlh
bnQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0
eUxpbmVIZWlnaHQ6Ci0gICAgICAgIHJldHVybiBtYWtlVmVjdG9yKGZvbnRTaG9ydGhhbmQoKSk7
Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblRvcDoKLSAgICBjYXNlIENTU1Byb3BlcnR5TWFy
Z2luUmlnaHQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpbkJvdHRvbToKLSAgICBjYXNlIENT
U1Byb3BlcnR5TWFyZ2luTGVmdDoKLSAgICAgICAgcmV0dXJuIG1ha2VWZWN0b3IobWFyZ2luU2hv
cnRoYW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3I6Ci0gICAgY2FzZSBD
U1NQcm9wZXJ0eU91dGxpbmVTdHlsZToKLSAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZVdpZHRo
OgotICAgICAgICByZXR1cm4gbWFrZVZlY3RvcihvdXRsaW5lU2hvcnRoYW5kKCkpOwotICAgIGNh
c2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgotICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmln
aHQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b206Ci0gICAgY2FzZSBDU1NQcm9w
ZXJ0eVBhZGRpbmdMZWZ0OgotICAgICAgICByZXR1cm4gbWFrZVZlY3RvcihwYWRkaW5nU2hvcnRo
YW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1g6Ci0gICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJmbG93WToKLSAgICAgICAgcmV0dXJuIG1ha2VWZWN0b3Iob3ZlcmZsb3dTaG9ydGhh
bmQoKSk7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25Qcm9wZXJ0eToKLSAgICBjYXNl
IENTU1Byb3BlcnR5VHJhbnNpdGlvbkR1cmF0aW9uOgotICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFu
c2l0aW9uVGltaW5nRnVuY3Rpb246Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25EZWxh
eToKLSAgICAgICAgcmV0dXJuIG1ha2VWZWN0b3IodHJhbnNpdGlvblNob3J0aGFuZCgpKTsKLSAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uTmFtZToKLSAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0QW5pbWF0aW9uRHVyYXRpb246Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFu
aW1hdGlvblRpbWluZ0Z1bmN0aW9uOgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRp
b25EZWxheToKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291
bnQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkRpcmVjdGlvbjoKLSAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRmlsbE1vZGU6Ci0gICAgICAgIHJldHVybiBt
YWtlVmVjdG9yKHdlYmtpdEFuaW1hdGlvblNob3J0aGFuZCgpKTsKLSAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0Qm9yZGVyQWZ0ZXJXaWR0aDoKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9y
ZGVyQWZ0ZXJTdHlsZToKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyQWZ0ZXJDb2xv
cjoKLSAgICAgICAgcmV0dXJuIG1ha2VWZWN0b3Iod2Via2l0Qm9yZGVyQWZ0ZXJTaG9ydGhhbmQo
KSk7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckJlZm9yZVdpZHRoOgotICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJCZWZvcmVTdHlsZToKLSAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0Qm9yZGVyQmVmb3JlQ29sb3I6Ci0gICAgICAgIHJldHVybiBtYWtlVmVjdG9yKHdl
YmtpdEJvcmRlckJlZm9yZVNob3J0aGFuZCgpKTsKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
Qm9yZGVyRW5kV2lkdGg6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckVuZFN0eWxl
OgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJFbmRDb2xvcjoKLSAgICAgICAgcmV0
dXJuIG1ha2VWZWN0b3Iod2Via2l0Qm9yZGVyRW5kU2hvcnRoYW5kKCkpOwotICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRCb3JkZXJTdGFydFdpZHRoOgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRCb3JkZXJTdGFydFN0eWxlOgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJTdGFy
dENvbG9yOgotICAgICAgICByZXR1cm4gbWFrZVZlY3Rvcih3ZWJraXRCb3JkZXJTdGFydFNob3J0
aGFuZCgpKTsKLSAgICBjYXNlIENTU1Byb3BlcnR5Q29sdW1uV2lkdGg6Ci0gICAgY2FzZSBDU1NQ
cm9wZXJ0eUNvbHVtbkNvdW50OgotICAgICAgICByZXR1cm4gbWFrZVZlY3Rvcihjb2x1bW5zU2hv
cnRoYW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5SdWxlV2lkdGg6Ci0gICAgY2Fz
ZSBDU1NQcm9wZXJ0eUNvbHVtblJ1bGVTdHlsZToKLSAgICBjYXNlIENTU1Byb3BlcnR5Q29sdW1u
UnVsZUNvbG9yOgotICAgICAgICByZXR1cm4gbWFrZVZlY3Rvcihjb2x1bW5SdWxlU2hvcnRoYW5k
KCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlGbGV4R3JvdzoKLSAgICBjYXNlIENTU1Byb3BlcnR5
RmxleFNocmluazoKLSAgICBjYXNlIENTU1Byb3BlcnR5RmxleEJhc2lzOgotICAgICAgICByZXR1
cm4gbWFrZVZlY3RvcihmbGV4U2hvcnRoYW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlGbGV4
RGlyZWN0aW9uOgotICAgIGNhc2UgQ1NTUHJvcGVydHlGbGV4V3JhcDoKLSAgICAgICAgcmV0dXJu
IG1ha2VWZWN0b3IoZmxleEZsb3dTaG9ydGhhbmQoKSk7Ci0jaWYgRU5BQkxFKENTU19HUklEX0xB
WU9VVCkKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVtblN0YXJ0OgotICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uRW5kOgotICAgICAgICByZXR1cm4gbWFrZVZl
Y3Rvcih3ZWJraXRHcmlkQ29sdW1uU2hvcnRoYW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRHcmlkUm93U3RhcnQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dFbmQ6
Ci0gICAgICAgIHJldHVybiBtYWtlVmVjdG9yKHdlYmtpdEdyaWRSb3dTaG9ydGhhbmQoKSk7Ci0g
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRUZW1wbGF0ZUNvbHVtbnM6Ci0gICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEdyaWRUZW1wbGF0ZVJvd3M6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEdyaWRUZW1wbGF0ZUFyZWFzOgotICAgICAgICByZXR1cm4gbWFrZVZlY3Rvcih3ZWJraXRH
cmlkVGVtcGxhdGVTaG9ydGhhbmQoKSwgd2Via2l0R3JpZFNob3J0aGFuZCgpKTsKLSAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0R3JpZEF1dG9GbG93OgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRHcmlkQXV0b0NvbHVtbnM6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvUm93
czoKLSAgICAgICAgcmV0dXJuIG1ha2VWZWN0b3Iod2Via2l0R3JpZFNob3J0aGFuZCgpKTsKLSNl
bmRpZgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5CZWZvcmVDb2xsYXBzZToKLSAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQWZ0ZXJDb2xsYXBzZToKLSAgICAgICAgcmV0
dXJuIG1ha2VWZWN0b3Iod2Via2l0TWFyZ2luQ29sbGFwc2VTaG9ydGhhbmQoKSk7Ci0gICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVEaXJlY3Rpb246Ci0gICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdE1hcnF1ZWVJbmNyZW1lbnQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1
ZWVSZXBldGl0aW9uOgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlU3R5bGU6Ci0g
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVTcGVlZDoKLSAgICAgICAgcmV0dXJuIG1h
a2VWZWN0b3Iod2Via2l0TWFycXVlZVNob3J0aGFuZCgpKTsKLSAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0TWFza0ltYWdlOgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrU291cmNlVHlw
ZToKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1NpemU6Ci0gICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdE1hc2tPcmlnaW46Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tDbGlw
OgotICAgICAgICByZXR1cm4gbWFrZVZlY3Rvcih3ZWJraXRNYXNrU2hvcnRoYW5kKCkpOwotICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb25YOgotICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRNYXNrUG9zaXRpb25ZOgotICAgICAgICByZXR1cm4gbWFrZVZlY3Rvcih3ZWJraXRN
YXNrUG9zaXRpb25TaG9ydGhhbmQoKSk7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tS
ZXBlYXRYOgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WToKLSAgICAgICAg
cmV0dXJuIG1ha2VWZWN0b3Iod2Via2l0TWFza1JlcGVhdFNob3J0aGFuZCgpKTsKLSAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0UGVyc3BlY3RpdmVPcmlnaW5YOgotICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRQZXJzcGVjdGl2ZU9yaWdpblk6Ci0gICAgICAgIHJldHVybiBtYWtlVmVjdG9yKHdl
YmtpdFBlcnNwZWN0aXZlT3JpZ2luU2hvcnRoYW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRUZXh0RW1waGFzaXNTdHlsZToKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVt
cGhhc2lzQ29sb3I6Ci0gICAgICAgIHJldHVybiBtYWtlVmVjdG9yKHdlYmtpdFRleHRFbXBoYXNp
c1Nob3J0aGFuZCgpKTsKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9rZVdpZHRo
OgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0U3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJl
dHVybiBtYWtlVmVjdG9yKHdlYmtpdFRleHRTdHJva2VTaG9ydGhhbmQoKSk7Ci0gICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eToKLSAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uOgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFu
c2l0aW9uVGltaW5nRnVuY3Rpb246Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRp
b25EZWxheToKLSAgICAgICAgcmV0dXJuIG1ha2VWZWN0b3Iod2Via2l0VHJhbnNpdGlvblNob3J0
aGFuZCgpKTsKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWDoKLSAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWToKLSAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWjoKLSAgICAgICAgcmV0dXJuIG1ha2VWZWN0b3Io
d2Via2l0VHJhbnNmb3JtT3JpZ2luU2hvcnRoYW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlN
aW5XaWR0aDoKLSAgICBjYXNlIENTU1Byb3BlcnR5TWF4V2lkdGg6Ci0gICAgICAgIHJldHVybiBt
YWtlVmVjdG9yKHdpZHRoU2hvcnRoYW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlNaW5IZWln
aHQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eU1heEhlaWdodDoKLSAgICAgICAgcmV0dXJuIG1ha2VW
ZWN0b3IoaGVpZ2h0U2hvcnRoYW5kKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0
RGVjb3JhdGlvbkxpbmU6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9u
U3R5bGU6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uQ29sb3I6Ci0g
ICAgICAgIHJldHVybiBtYWtlVmVjdG9yKHdlYmtpdFRleHREZWNvcmF0aW9uU2hvcnRoYW5kKCkp
OwotICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJrZXJTdGFydDoKLSAgICBjYXNlIENTU1Byb3BlcnR5
TWFya2VyTWlkOgotICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJrZXJFbmQ6Ci0gICAgICAgIHJldHVy
biBtYWtlVmVjdG9yKG1hcmtlclNob3J0aGFuZCgpKTsKLSAgICBkZWZhdWx0OgotICAgICAgICBi
cmVhazsKLSAgICB9Ci0KLSAgICByZXR1cm4gVmVjdG9yPFN0eWxlUHJvcGVydHlTaG9ydGhhbmQ+
KCk7Ci19Ci0KIHVuc2lnbmVkIGluZGV4T2ZTaG9ydGhhbmRGb3JMb25naGFuZChDU1NQcm9wZXJ0
eUlEIHNob3J0aGFuZElELCBjb25zdCBWZWN0b3I8U3R5bGVQcm9wZXJ0eVNob3J0aGFuZD4mIHNo
b3J0aGFuZHMpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgc2l6ZSA9IHNob3J0aGFuZHMu
c2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dHlTaG9ydGhhbmQuaAppbmRleCA5MjRlZjkyNzgyMzM3NmJlMjZkMzY1OWVlMTMzYzc0MmNjYTg5
OGRiLi45NTZmNTczNjEyNTI4YzViODhlZDQ5MTEzYzQ1NmRiOTFiZTczMDFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2hvcnRoYW5kLmgKQEAgLTcxLDExICs3MSwzNyBA
QCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kIHdpZHRoU2hvcnRoYW5kKCk7CiBTdHlsZVByb3BlcnR5
U2hvcnRoYW5kIHNob3J0aGFuZEZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwogCiAvLyBSZXR1
cm4gdGhlIGxpc3Qgb2Ygc2hvcnRoYW5kcyBmb3IgYSBnaXZlbiBsb25naGFuZC4KKy8vIFRoZSBp
bXBsZW1lbnRhdGlvbiBpcyBnZW5lcmF0ZWQgaW4gU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0
aW9ucy5jcHAuCiBWZWN0b3I8U3R5bGVQcm9wZXJ0eVNob3J0aGFuZD4gbWF0Y2hpbmdTaG9ydGhh
bmRzRm9yTG9uZ2hhbmQoQ1NTUHJvcGVydHlJRCk7CisKIHVuc2lnbmVkIGluZGV4T2ZTaG9ydGhh
bmRGb3JMb25naGFuZChDU1NQcm9wZXJ0eUlELCBjb25zdCBWZWN0b3I8U3R5bGVQcm9wZXJ0eVNo
b3J0aGFuZD4mKTsKIAogYm9vbCBpc0V4cGFuZGVkU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQpOwog
CisvLyBGSVhNRTogVGhpcyBzaG91bGQgdHJ5IHRvIGdldCByaWQgb2YgdGhpcyBmdW5jdGlvbiBh
bmQgZ2VuZXJhdGUgdGhlIHJlc3Qgb2YgdGhlc2Ugc2hvcnRoYW5kcy4KK2lubGluZSBWZWN0b3I8
U3R5bGVQcm9wZXJ0eVNob3J0aGFuZD4gbWF0Y2hpbmdDdXN0b21TaG9ydGhhbmRzRm9yTG9uZ2hh
bmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQoreworICAgIHN3aXRjaCAocHJvcGVydHlJRCkg
eworICAgIGNhc2UgQ1NTUHJvcGVydHlGb250RmFtaWx5OgorICAgIGNhc2UgQ1NTUHJvcGVydHlG
b250U2l6ZToKKyAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFN0eWxlOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlGb250VmFyaWFudDoKKyAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFdlaWdodDoKKyAgICBj
YXNlIENTU1Byb3BlcnR5TGluZUhlaWdodDoKKyAgICAgICAgcmV0dXJuIFZlY3RvcjxTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kPntmb250U2hvcnRoYW5kKCl9OworICAgIGNhc2UgQ1NTUHJvcGVydHlN
aW5XaWR0aDoKKyAgICBjYXNlIENTU1Byb3BlcnR5TWF4V2lkdGg6CisgICAgICAgIHJldHVybiBW
ZWN0b3I8U3R5bGVQcm9wZXJ0eVNob3J0aGFuZD57d2lkdGhTaG9ydGhhbmQoKX07CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eU1pbkhlaWdodDoKKyAgICBjYXNlIENTU1Byb3BlcnR5TWF4SGVpZ2h0Ogor
ICAgICAgICByZXR1cm4gVmVjdG9yPFN0eWxlUHJvcGVydHlTaG9ydGhhbmQ+e2hlaWdodFNob3J0
aGFuZCgpfTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1
cm4gVmVjdG9yPFN0eWxlUHJvcGVydHlTaG9ydGhhbmQ+KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsIGIvU291cmNlL1dlYkNvcmUvY3NzL21h
a2Vwcm9wLnBsCmluZGV4IDZjZWRhZDRmYjNkN2IwZWQ5ZGNmM2UxZmZhYWNhOTkxZjlmZGUxN2Eu
LjE4N2QxOWI5MzA0MzBhODFjNTAwYTNjMzkyNDA4NjNkODNjZjZhYTYgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFr
ZXByb3AucGwKQEAgLTkzOSw2ICs5MzksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEVPRgog
CitteSAlbG9uZ2hhbmRUb1Nob3J0aGFuZHMgPSAoKTsKKwogZm9yZWFjaCBteSAkbmFtZSAoQG5h
bWVzKSB7CiAgICMgU2tpcCBub24tU2hvcnRoYW5kIHByb3BlcnRpZXMuCiAgIG5leHQgaWYgKCFl
eGlzdHMgJHByb3BlcnRpZXNXaXRoU3R5bGVCdWlsZGVyT3B0aW9uc3skbmFtZX17IkxvbmdoYW5k
cyJ9KTsKQEAgLTk1MSw2ICs5NTMsNyBAQCBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKICAg
cHJpbnQgU0hPUlRIQU5EU19DUFAgIiAgICBzdGF0aWMgY29uc3QgQ1NTUHJvcGVydHlJRCAiIC4g
JGxvd2VyY2FzZUlkIC4gIlByb3BlcnRpZXNbXSA9IHtcbiI7CiAgIGZvcmVhY2ggKEBsb25naGFu
ZHMpIHsKICAgICBkaWUgIlVua25vd24gQ1NTIHByb3BlcnR5IHVzZWQgaW4gTG9uZ2hhbmRzOiAi
IC4gJG5hbWVUb0lkeyRffSBpZiAhZXhpc3RzKCRuYW1lVG9JZHskX30pOworICAgIHB1c2goQHsk
bG9uZ2hhbmRUb1Nob3J0aGFuZHN7JF99fSwgJG5hbWUpOwogICAgIHByaW50IFNIT1JUSEFORFNf
Q1BQICIgICAgICAgIENTU1Byb3BlcnR5IiAuICRuYW1lVG9JZHskX30gLiAiLFxuIjsKICAgfQog
ICBwcmludCBTSE9SVEhBTkRTX0NQUCAiICAgIH07XG4iOwpAQCAtOTg2LDYgKzk4OSw0NCBAQCBw
cmludCBTSE9SVEhBTkRTX0NQUCA8PCAiRU9GIjsKIEVPRgogCiBwcmludCBTSE9SVEhBTkRTX0NQ
UCA8PCAiRU9GIjsKK1ZlY3RvcjxTdHlsZVByb3BlcnR5U2hvcnRoYW5kPiBtYXRjaGluZ1Nob3J0
aGFuZHNGb3JMb25naGFuZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCit7CisgICAgc3dpdGNo
IChwcm9wZXJ0eUlEKSB7CitFT0YKKworc3ViIGNvbnN0cnVjdFNob3J0aGFuZHNWZWN0b3Igewor
ICBteSAkc2hvcnRoYW5kcyA9IHNoaWZ0OworCisgIG15ICR2ZWN0b3IgPSAiVmVjdG9yPFN0eWxl
UHJvcGVydHlTaG9ydGhhbmQ+eyI7CisgIGZvcmVhY2ggbXkgJGkgKDAgLi4gJCMkc2hvcnRoYW5k
cykgeworICAgICR2ZWN0b3IgLj0gIiwgIiB1bmxlc3MgJGkgPT0gMDsKKyAgICAkdmVjdG9yIC49
IGxjZmlyc3QoJG5hbWVUb0lkeyRzaG9ydGhhbmRzLT5bJGldfSkgLiAiU2hvcnRoYW5kKCkiOwor
ICB9CisgICR2ZWN0b3IgLj0gIn0iOworICByZXR1cm4gJHZlY3RvcjsKK30KKworbXkgJXZlY3Rv
clRvTG9uZ2hhbmRzID0gKCk7Citmb3IgbXkgJGxvbmdoYW5kIChzb3J0IGtleXMgJWxvbmdoYW5k
VG9TaG9ydGhhbmRzKSB7CisgIG15IEBzaG9ydGhhbmRzID0gc29ydChAeyRsb25naGFuZFRvU2hv
cnRoYW5kc3skbG9uZ2hhbmR9fSk7CisgIHB1c2goQHskdmVjdG9yVG9Mb25naGFuZHN7Y29uc3Ry
dWN0U2hvcnRoYW5kc1ZlY3RvcihcQHNob3J0aGFuZHMpfX0sICRsb25naGFuZCk7Cit9CisKK2Zv
ciBteSAkdmVjdG9yIChzb3J0IGtleXMgJXZlY3RvclRvTG9uZ2hhbmRzKSB7CisgIGZvcmVhY2gg
KEB7JHZlY3RvclRvTG9uZ2hhbmRzeyR2ZWN0b3J9fSkgeworICAgIHByaW50IFNIT1JUSEFORFNf
Q1BQICIgICAgY2FzZSBDU1NQcm9wZXJ0eSIgLiAkbmFtZVRvSWR7JF99IC4gIjpcbiI7CisgIH0K
KyAgcHJpbnQgU0hPUlRIQU5EU19DUFAgIiAgICAgICAgcmV0dXJuICIgLiAkdmVjdG9yIC4gIjtc
biI7Cit9CisKK3ByaW50IFNIT1JUSEFORFNfQ1BQIDw8ICJFT0YiOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiBtYXRjaGluZ0N1c3RvbVNob3J0aGFuZHNGb3JMb25naGFuZChwcm9wZXJ0
eUlEKTsKKyAgICB9Cit9CitFT0YKKworcHJpbnQgU0hPUlRIQU5EU19DUFAgPDwgIkVPRiI7CiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiBFT0YKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>