<?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>61186</bug_id>
          
          <creation_ts>2011-05-20 06:05:29 -0700</creation_ts>
          <short_desc>CSSMutableStyleDeclaration should use CSSParser&apos;s infrastructure for handling properties</short_desc>
          <delta_ts>2012-03-10 05:03:57 -0800</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>All</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>19417</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andras Becsi">abecsi</reporter>
          <assigned_to name="Andras Becsi">abecsi</assigned_to>
          <cc>loki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>407020</commentid>
    <comment_count>0</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2011-05-20 06:05:29 -0700</bug_when>
    <thetext>Instead of duplicating the essentially same logic across two classes CSSMutableStyleDeclaration can be simplified to use CSSParser&apos;s vector-like container for handling properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455558</commentid>
    <comment_count>1</comment_count>
      <attachid>104876</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2011-08-23 11:49:27 -0700</bug_when>
    <thetext>Created attachment 104876
patch based on the data structure of bug 19417

This won&apos;t build on the EWS&apos; since it needs the patch from bug 19417.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104876</attachid>
            <date>2011-08-23 11:49:27 -0700</date>
            <delta_ts>2011-08-23 11:49:27 -0700</delta_ts>
            <desc>patch based on the data structure of bug 19417</desc>
            <filename>0001-Bug-61186-CSSMutableStyleDeclaration-should-use-CSSP.patch</filename>
            <type>text/plain</type>
            <size>23152</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">RnJvbSAzNTYyZDg4NDYzMGUyODYyMjAyN2ZjZTZjMmUwNTk5NzRlNmU3NTQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyYXMgQmVjc2kgPGFiZWNzaUB3ZWJraXQub3JnPgpEYXRl
OiBUdWUsIDIzIEF1ZyAyMDExIDIwOjQzOjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gQnVnIDYx
MTg2IC0gQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24gc2hvdWxkIHVzZQogQ1NTUGFyc2VyJ3Mg
aW5mcmFzdHJ1Y3R1cmUgZm9yIGhhbmRsaW5nIHByb3BlcnRpZXMKCi0tLQogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDMgKysrKysrCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwIHwgIDE0OSArKysr
KysrKy0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbi5oICAgfCAgIDIzICstLS0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eUNv
bnRhaW5lci5jcHAgICAgICAgfCAgIDIzICsrKwogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5Q29udGFpbmVyLmggICAgICAgICB8ICAgMTEgKysKIDUgZmlsZXMgY2hhbmdlZCwgMTQwIGlu
c2VydGlvbnMoKyksIDEwOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmZkMzgyNy4uM2Qz
ZWUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDExLTA4LTIzICBBbmRyYXMgQmVj
c2kgIDxhYmVjc2lAd2Via2l0Lm9yZz4KKworICAgICAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbiBzaG91bGQgdXNlIENTU1BhcnNlcidzIGluZnJhc3RydWN0dXJlIGZvciBoYW5kbGluZyBw
cm9wZXJ0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MTE4NgorCisgICAgICAgIFRoaXMgZGVwZW5kcyBvbiBCdWcgMTk0MTcuIFVzZSBDU1NQcm9w
ZXJ0eUNvbnRhaW5lciBpbnN0ZWFkIG9mIHVzaW5nIGEgVmVjdG9yIGZvciBtYW5hZ2luZworICAg
ICAgICBwcm9wZXJ0aWVzIHRvIHNwZWVkIHVwIHRoZSBsb29rLXVwIGJ5IElELgorICAgICAgICBD
cmVhdGUgYSBWZWN0b3IgY2FjaGUgb24gdGhlIGZpcnN0IGNhbGwgb2YgaXRlbSh1bnNpZ25lZCkg
dG8gYmUgYWJsZSB0byBhY2Nlc3MgdGhlIHByb3BlcnRpZXMKKyAgICAgICAgYnkgaW5kZXggdGhy
b3VnaCB0aGUgQ1NTT00gaW50ZXJmYWNlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBjc3Mv
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjp+Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb246OnJlbW92ZVNob3J0aGFuZFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpyZW1vdmVQcm9wZXJ0eSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0TmVlZHNTdHlsZVJlY2Fs
Yyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJv
cGVydHlQcmlvcml0eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbjo6Z2V0UHJvcGVydHlTaG9ydGhhbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb246OmlzUHJvcGVydHlJbXBsaWNpdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHlJbnRlcm5hbCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6cGFyc2VEZWNsYXJhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6YWRkUGFy
c2VkUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbjo6YWRkUGFyc2VkUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb246Oml0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb246OmNzc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb246Om1lcmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uOjphZGRTdWJyZXNvdXJjZVN0eWxlVVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6cmVtb3ZlUHJvcGVydGllc0luU2V0KToKKyAgICAg
ICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJdGVyYXRvcjo6b3BlcmF0b3ItPik6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkNvbnN0SXRlcmF0b3I6
OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJdGVyYXRvcik6CisgICAgICAgICogY3Nz
L0NTU1Byb3BlcnR5Q29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
Q29udGFpbmVyOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlDb250
YWluZXI6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlDb250YWlu
ZXI6OmFkZFByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlDb250YWluZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5Q29udGFpbmVyOjpDU1NQcm9wZXJ0eUNvbnRh
aW5lcik6CisKIDIwMTEtMDgtMTkgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlZmFjdG9yIHRoZSBDU1NQcm9wZXJ0eSBoYW5kbGluZyBpbmZyYXN0cnVjdHVy
ZSBvZiBDU1NQYXJzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24uY3BwCmluZGV4IDllMjM2ZWQuLjc0OWJjODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtNDMsNiArNDMs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpCiAgICAgOiBtX25vZGUoMCkKKyAgICAsIG1fY2Fj
aGVOZWVkc1VwZGF0ZSh0cnVlKQogICAgICwgbV9zdHJpY3RQYXJzaW5nKGZhbHNlKQogI2lmbmRl
ZiBOREVCVUcKICAgICAsIG1faXRlcmF0b3JDb3VudCgwKQpAQCAtNTMsNiArNTQsNyBAQCBDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oKQogQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKENTU1J1
bGUqIHBhcmVudCkKICAgICA6IENTU1N0eWxlRGVjbGFyYXRpb24ocGFyZW50KQogICAgICwgbV9u
b2RlKDApCisgICAgLCBtX2NhY2hlTmVlZHNVcGRhdGUodHJ1ZSkKICAgICAsIG1fc3RyaWN0UGFy
c2luZyghcGFyZW50IHx8IHBhcmVudC0+dXNlU3RyaWN0UGFyc2luZygpKQogI2lmbmRlZiBOREVC
VUcKICAgICAsIG1faXRlcmF0b3JDb3VudCgwKQpAQCAtNjIsNDkgKzY0LDM0IEBAIENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbihDU1NSdWxlKiBw
YXJlbnQpCiAKIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbihDU1NSdWxlKiBwYXJlbnQsIGNvbnN0IFZlY3RvcjxDU1NQcm9wZXJ0eT4mIHByb3Bl
cnRpZXMpCiAgICAgOiBDU1NTdHlsZURlY2xhcmF0aW9uKHBhcmVudCkKLSAgICAsIG1fcHJvcGVy
dGllcyhwcm9wZXJ0aWVzKQogICAgICwgbV9ub2RlKDApCisgICAgLCBtX2NhY2hlTmVlZHNVcGRh
dGUodHJ1ZSkKICAgICAsIG1fc3RyaWN0UGFyc2luZyghcGFyZW50IHx8IHBhcmVudC0+dXNlU3Ry
aWN0UGFyc2luZygpKQogI2lmbmRlZiBOREVCVUcKICAgICAsIG1faXRlcmF0b3JDb3VudCgwKQog
I2VuZGlmCiB7Ci0gICAgbV9wcm9wZXJ0aWVzLnNocmlua1RvRml0KCk7Ci0gICAgLy8gRklYTUU6
IFRoaXMgYWxsb3dzIGR1cGxpY2F0ZSBwcm9wZXJ0aWVzLgorICAgIGZvciAoVmVjdG9yPENTU1By
b3BlcnR5Pjo6Y29uc3RfaXRlcmF0b3IgcCA9IHByb3BlcnRpZXMuYmVnaW4oKTsgcCAhPSBwcm9w
ZXJ0aWVzLmVuZCgpOyArK3ApCisgICAgICAgIG1fcHJvcGVydGllcy5hZGRQcm9wZXJ0eSgqcCk7
CiB9CiAKLUNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbihDU1NSdWxlKiBwYXJlbnQsIENTU1Byb3BlcnR5Q29udGFpbmVyJiBwcm9wZXJ0aWVzKQor
CitDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24o
Q1NTUnVsZSogcGFyZW50LCBjb25zdCBDU1NQcm9wZXJ0eUNvbnRhaW5lciYgcHJvcGVydGllcykK
ICAgICA6IENTU1N0eWxlRGVjbGFyYXRpb24ocGFyZW50KQorICAgICwgbV9wcm9wZXJ0aWVzKHBy
b3BlcnRpZXMpCiAgICAgLCBtX25vZGUoMCkKKyAgICAsIG1fY2FjaGVOZWVkc1VwZGF0ZSh0cnVl
KQogICAgICwgbV9zdHJpY3RQYXJzaW5nKCFwYXJlbnQgfHwgcGFyZW50LT51c2VTdHJpY3RQYXJz
aW5nKCkpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pdGVyYXRvckNvdW50KDApCiAjZW5kaWYK
IHsKLSAgICB1bnNpZ25lZCBudW1Qcm9wZXJ0aWVzID0gcHJvcGVydGllcy5zaXplKCk7Ci0KLSAg
ICBpZiAoIW51bVByb3BlcnRpZXMpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcHJvcGVydGll
cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG51bVByb3BlcnRpZXMpOwotICAgIEhhc2hNYXA8aW50
LCBib29sPiBjYW5kaWRhdGVzOwotCi0gICAgZm9yIChDU1NQcm9wZXJ0eUNvbnRhaW5lcjo6Y29u
c3RfaXRlcmF0b3IgcHJvcGVydHkgPSBwcm9wZXJ0aWVzLmJlZ2luKCk7IHByb3BlcnR5ICE9IHBy
b3BlcnRpZXMuZW5kKCk7ICsrcHJvcGVydHkpIHsKLSAgICAgICAgYm9vbCBpbXBvcnRhbnQgPSBw
cm9wZXJ0eS0+aXNJbXBvcnRhbnQoKTsKLSAgICAgICAgaWYgKGNhbmRpZGF0ZXMuY29udGFpbnMo
cHJvcGVydHktPmlkKCkpKSB7Ci0gICAgICAgICAgICBpZiAoIWltcG9ydGFudCAmJiBjYW5kaWRh
dGVzLmdldChwcm9wZXJ0eS0+aWQoKSkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICByZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eS0+aWQoKSwgZmFsc2UpOwotICAgICAgICB9
Ci0gICAgICAgIG1fcHJvcGVydGllcy5hcHBlbmQoKnByb3BlcnR5KTsKLSAgICAgICAgY2FuZGlk
YXRlcy5zZXQocHJvcGVydHktPmlkKCksIGltcG9ydGFudCk7Ci0gICAgfQogfQogCiBDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbjo6fkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKCkKIHsKLSAg
ICBjb25zdCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkNvbnN0SXRlcmF0b3IgZW5kID0gdGhp
cy0+ZW5kKCk7Ci0gICAgZm9yIChDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkNvbnN0SXRlcmF0
b3IgaXQgPSBiZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICBjb25zdCBDU1NQcm9wZXJ0
eUNvbnRhaW5lcjo6aXRlcmF0b3IgZW5kID0gbV9wcm9wZXJ0aWVzLmVuZCgpOworICAgIGZvciAo
Q1NTUHJvcGVydHlDb250YWluZXI6Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLmJlZ2luKCk7
IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBDU1NWYWx1ZSogdmFsdWUgPSBpdC0+dmFsdWUo
KTsKICAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdmFsdWUtPmlzTXV0YWJsZVZhbHVlKCkpCiAgICAg
ICAgICAgICBjb250aW51ZTsKQEAgLTQ2MywxMyArNDUwLDE0IEBAIFN0cmluZyBDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbjo6Z2V0Q29tbW9uVmFsdWUoY29uc3QgaW50KiBwcm9wZXJ0aWVzLCBz
aXplX3QKIAogUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246
OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50IHByb3BlcnR5SUQpIGNvbnN0CiB7Ci0gICAgY29uc3Qg
Q1NTUHJvcGVydHkqIHByb3BlcnR5ID0gZmluZFByb3BlcnR5V2l0aElkKHByb3BlcnR5SUQpOwor
ICAgIGNvbnN0IENTU1Byb3BlcnR5KiBwcm9wZXJ0eSA9IG1fcHJvcGVydGllcy5nZXRQcm9wZXJ0
eUJ5SWQocHJvcGVydHlJRCkuZ2V0KCk7CiAgICAgcmV0dXJuIHByb3BlcnR5ID8gcHJvcGVydHkt
PnZhbHVlKCkgOiAwOwogfQogCiBib29sIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpyZW1v
dmVTaG9ydGhhbmRQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgYm9vbCBub3RpZnlDaGFuZ2VkKSAK
IHsKICAgICBDU1NQcm9wZXJ0eUxvbmdoYW5kIGxvbmdoYW5kID0gbG9uZ2hhbmRGb3JQcm9wZXJ0
eShwcm9wZXJ0eUlEKTsKKyAgICBtX2NhY2hlTmVlZHNVcGRhdGU9IHRydWU7CiAgICAgaWYgKGxv
bmdoYW5kLmxlbmd0aCgpKSB7CiAgICAgICAgIHJlbW92ZVByb3BlcnRpZXNJblNldChsb25naGFu
ZC5wcm9wZXJ0aWVzKCksIGxvbmdoYW5kLmxlbmd0aCgpLCBub3RpZnlDaGFuZ2VkKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CkBAIC00ODUsMTYgKzQ3MywxNSBAQCBTdHJpbmcgQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb246OnJlbW92ZVByb3BlcnR5KGludCBwcm9wZXJ0eUlELCBib29sIG5vdGlm
eUNoYQogICAgICAgICAvLyBGSVhNRTogUmV0dXJuIGFuIGVxdWl2YWxlbnQgc2hvcnRoYW5kIHdo
ZW4gcG9zc2libGUuCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9Ci0gICAKLSAgICBD
U1NQcm9wZXJ0eSogZm91bmRQcm9wZXJ0eSA9IGZpbmRQcm9wZXJ0eVdpdGhJZChwcm9wZXJ0eUlE
KTsKKworICAgIGNvbnN0IENTU1Byb3BlcnR5KiBmb3VuZFByb3BlcnR5ID0gbV9wcm9wZXJ0aWVz
LmdldFByb3BlcnR5QnlJZChwcm9wZXJ0eUlEKS5nZXQoKTsKKwogICAgIGlmICghZm91bmRQcm9w
ZXJ0eSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIAorCiAgICAgU3RyaW5nIHZhbHVl
ID0gcmV0dXJuVGV4dCA/IGZvdW5kUHJvcGVydHktPnZhbHVlKCktPmNzc1RleHQoKSA6IFN0cmlu
ZygpOwogCi0gICAgLy8gQSBtb3JlIGVmZmljaWVudCByZW1vdmFsIHN0cmF0ZWd5IHdvdWxkIGlu
dm9sdmUgbWFya2luZyBlbnRyaWVzIGFzIGVtcHR5Ci0gICAgLy8gYW5kIHN3ZWVwaW5nIHRoZW0g
d2hlbiB0aGUgdmVjdG9yIGdyb3dzIHRvbyBiaWcuCi0gICAgbV9wcm9wZXJ0aWVzLnJlbW92ZShm
b3VuZFByb3BlcnR5IC0gbV9wcm9wZXJ0aWVzLmRhdGEoKSk7CisgICAgbV9wcm9wZXJ0aWVzLnJl
bW92ZVByb3BlcnR5KGZvdW5kUHJvcGVydHktPmlkKCkpOwogCiAgICAgaWYgKG5vdGlmeUNoYW5n
ZWQpCiAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKQEAgLTUxMiw2ICs0OTksNyBAQCBi
b29sIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjppc0lubGluZVN0eWxlRGVjbGFyYXRpb24o
KQogCiB2b2lkIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpzZXROZWVkc1N0eWxlUmVjYWxj
KCkKIHsKKyAgICBtX2NhY2hlTmVlZHNVcGRhdGU9IHRydWU7CiAgICAgaWYgKG1fbm9kZSkgewog
ICAgICAgICBpZiAoaXNJbmxpbmVTdHlsZURlY2xhcmF0aW9uKCkpIHsKICAgICAgICAgICAgIG1f
bm9kZS0+c2V0TmVlZHNTdHlsZVJlY2FsYyhJbmxpbmVTdHlsZUNoYW5nZSk7CkBAIC01MzQsMTkg
KzUyMiwxOSBAQCB2b2lkIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpzZXROZWVkc1N0eWxl
UmVjYWxjKCkKIAogYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlQ
cmlvcml0eShpbnQgcHJvcGVydHlJRCkgY29uc3QKIHsKLSAgICBjb25zdCBDU1NQcm9wZXJ0eSog
cHJvcGVydHkgPSBmaW5kUHJvcGVydHlXaXRoSWQocHJvcGVydHlJRCk7CisgICAgY29uc3QgQ1NT
UHJvcGVydHkqIHByb3BlcnR5ID0gbV9wcm9wZXJ0aWVzLmdldFByb3BlcnR5QnlJZChwcm9wZXJ0
eUlEKS5nZXQoKTsKICAgICByZXR1cm4gcHJvcGVydHkgPyBwcm9wZXJ0eS0+aXNJbXBvcnRhbnQo
KSA6IGZhbHNlOwogfQogCiBpbnQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmdldFByb3Bl
cnR5U2hvcnRoYW5kKGludCBwcm9wZXJ0eUlEKSBjb25zdAogewotICAgIGNvbnN0IENTU1Byb3Bl
cnR5KiBwcm9wZXJ0eSA9IGZpbmRQcm9wZXJ0eVdpdGhJZChwcm9wZXJ0eUlEKTsKKyAgICBjb25z
dCBDU1NQcm9wZXJ0eSogcHJvcGVydHkgPSBtX3Byb3BlcnRpZXMuZ2V0UHJvcGVydHlCeUlkKHBy
b3BlcnR5SUQpLmdldCgpOwogICAgIHJldHVybiBwcm9wZXJ0eSA/IHByb3BlcnR5LT5zaG9ydGhh
bmRJRCgpIDogMDsKIH0KIAogYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6aXNQcm9w
ZXJ0eUltcGxpY2l0KGludCBwcm9wZXJ0eUlEKSBjb25zdAogewotICAgIGNvbnN0IENTU1Byb3Bl
cnR5KiBwcm9wZXJ0eSA9IGZpbmRQcm9wZXJ0eVdpdGhJZChwcm9wZXJ0eUlEKTsKKyAgICBjb25z
dCBDU1NQcm9wZXJ0eSogcHJvcGVydHkgPSBtX3Byb3BlcnRpZXMuZ2V0UHJvcGVydHlCeUlkKHBy
b3BlcnR5SUQpLmdldCgpOwogICAgIHJldHVybiBwcm9wZXJ0eSA/IHByb3BlcnR5LT5pc0ltcGxp
Y2l0KCkgOiBmYWxzZTsKIH0KIApAQCAtNTg0LDE5ICs1NzIsMjAgQEAgYm9vbCBDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHkoaW50IHByb3BlcnR5SUQsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUKIAogICAgIHJldHVybiBzdWNjZXNzOwogfQotICAgIAorCiB2b2lkIENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uOjpzZXRQcm9wZXJ0eUludGVybmFsKGNvbnN0IENTU1Byb3BlcnR5
JiBwcm9wZXJ0eSwgQ1NTUHJvcGVydHkqIHNsb3QpCiB7CiAgICAgQVNTRVJUKCFtX2l0ZXJhdG9y
Q291bnQpOwogCisgICAgbV9jYWNoZU5lZWRzVXBkYXRlID0gdHJ1ZTsKICAgICBpZiAoIXJlbW92
ZVNob3J0aGFuZFByb3BlcnR5KHByb3BlcnR5LmlkKCksIGZhbHNlKSkgewotICAgICAgICBDU1NQ
cm9wZXJ0eSogdG9SZXBsYWNlID0gc2xvdCA/IHNsb3QgOiBmaW5kUHJvcGVydHlXaXRoSWQocHJv
cGVydHkuaWQoKSk7CisgICAgICAgIENTU1Byb3BlcnR5KiB0b1JlcGxhY2UgPSBzbG90ID8gc2xv
dCA6IG1fcHJvcGVydGllcy5nZXRQcm9wZXJ0eUJ5SWQocHJvcGVydHkuaWQoKSkuZ2V0KCk7CiAg
ICAgICAgIGlmICh0b1JlcGxhY2UpIHsKICAgICAgICAgICAgICp0b1JlcGxhY2UgPSBwcm9wZXJ0
eTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KLSAgICBtX3Byb3BlcnRp
ZXMuYXBwZW5kKHByb3BlcnR5KTsKKyAgICBtX3Byb3BlcnRpZXMuYWRkUHJvcGVydHkocHJvcGVy
dHkpOwogfQogCiBib29sIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpzZXRQcm9wZXJ0eShp
bnQgcHJvcGVydHlJRCwgaW50IHZhbHVlLCBib29sIGltcG9ydGFudCwgYm9vbCBub3RpZnlDaGFu
Z2VkKQpAQCAtNjM3LDYgKzYyNiw3IEBAIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246
OnBhcnNlRGVjbGFyYXRpb24oY29uc3QgU3RyaW5nJiBzdHlsZURlY2xhcmF0aW9uCiB7CiAgICAg
QVNTRVJUKCFtX2l0ZXJhdG9yQ291bnQpOwogCisgICAgbV9jYWNoZU5lZWRzVXBkYXRlID0gdHJ1
ZTsKICAgICBtX3Byb3BlcnRpZXMuY2xlYXIoKTsKICAgICBDU1NQYXJzZXIgcGFyc2VyKHVzZVN0
cmljdFBhcnNpbmcoKSk7CiAgICAgcGFyc2VyLnBhcnNlRGVjbGFyYXRpb24odGhpcywgc3R5bGVE
ZWNsYXJhdGlvbik7CkBAIC02NTIsNyArNjQyLDYgQEAgdm9pZCBDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbjo6YWRkUGFyc2VkUHJvcGVydGllcyhDU1NQcm9wZXJ0eUNvbnRhaW5lciYgcHJvcGUK
ICAgICBpZiAoIW51bVByb3BlcnRpZXMpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcHJvcGVy
dGllcy5yZXNlcnZlQ2FwYWNpdHkobnVtUHJvcGVydGllcyk7CiAgICAgZm9yIChDU1NQcm9wZXJ0
eUNvbnRhaW5lcjo6Y29uc3RfaXRlcmF0b3IgcCA9IHByb3BlcnRpZXMuYmVnaW4oKTsgcCAhPSBw
cm9wZXJ0aWVzLmVuZCgpOyArK3ApCiAgICAgICAgIGFkZFBhcnNlZFByb3BlcnR5KCpwKTsKIApA
QCAtNjYzLDEyICs2NTIsOCBAQCB2b2lkIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjphZGRQ
YXJzZWRQcm9wZXJ0aWVzKENTU1Byb3BlcnR5Q29udGFpbmVyJiBwcm9wZQogdm9pZCBDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbjo6YWRkUGFyc2VkUHJvcGVydHkoY29uc3QgQ1NTUHJvcGVydHkm
IHByb3BlcnR5KQogewogICAgIEFTU0VSVCghbV9pdGVyYXRvckNvdW50KTsKLQotICAgIC8vIE9u
bHkgYWRkIHByb3BlcnRpZXMgdGhhdCBoYXZlIG5vICFpbXBvcnRhbnQgY291bnRlcnBhcnQgcHJl
c2VudAotICAgIGlmICghZ2V0UHJvcGVydHlQcmlvcml0eShwcm9wZXJ0eS5pZCgpKSB8fCBwcm9w
ZXJ0eS5pc0ltcG9ydGFudCgpKSB7Ci0gICAgICAgIHJlbW92ZVByb3BlcnR5KHByb3BlcnR5Lmlk
KCksIGZhbHNlKTsKLSAgICAgICAgbV9wcm9wZXJ0aWVzLmFwcGVuZChwcm9wZXJ0eSk7Ci0gICAg
fQorICAgIG1fY2FjaGVOZWVkc1VwZGF0ZSA9IHRydWU7CisgICAgbV9wcm9wZXJ0aWVzLmFkZFBy
b3BlcnR5KHByb3BlcnR5KTsKIH0KIAogdm9pZCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6
c2V0TGVuZ3RoUHJvcGVydHkoaW50IHByb3BlcnR5SWQsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJv
b2wgaW1wb3J0YW50LCBib29sIC8qbXVsdGlMZW5ndGgqLykKQEAgLTY5MCw3ICs2NzUsMTYgQEAg
U3RyaW5nIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjppdGVtKHVuc2lnbmVkIGkpIGNvbnN0
CiB7CiAgICAgaWYgKGkgPj0gbV9wcm9wZXJ0aWVzLnNpemUoKSkKICAgICAgICByZXR1cm4gIiI7
Ci0gICAgcmV0dXJuIGdldFByb3BlcnR5TmFtZShzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPiht
X3Byb3BlcnRpZXNbaV0uaWQoKSkpOworCisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8
Q1NTUHJvcGVydHkqPiwgcHJvcGVydHlDYWNoZSwgKCkpOworICAgIGlmIChtX2NhY2hlTmVlZHNV
cGRhdGUpIHsKKyAgICAgICAgbV9jYWNoZU5lZWRzVXBkYXRlID0gZmFsc2U7CisgICAgICAgIHBy
b3BlcnR5Q2FjaGUuY2xlYXIoKTsKKyAgICAgICAgcHJvcGVydHlDYWNoZS5yZXNlcnZlQ2FwYWNp
dHkobV9wcm9wZXJ0aWVzLnNpemUoKSk7CisgICAgICAgIGZvciAoQ1NTUHJvcGVydHlDb250YWlu
ZXI6OmNvbnN0X2l0ZXJhdG9yIHAgPSBtX3Byb3BlcnRpZXMuYmVnaW4oKTsgcCAhPSBtX3Byb3Bl
cnRpZXMuZW5kKCk7ICsrcCkKKyAgICAgICAgICAgIHByb3BlcnR5Q2FjaGUuYXBwZW5kKGNvbnN0
X2Nhc3Q8Q1NTUHJvcGVydHkqPihwLmdldCgpKSk7CisgICAgfQorICAgIHJldHVybiBnZXRQcm9w
ZXJ0eU5hbWUoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4ocHJvcGVydHlDYWNoZVtpXS0+aWQo
KSkpOwogfQogCiBTdHJpbmcgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNzc1RleHQoKSBj
b25zdApAQCAtNzAyLDkgKzY5Niw4IEBAIFN0cmluZyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bjo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgY29uc3QgQ1NTUHJvcGVydHkqIHJlcGVhdFhQcm9wID0g
MDsKICAgICBjb25zdCBDU1NQcm9wZXJ0eSogcmVwZWF0WVByb3AgPSAwOwogICAgIAotICAgIHVu
c2lnbmVkIHNpemUgPSBtX3Byb3BlcnRpZXMuc2l6ZSgpOwotICAgIGZvciAodW5zaWduZWQgbiA9
IDA7IG4gPCBzaXplOyArK24pIHsKLSAgICAgICAgY29uc3QgQ1NTUHJvcGVydHkmIHByb3AgPSBt
X3Byb3BlcnRpZXNbbl07CisgICAgZm9yIChDU1NQcm9wZXJ0eUNvbnRhaW5lcjo6Y29uc3RfaXRl
cmF0b3IgcHJvcGVydHkgPSBtX3Byb3BlcnRpZXMuYmVnaW4oKTsgcHJvcGVydHkgIT0gbV9wcm9w
ZXJ0aWVzLmVuZCgpOyArK3Byb3BlcnR5KSB7CisgICAgICAgIGNvbnN0IENTU1Byb3BlcnR5JiBw
cm9wID0gKnByb3BlcnR5OwogICAgICAgICBpZiAocHJvcC5pZCgpID09IENTU1Byb3BlcnR5QmFj
a2dyb3VuZFBvc2l0aW9uWCkKICAgICAgICAgICAgIHBvc2l0aW9uWFByb3AgPSAmcHJvcDsKICAg
ICAgICAgZWxzZSBpZiAocHJvcC5pZCgpID09IENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9u
WSkKQEAgLTc3MSwxNiArNzY0LDE1IEBAIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246
Om1lcmdlKGNvbnN0IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBvdGhlciwKIHsKICAgICBB
U1NFUlQoIW1faXRlcmF0b3JDb3VudCk7CiAKLSAgICB1bnNpZ25lZCBzaXplID0gb3RoZXItPm1f
cHJvcGVydGllcy5zaXplKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IHNpemU7ICsr
bikgewotICAgICAgICBjb25zdCBDU1NQcm9wZXJ0eSYgdG9NZXJnZSA9IG90aGVyLT5tX3Byb3Bl
cnRpZXNbbl07Ci0gICAgICAgIENTU1Byb3BlcnR5KiBvbGQgPSBmaW5kUHJvcGVydHlXaXRoSWQo
dG9NZXJnZS5pZCgpKTsKKyAgICBmb3IgKENTU1Byb3BlcnR5Q29udGFpbmVyOjpjb25zdF9pdGVy
YXRvciBwcm9wZXJ0eSA9IG90aGVyLT5tX3Byb3BlcnRpZXMuYmVnaW4oKTsgcHJvcGVydHkgIT0g
b3RoZXItPm1fcHJvcGVydGllcy5lbmQoKTsgKytwcm9wZXJ0eSkgeworICAgICAgICBjb25zdCBD
U1NQcm9wZXJ0eSYgdG9NZXJnZSA9ICpwcm9wZXJ0eTsKKyAgICAgICAgQ1NTUHJvcGVydHkqIG9s
ZCA9IG1fcHJvcGVydGllcy5nZXRQcm9wZXJ0eUJ5SWQodG9NZXJnZS5pZCgpKS5nZXQoKTsKICAg
ICAgICAgaWYgKG9sZCkgewogICAgICAgICAgICAgaWYgKCFhcmdPdmVycmlkZXNPbkNvbmZsaWN0
ICYmIG9sZC0+dmFsdWUoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
IHNldFByb3BlcnR5SW50ZXJuYWwodG9NZXJnZSwgb2xkKTsKICAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICBtX3Byb3BlcnRpZXMuYXBwZW5kKHRvTWVyZ2UpOworICAgICAgICAgICAgbV9wcm9w
ZXJ0aWVzLmFkZFByb3BlcnR5KHRvTWVyZ2UpOwogICAgIH0KICAgICAvLyBGSVhNRTogVGhpcyBw
cm9iYWJseSBzaG91bGQgaGF2ZSBhIGNhbGwgdG8gc2V0TmVlZHNTdHlsZVJlY2FsYygpIGlmIHNv
bWV0aGluZyBjaGFuZ2VkLiBXZSBtYXkgYWxzbyB3aXNoIHRvIGFkZAogICAgIC8vIGEgbm90aWZ5
Q2hhbmdlZCBhcmd1bWVudCB0byB0aGlzIGZ1bmN0aW9uIHRvIGZvbGxvdyB0aGUgbW9kZWwgb2Yg
b3RoZXIgZnVuY3Rpb25zIGluIHRoaXMgY2xhc3MuCkBAIC03ODksOSArNzgxLDggQEAgdm9pZCBD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6bWVyZ2UoY29uc3QgQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24qIG90aGVyLAogdm9pZCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6YWRkU3Vi
cmVzb3VyY2VTdHlsZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mIHVybHMpCiB7CiAgICAgQ1NTU3R5
bGVTaGVldCogc2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVzaGVldCgp
KTsKLSAgICBzaXplX3Qgc2l6ZSA9IG1fcHJvcGVydGllcy5zaXplKCk7Ci0gICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fcHJvcGVydGllc1tpXS52YWx1ZSgp
LT5hZGRTdWJyZXNvdXJjZVN0eWxlVVJMcyh1cmxzLCBzaGVldCk7CisgICAgZm9yIChDU1NQcm9w
ZXJ0eUNvbnRhaW5lcjo6aXRlcmF0b3IgcHJvcGVydHkgPSBtX3Byb3BlcnRpZXMuYmVnaW4oKTsg
cHJvcGVydHkgIT0gbV9wcm9wZXJ0aWVzLmVuZCgpOyArK3Byb3BlcnR5KQorICAgICAgICBwcm9w
ZXJ0eS0+dmFsdWUoKS0+YWRkU3VicmVzb3VyY2VTdHlsZVVSTHModXJscywgc2hlZXQpOwogfQog
CiAvLyBUaGlzIGlzIHRoZSBsaXN0IG9mIHByb3BlcnRpZXMgd2Ugd2FudCB0byBjb3B5IGluIHRo
ZSBjb3B5QmxvY2tQcm9wZXJ0aWVzKCkgZnVuY3Rpb24uCkBAIC04MzUsMzAgKzgyNiwyMCBAQCB2
b2lkIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpyZW1vdmVQcm9wZXJ0aWVzSW5TZXQoY29u
c3QgaW50KiBzZXQsIHVuc2lnbmVkCiB7CiAgICAgQVNTRVJUKCFtX2l0ZXJhdG9yQ291bnQpOwog
ICAgIAotICAgIGlmIChtX3Byb3BlcnRpZXMuaXNFbXB0eSgpKQorICAgIHVuc2lnbmVkIG9sZFNp
emUgPSBtX3Byb3BlcnRpZXMuc2l6ZSgpOworCisgICAgaWYgKCFvbGRTaXplKQogICAgICAgICBy
ZXR1cm47Ci0gICAgCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgYWx3YXlzIHVzZWQgd2l0aCBzdGF0
aWMgc2V0cyBhbmQgaW4gdGhhdCBjYXNlIGNvbnN0cnVjdGluZyB0aGUgaGFzaCByZXBlYXRlZGx5
IGlzIHByZXR0eSBwb2ludGxlc3MuCi0gICAgSGFzaFNldDxpbnQ+IHRvUmVtb3ZlOwotICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKLSAgICAgICAgdG9SZW1vdmUuYWRk
KHNldFtpXSk7Ci0gICAgCi0gICAgVmVjdG9yPENTU1Byb3BlcnR5LCA0PiBuZXdQcm9wZXJ0aWVz
OwotICAgIG5ld1Byb3BlcnRpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtX3Byb3BlcnRpZXMu
c2l6ZSgpKTsKLSAgICAKLSAgICB1bnNpZ25lZCBzaXplID0gbV9wcm9wZXJ0aWVzLnNpemUoKTsK
LSAgICBmb3IgKHVuc2lnbmVkIG4gPSAwOyBuIDwgc2l6ZTsgKytuKSB7Ci0gICAgICAgIGNvbnN0
IENTU1Byb3BlcnR5JiBwcm9wZXJ0eSA9IG1fcHJvcGVydGllc1tuXTsKKworICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBDU1NQcm9wZXJ0eSogZXhp
c3RpbmdQcm9wZXJ0eSA9IG1fcHJvcGVydGllcy5nZXRQcm9wZXJ0eUJ5SWQoc2V0W2ldKS5nZXQo
KTsKICAgICAgICAgLy8gTm90IHF1aXRlIHN1cmUgaWYgdGhlIGlzSW1wb3J0YW50IHRlc3QgaXMg
bmVlZGVkIGJ1dCBpdCBtYXRjaGVzIHRoZSBleGlzdGluZyBiZWhhdmlvci4KLSAgICAgICAgaWYg
KCFwcm9wZXJ0eS5pc0ltcG9ydGFudCgpKSB7Ci0gICAgICAgICAgICBpZiAodG9SZW1vdmUuY29u
dGFpbnMocHJvcGVydHkuaWQoKSkpCi0gICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGlmIChleGlzdGluZ1Byb3BlcnR5ICYmICFleGlzdGluZ1Byb3BlcnR5LT5pc0ltcG9ydGFudCgp
KSB7CisgICAgICAgICAgICBtX3Byb3BlcnRpZXMucmVtb3ZlUHJvcGVydHkoZXhpc3RpbmdQcm9w
ZXJ0eS0+aWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgbmV3UHJvcGVydGllcy5hcHBlbmQocHJv
cGVydHkpOwogICAgIH0KIAotICAgIGJvb2wgY2hhbmdlZCA9IG5ld1Byb3BlcnRpZXMuc2l6ZSgp
ICE9IG1fcHJvcGVydGllcy5zaXplKCk7Ci0gICAgbV9wcm9wZXJ0aWVzID0gbmV3UHJvcGVydGll
czsKKyAgICBib29sIGNoYW5nZWQgPSBtX3Byb3BlcnRpZXMuc2l6ZSgpICE9IG9sZFNpemU7CiAg
ICAgCiAgICAgaWYgKGNoYW5nZWQgJiYgbm90aWZ5Q2hhbmdlZCkKICAgICAgICAgc2V0TmVlZHNT
dHlsZVJlY2FsYygpOwpAQCAtODc0LDIyICs4NTUsNCBAQCBQYXNzUmVmUHRyPENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uPiBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y29weSgpIGNvbnN0
CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbigwLCBt
X3Byb3BlcnRpZXMpKTsKIH0KIAotY29uc3QgQ1NTUHJvcGVydHkqIENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uOjpmaW5kUHJvcGVydHlXaXRoSWQoaW50IHByb3BlcnR5SUQpIGNvbnN0Ci17ICAg
IAotICAgIGZvciAoaW50IG4gPSBtX3Byb3BlcnRpZXMuc2l6ZSgpIC0gMSA7IG4gPj0gMDsgLS1u
KSB7Ci0gICAgICAgIGlmIChwcm9wZXJ0eUlEID09IG1fcHJvcGVydGllc1tuXS5tX2lkKQotICAg
ICAgICAgICAgcmV0dXJuICZtX3Byb3BlcnRpZXNbbl07Ci0gICAgfQotICAgIHJldHVybiAwOwot
fQotCi1DU1NQcm9wZXJ0eSogQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmZpbmRQcm9wZXJ0
eVdpdGhJZChpbnQgcHJvcGVydHlJRCkKLXsKLSAgICBmb3IgKGludCBuID0gbV9wcm9wZXJ0aWVz
LnNpemUoKSAtIDEgOyBuID49IDA7IC0tbikgewotICAgICAgICBpZiAocHJvcGVydHlJRCA9PSBt
X3Byb3BlcnRpZXNbbl0ubV9pZCkKLSAgICAgICAgICAgIHJldHVybiAmbV9wcm9wZXJ0aWVzW25d
OwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaAppbmRleCBi
ODM4MjkzLi41MjJkMmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24uaApAQCAtMzYsMTIgKzM2LDEyIEBAIGNsYXNzIE5vZGU7CiAKIGNsYXNz
IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJdGVyYXRvciB7CiBwdWJsaWM6Ci0gICAg
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25Db25zdEl0ZXJhdG9yKGNvbnN0IENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uKiBkZWNsLCBDU1NQcm9wZXJ0eSogY3VycmVudCk7CisgICAgQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb25Db25zdEl0ZXJhdG9yKGNvbnN0IENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uKiwgQ1NTUHJvcGVydHlDb250YWluZXI6Oml0ZXJhdG9yIGN1cnJlbnQpOwogICAg
IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJdGVyYXRvcihjb25zdCBDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbkNvbnN0SXRlcmF0b3ImIG8pOwogICAgIH5DU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbkNvbnN0SXRlcmF0b3IoKTsKICAgICAKICAgICBjb25zdCBDU1NQcm9wZXJ0eSYg
b3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gKm1fY3VycmVudDsgfQotICAgIGNvbnN0IENTU1By
b3BlcnR5KiBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50OyB9CisgICAgY29u
c3QgQ1NTUHJvcGVydHkqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiAmKm1fY3VycmVudDsg
fQogICAgIAogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbkNvbnN0SXRlcmF0b3ImIG8pIHsgQVNTRVJUKG1fZGVjbCA9PSBvLm1fZGVjbCk7IHJldHVy
biBtX2N1cnJlbnQgIT0gby5tX2N1cnJlbnQ7IH0KICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25Db25zdEl0ZXJhdG9yJiBvKSB7IEFTU0VSVChtX2Rl
Y2wgPT0gby5tX2RlY2wpOyByZXR1cm4gbV9jdXJyZW50ID09IG8ubV9jdXJyZW50OyB9CkBAIC00
OSwxMSArNDksMTAgQEAgcHVibGljOgogICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29u
c3RJdGVyYXRvciYgb3BlcmF0b3I9KGNvbnN0IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29u
c3RJdGVyYXRvciYgbyk7CiAgICAgCiAgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25Db25z
dEl0ZXJhdG9yJiBvcGVyYXRvcisrKCk7Ci0gICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25D
b25zdEl0ZXJhdG9yJiBvcGVyYXRvci0tKCk7CiAKIHByaXZhdGU6CiAgICAgY29uc3QgQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb24qIG1fZGVjbDsKLSAgICBDU1NQcm9wZXJ0eSogbV9jdXJyZW50
OworICAgIENTU1Byb3BlcnR5Q29udGFpbmVyOjppdGVyYXRvciBtX2N1cnJlbnQ7CiB9OwogCiBj
bGFzcyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiA6IHB1YmxpYyBDU1NTdHlsZURlY2xhcmF0
aW9uIHsKQEAgLTE1MCw3ICsxNDksNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uKCk7CiAgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24o
Q1NTUnVsZSogcGFyZW50UnVsZSwgY29uc3QgVmVjdG9yPENTU1Byb3BlcnR5PiYpOwotICAgIENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uKENTU1J1bGUqIHBhcmVudFJ1bGUsIENTU1Byb3BlcnR5
Q29udGFpbmVyJiBwcm9wZXJ0aWVzKTsKKyAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbihD
U1NSdWxlKiBwYXJlbnRSdWxlLCBjb25zdCBDU1NQcm9wZXJ0eUNvbnRhaW5lciYgcHJvcGVydGll
cyk7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+
IG1ha2VNdXRhYmxlKCk7CiAKQEAgLTE2OSwxMiArMTY4LDEwIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXRQcm9wZXJ0eUludGVybmFsKGNvbnN0IENTU1Byb3BlcnR5JiwgQ1NTUHJvcGVydHkqIHNs
b3QgPSAwKTsKICAgICBib29sIHJlbW92ZVNob3J0aGFuZFByb3BlcnR5KGludCBwcm9wZXJ0eUlE
LCBib29sIG5vdGlmeUNoYW5nZWQpOwogCi0gICAgVmVjdG9yPENTU1Byb3BlcnR5Pjo6Y29uc3Rf
aXRlcmF0b3IgZmluZFByb3BlcnR5V2l0aElkKGludCBwcm9wZXJ0eUlkKSBjb25zdDsKLSAgICBW
ZWN0b3I8Q1NTUHJvcGVydHk+OjppdGVyYXRvciBmaW5kUHJvcGVydHlXaXRoSWQoaW50IHByb3Bl
cnR5SWQpOwotCi0gICAgVmVjdG9yPENTU1Byb3BlcnR5LCA0PiBtX3Byb3BlcnRpZXM7CisgICAg
Q1NTUHJvcGVydHlDb250YWluZXIgbV9wcm9wZXJ0aWVzOwogCiAgICAgTm9kZSogbV9ub2RlOwor
ICAgIG11dGFibGUgYm9vbCBtX2NhY2hlTmVlZHNVcGRhdGUgOiAxOwogICAgIGJvb2wgbV9zdHJp
Y3RQYXJzaW5nIDogMTsKICNpZm5kZWYgTkRFQlVHCiAgICAgdW5zaWduZWQgbV9pdGVyYXRvckNv
dW50IDogNDsKQEAgLTE4Myw3ICsxODAsNyBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkNvbnN0SXRlcmF0b3I7CiB9OwogICAgIAotaW5saW5l
IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJdGVyYXRvcjo6Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb25Db25zdEl0ZXJhdG9yKGNvbnN0IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
KiBkZWNsLCBDU1NQcm9wZXJ0eSogY3VycmVudCkgCitpbmxpbmUgQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb25Db25zdEl0ZXJhdG9yOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkNvbnN0SXRl
cmF0b3IoY29uc3QgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIGRlY2wsIENTU1Byb3BlcnR5
Q29udGFpbmVyOjppdGVyYXRvciBjdXJyZW50KQogOiBtX2RlY2woZGVjbCkKICwgbV9jdXJyZW50
KGN1cnJlbnQpCiB7IApAQCAtMjI1LDEyICsyMjIsNiBAQCBpbmxpbmUgQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb25Db25zdEl0ZXJhdG9yJiBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkNvbnN0
SQogICAgIHJldHVybiAqdGhpczsgCiB9CiAKLWlubGluZSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbkNvbnN0SXRlcmF0b3ImIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQ29uc3RJdGVyYXRv
cjo6b3BlcmF0b3ItLSgpIAoteyAKLSAgICAtLW1fY3VycmVudDsgCi0gICAgcmV0dXJuICp0aGlz
OyAKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5Q29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eUNvbnRhaW5l
ci5jcHAKaW5kZXggYzMwZGRlMi4uZTIyZjE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5Q29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJvcGVydHlDb250YWluZXIuY3BwCkBAIC02Myw2ICs2MywyNCBAQCBDU1NQcm9wZXJ0eSYgQ1NT
UHJvcGVydHlDb250YWluZXI6Omxhc3QoKQogICAgIHJldHVybiBtX3Byb3BlcnR5U2V0Lmxhc3Qo
KTsKIH0KIAorQ1NTUHJvcGVydHlDb250YWluZXImIENTU1Byb3BlcnR5Q29udGFpbmVyOjpvcGVy
YXRvcj0oY29uc3QgQ1NTUHJvcGVydHlDb250YWluZXImIG90aGVyKQoreworICAgIG1faGFzRm9u
dEZhY2VPbmx5UHJvcGVydGllcyA9IG90aGVyLm1faGFzRm9udEZhY2VPbmx5UHJvcGVydGllczsK
KyAgICBtX251bUFkZGVkUHJvcGVydGllcyA9IG90aGVyLm1fbnVtQWRkZWRQcm9wZXJ0aWVzOwor
ICAgIG1fcHJvcGVydHlTZXQgPSBvdGhlci5tX3Byb3BlcnR5U2V0OworICAgIHJldHVybiAqdGhp
czsKK30KKworYm9vbCBDU1NQcm9wZXJ0eUNvbnRhaW5lcjo6b3BlcmF0b3I9PShjb25zdCBDU1NQ
cm9wZXJ0eUNvbnRhaW5lciYgb3RoZXIpIGNvbnN0Cit7CisgICAgaWYgKHNpemUoKSAhPSBvdGhl
ci5zaXplKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgZm9yIChDU1NQcm9wZXJ0eUNv
bnRhaW5lcjo6Y29uc3RfaXRlcmF0b3IgYSA9IGJlZ2luKCksIGIgPSBvdGhlci5iZWdpbigpOyBh
ICE9IGVuZCgpOyArK2EsICsrYikKKyAgICAgICAgaWYgKGEgIT0gYikKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQ1NTUHJvcGVydHlDb250
YWluZXI6OmFkZFByb3BlcnR5KGludCBwcm9wZXJ0eUlkLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2
YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGludCBzaG9ydGhhbmRJRCwgYm9vbCBpbXBsaWNpdCkKIHsK
ICAgICBBU1NFUlQocHJvcGVydHlJZCk7CkBAIC03OSw2ICs5NywxMSBAQCB2b2lkIENTU1Byb3Bl
cnR5Q29udGFpbmVyOjphZGRQcm9wZXJ0eShpbnQgcHJvcGVydHlJZCwgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gdmFsdQogICAgIG1fcHJvcGVydHlTZXQuYWRkKG5ld1Byb3BlcnR5KTsKIH0KIAordm9p
ZCBDU1NQcm9wZXJ0eUNvbnRhaW5lcjo6YWRkUHJvcGVydHkoY29uc3QgQ1NTUHJvcGVydHkmIHBy
b3BlcnR5KQoreworICAgIGFkZFByb3BlcnR5KHByb3BlcnR5LmlkKCksIHByb3BlcnR5LnZhbHVl
KCksIHByb3BlcnR5LmlzSW1wb3J0YW50KCksIHByb3BlcnR5LnNob3J0aGFuZElEKCksIHByb3Bl
cnR5LmlzSW1wbGljaXQoKSk7Cit9CisKIHZvaWQgQ1NTUHJvcGVydHlDb250YWluZXI6OnJlbW92
ZVByb3BlcnR5KGludCBwcm9wZXJ0eUlkKQogewogICAgIEFTU0VSVChwcm9wZXJ0eUlkKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eUNvbnRhaW5lci5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5Q29udGFpbmVyLmgKaW5kZXggZTY5Njc1Ni4uZGYz
ODU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5Q29udGFpbmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5Q29udGFpbmVyLmgKQEAgLTUz
LDEyICs1MywyMiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAorICAgIENTU1Byb3BlcnR5Q29u
dGFpbmVyKGNvbnN0IENTU1Byb3BlcnR5Q29udGFpbmVyJiBvdGhlcikKKyAgICAgICAgOiBtX2hh
c0ZvbnRGYWNlT25seVByb3BlcnRpZXMob3RoZXIubV9oYXNGb250RmFjZU9ubHlQcm9wZXJ0aWVz
KQorICAgICAgICAsIG1fbnVtQWRkZWRQcm9wZXJ0aWVzKG90aGVyLm1fbnVtQWRkZWRQcm9wZXJ0
aWVzKQorICAgICAgICAsIG1fcHJvcGVydHlTZXQob3RoZXIubV9wcm9wZXJ0eVNldCkKKyAgICB7
CisgICAgfQorCiAgICAgQ1NTUHJvcGVydHlDb250YWluZXI6Oml0ZXJhdG9yIGJlZ2luKCk7CiAg
ICAgQ1NTUHJvcGVydHlDb250YWluZXI6Oml0ZXJhdG9yIGVuZCgpOwogICAgIENTU1Byb3BlcnR5
Q29udGFpbmVyOjpjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0OwogICAgIENTU1Byb3BlcnR5
Q29udGFpbmVyOjpjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdDsKICAgICBDU1NQcm9wZXJ0eSYg
bGFzdCgpOwogCisgICAgQ1NTUHJvcGVydHlDb250YWluZXImIG9wZXJhdG9yPShjb25zdCBDU1NQ
cm9wZXJ0eUNvbnRhaW5lciYgb3RoZXIpOworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQ
cm9wZXJ0eUNvbnRhaW5lciYgb3RoZXIpIGNvbnN0OworCiAgICAgdW5zaWduZWQgc2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcHJvcGVydHlTZXQuc2l6ZSgpOyB9CiAgICAgaW50IGNvdW50QWRkZWRQ
cm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9udW1BZGRlZFByb3BlcnRpZXM7IH0KICAgICBi
b29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnR5U2V0LmlzRW1wdHkoKTsgfQpA
QCAtNjYsNiArNzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGb250RmFjZU9ubHkoKSB7IG1f
aGFzRm9udEZhY2VPbmx5UHJvcGVydGllcyA9IHRydWU7IH0KIAogICAgIHZvaWQgYWRkUHJvcGVy
dHkoaW50IHByb3BlcnR5SWQsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+LCBib29sIGltcG9ydGFudCwg
aW50IHNob3J0aGFuZElEID0gMCwgYm9vbCBpbXBsaWNpdCA9IGZhbHNlKTsKKyAgICB2b2lkIGFk
ZFByb3BlcnR5KGNvbnN0IENTU1Byb3BlcnR5Jik7CiAKICAgICB2b2lkIHJlbW92ZVByb3BlcnR5
KGludCBwcm9wZXJ0eUlkKTsKICAgICB2b2lkIHJlbW92ZUZvbnRGYWNlUHJvcGVydGllcygpOwot
LSAKMS43LjYKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>