<?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>155787</bug_id>
          
          <creation_ts>2016-03-23 04:36:19 -0700</creation_ts>
          <short_desc>Share style by sharing RenderStyle substructures not the object itself</short_desc>
          <delta_ts>2016-03-23 07:30:25 -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>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kling</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1177327</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-23 04:36:19 -0700</bug_when>
    <thetext>Current approach where we share RenderStyle objects between elements leads to lot of awkward and bug-prone code. Most of the RenderStyle consists of shareable substructures. It is better to just share those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177328</commentid>
    <comment_count>1</comment_count>
      <attachid>274743</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-23 04:38:45 -0700</bug_when>
    <thetext>Created attachment 274743
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177333</commentid>
    <comment_count>2</comment_count>
      <attachid>274746</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-23 05:49:42 -0700</bug_when>
    <thetext>Created attachment 274746
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177334</commentid>
    <comment_count>3</comment_count>
      <attachid>274746</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-03-23 06:00:12 -0700</bug_when>
    <thetext>Comment on attachment 274746
patch

r=me, let&apos;s hope this doesn&apos;t regress anything, it&apos;s so much cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177342</commentid>
    <comment_count>4</comment_count>
      <attachid>274748</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-23 06:44:11 -0700</bug_when>
    <thetext>Created attachment 274748
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177345</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-23 07:30:25 -0700</bug_when>
    <thetext>https://trac.webkit.org/r198584</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274743</attachid>
            <date>2016-03-23 04:38:45 -0700</date>
            <delta_ts>2016-03-23 05:49:42 -0700</delta_ts>
            <desc>patch</desc>
            <filename>style-sharing-substructures.patch</filename>
            <type>text/plain</type>
            <size>9783</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODU4MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE2LTAzLTIzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBTaGFyZSBzdHlsZSBieSBzaGFy
aW5nIFJlbmRlclN0eWxlIHN1YnN0cnVjdHVyZXMgbm90IHRoZSBvYmplY3QgaXRzZWxmCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU3ODcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50IGFwcHJv
YWNoIHdoZXJlIHdlIHNoYXJlIFJlbmRlclN0eWxlIG9iamVjdHMgYmV0d2VlbiBlbGVtZW50cyBs
ZWFkcyB0byBsb3Qgb2YgYXdrd2FyZCBhbmQKKyAgICAgICAgYnVnLXByb25lIGNvZGUuIE1vc3Qg
b2YgdGhlIFJlbmRlclN0eWxlIGNvbnNpc3RzIG9mIHNoYXJlYWJsZSBzdWJzdHJ1Y3R1cmVzLiBJ
dCBpcyBiZXR0ZXIgdG8ganVzdAorICAgICAgICBzaGFyZSB0aG9zZS4KKworICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAq
IHN0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjplbGVtZW50SGFzRGlyZWN0aW9uQXV0byk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2hh
cmluZ1Jlc29sdmVyOjpyZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTaGFyaW5n
UmVzb2x2ZXI6OmZpbmRTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTaGFyaW5n
UmVzb2x2ZXI6OmxvY2F0ZUNvdXNpbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmNh
blNoYXJlU3R5bGVXaXRoQ29udHJvbCk6CisgICAgICAgICogc3R5bGUvU3R5bGVTaGFyaW5nUmVz
b2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpzdHlsZUZvckVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQpOgorCiAyMDE2
LTAzLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBVc2UgUmVnaW9uIGluc3RlYWQgb2YgSW50UmVjdCBpbiBQYWdlQ2xpZW50IGFuZCBXZWJQ
YWdlUHJveHkgc2V0Vmlld05lZWRzRGlzcGxheSBtZXRob2QKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAJKHJldmlzaW9uIDE5ODQ4MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ0
LDYgKzI0NCw3IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3IKICNl
bmRpZgogICAgICAgICAmJiBjb250ZW50RGF0YUVxdWl2YWxlbnQobykKICAgICAgICAgJiYgYXJl
UG9pbnRpbmdUb0VxdWFsRGF0YShtX2NvdW50ZXJEaXJlY3RpdmVzLCBvLm1fY291bnRlckRpcmVj
dGl2ZXMpCisgICAgICAgICYmIG1fYWx0VGV4dCA9PSBvLm1fYWx0VGV4dAogICAgICAgICAmJiBh
cmVQb2ludGluZ1RvRXF1YWxEYXRhKG1fYm94U2hhZG93LCBvLm1fYm94U2hhZG93KQogICAgICAg
ICAmJiBhcmVQb2ludGluZ1RvRXF1YWxEYXRhKG1fd2lsbENoYW5nZSwgby5tX3dpbGxDaGFuZ2Up
CiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERhdGEobV9ib3hSZWZsZWN0LCBvLm1fYm94
UmVmbGVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNv
bHZlci5jcHAJKHJldmlzaW9uIDE5ODQ4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
U2hhcmluZ1Jlc29sdmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgU3R5bGUgewogCiBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgY1N0eWxlU2VhcmNoVGhyZXNob2xkID0gMTA7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgY1N0
eWxlU2VhcmNoTGV2ZWxUaHJlc2hvbGQgPSAxMDsKIAogc3RydWN0IFNoYXJpbmdSZXNvbHZlcjo6
Q29udGV4dCB7CiAgICAgY29uc3QgU3R5bGVkRWxlbWVudCYgZWxlbWVudDsKQEAgLTY4LDcgKzY3
LDcgQEAgc3RhdGljIGlubGluZSBib29sIGVsZW1lbnRIYXNEaXJlY3Rpb25BdQogICAgIHJldHVy
biBpczxIVE1MRWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KGVsZW1l
bnQpLmhhc0RpcmVjdGlvbkF1dG8oKTsKIH0KIAotY29uc3QgRWxlbWVudCogU2hhcmluZ1Jlc29s
dmVyOjpyZXNvbHZlKGNvbnN0IEVsZW1lbnQmIHNlYXJjaEVsZW1lbnQpIGNvbnN0CitSZWZQdHI8
UmVuZGVyU3R5bGU+IFNoYXJpbmdSZXNvbHZlcjo6cmVzb2x2ZShjb25zdCBFbGVtZW50JiBzZWFy
Y2hFbGVtZW50KQogewogICAgIGlmICghaXM8U3R5bGVkRWxlbWVudD4oc2VhcmNoRWxlbWVudCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTAzLDE0ICsxMDIsMTMgQEAgY29uc3QgRWxl
bWVudCogU2hhcmluZ1Jlc29sdmVyOjpyZXNvbHZlKAogCiAgICAgLy8gQ2hlY2sgcHJldmlvdXMg
c2libGluZ3MgYW5kIHRoZWlyIGNvdXNpbnMuCiAgICAgdW5zaWduZWQgY291bnQgPSAwOwotICAg
IHVuc2lnbmVkIHZpc2l0ZWROb2RlQ291bnQgPSAwOwogICAgIFN0eWxlZEVsZW1lbnQqIHNoYXJl
RWxlbWVudCA9IG51bGxwdHI7CiAgICAgTm9kZSogY291c2luTGlzdCA9IGVsZW1lbnQucHJldmlv
dXNTaWJsaW5nKCk7CiAgICAgd2hpbGUgKGNvdXNpbkxpc3QpIHsKICAgICAgICAgc2hhcmVFbGVt
ZW50ID0gZmluZFNpYmxpbmcoY29udGV4dCwgY291c2luTGlzdCwgY291bnQpOwogICAgICAgICBp
ZiAoc2hhcmVFbGVtZW50KQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNvdXNpbkxpc3Qg
PSBsb2NhdGVDb3VzaW5MaXN0KGNvdXNpbkxpc3QtPnBhcmVudEVsZW1lbnQoKSwgdmlzaXRlZE5v
ZGVDb3VudCk7CisgICAgICAgIGNvdXNpbkxpc3QgPSBsb2NhdGVDb3VzaW5MaXN0KGNvdXNpbkxp
c3QtPnBhcmVudEVsZW1lbnQoKSk7CiAgICAgfQogCiAgICAgLy8gSWYgd2UgaGF2ZSBleGhhdXN0
ZWQgYWxsIG91ciBidWRnZXQgb3Igb3VyIGNvdXNpbnMuCkBAIC0xMjcsNyArMTI1LDkgQEAgY29u
c3QgRWxlbWVudCogU2hhcmluZ1Jlc29sdmVyOjpyZXNvbHZlKAogICAgIGlmIChwYXJlbnRFbGVt
ZW50UHJldmVudHNTaGFyaW5nKHBhcmVudEVsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotICAgIHJldHVybiBzaGFyZUVsZW1lbnQ7CisgICAgbV9oYXNTYW1lU3R5bGVNYXAuYWRk
KCZlbGVtZW50LCBzaGFyZUVsZW1lbnQpOworCisgICAgcmV0dXJuIFJlbmRlclN0eWxlOjpjbG9u
ZShzaGFyZUVsZW1lbnQtPnJlbmRlclN0eWxlKCkpOwogfQogCiBTdHlsZWRFbGVtZW50KiBTaGFy
aW5nUmVzb2x2ZXI6OmZpbmRTaWJsaW5nKGNvbnN0IENvbnRleHQmIGNvbnRleHQsIE5vZGUqIG5v
ZGUsIHVuc2lnbmVkJiBjb3VudCkgY29uc3QKQEAgLTE0Myw1MCArMTQzLDE5IEBAIFN0eWxlZEVs
ZW1lbnQqIFNoYXJpbmdSZXNvbHZlcjo6ZmluZFNpYmwKICAgICByZXR1cm4gZG93bmNhc3Q8U3R5
bGVkRWxlbWVudD4obm9kZSk7CiB9CiAKLU5vZGUqIFNoYXJpbmdSZXNvbHZlcjo6bG9jYXRlQ291
c2luTGlzdChFbGVtZW50KiBwYXJlbnQsIHVuc2lnbmVkJiB2aXNpdGVkTm9kZUNvdW50KSBjb25z
dAorTm9kZSogU2hhcmluZ1Jlc29sdmVyOjpsb2NhdGVDb3VzaW5MaXN0KEVsZW1lbnQqIHBhcmVu
dCkgY29uc3QKIHsKLSAgICBpZiAodmlzaXRlZE5vZGVDb3VudCA+PSBjU3R5bGVTZWFyY2hUaHJl
c2hvbGQgKiBjU3R5bGVTZWFyY2hMZXZlbFRocmVzaG9sZCkKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgaWYgKCFpczxTdHlsZWRFbGVtZW50PihwYXJlbnQpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICBhdXRvJiBzdHlsZWRQYXJlbnQgPSBkb3duY2FzdDxTdHlsZWRFbGVtZW50
PigqcGFyZW50KTsKLSAgICBpZiAoc3R5bGVkUGFyZW50LmlubGluZVN0eWxlKCkpCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIGlmIChpczxTVkdFbGVtZW50PihzdHlsZWRQYXJlbnQpICYm
IGRvd25jYXN0PFNWR0VsZW1lbnQ+KHN0eWxlZFBhcmVudCkuYW5pbWF0ZWRTTUlMU3R5bGVQcm9w
ZXJ0aWVzKCkpCisKKyAgICBhdXRvKiBlbGVtZW50U2hhcmluZ1BhcmVudFN0eWxlID0gbV9oYXNT
YW1lU3R5bGVNYXAuZ2V0KCZzdHlsZWRQYXJlbnQpOworICAgIGlmICghZWxlbWVudFNoYXJpbmdQ
YXJlbnRTdHlsZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKHN0eWxlZFBhcmVu
dC5oYXNJRCgpICYmIG1fcnVsZVNldHMuZmVhdHVyZXMoKS5pZHNJblJ1bGVzLmNvbnRhaW5zKHN0
eWxlZFBhcmVudC5pZEZvclN0eWxlUmVzb2x1dGlvbigpLmltcGwoKSkpCisgICAgaWYgKHBhcmVu
dEVsZW1lbnRQcmV2ZW50c1NoYXJpbmcoKmVsZW1lbnRTaGFyaW5nUGFyZW50U3R5bGUpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSA9IHN0
eWxlZFBhcmVudC5yZW5kZXJTdHlsZSgpOwotICAgIHVuc2lnbmVkIHN1YmNvdW50ID0gMDsKLSAg
ICBOb2RlKiB0aGlzQ291c2luID0gJnN0eWxlZFBhcmVudDsKLSAgICBOb2RlKiBjdXJyZW50Tm9k
ZSA9IHN0eWxlZFBhcmVudC5wcmV2aW91c1NpYmxpbmcoKTsKLQotICAgIC8vIFJlc2VydmUgdGhl
IHRyaWVzIGZvciB0aGlzIGxldmVsLiBUaGlzIGVmZmVjdGl2ZWx5IG1ha2VzIHN1cmUgdGhhdCB0
aGUgYWxnb3JpdGhtCi0gICAgLy8gd2lsbCBuZXZlciBnbyBkZWVwZXIgdGhhbiBjU3R5bGVTZWFy
Y2hMZXZlbFRocmVzaG9sZCBsZXZlbHMgaW50byByZWN1cnNpb24uCi0gICAgdmlzaXRlZE5vZGVD
b3VudCArPSBjU3R5bGVTZWFyY2hUaHJlc2hvbGQ7Ci0gICAgd2hpbGUgKHRoaXNDb3VzaW4pIHsK
LSAgICAgICAgZm9yICg7IGN1cnJlbnROb2RlOyBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLT5w
cmV2aW91c1NpYmxpbmcoKSkgewotICAgICAgICAgICAgaWYgKCsrc3ViY291bnQgPiBjU3R5bGVT
ZWFyY2hUaHJlc2hvbGQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAg
ICAgICBpZiAoIWlzPEVsZW1lbnQ+KCpjdXJyZW50Tm9kZSkpCi0gICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICBhdXRvJiBjdXJyZW50RWxlbWVudCA9IGRvd25jYXN0PEVsZW1l
bnQ+KCpjdXJyZW50Tm9kZSk7Ci0gICAgICAgICAgICBpZiAoY3VycmVudEVsZW1lbnQucmVuZGVy
U3R5bGUoKSAhPSBwYXJlbnRTdHlsZSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgIGlmICghY3VycmVudEVsZW1lbnQubGFzdENoaWxkKCkpCi0gICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICBpZiAoIXBhcmVudEVsZW1lbnRQcmV2ZW50c1NoYXJpbmco
Y3VycmVudEVsZW1lbnQpKSB7Ci0gICAgICAgICAgICAgICAgLy8gQWRqdXN0IGZvciB1bnVzZWQg
cmVzZXJ2ZWQgdHJpZXMuCi0gICAgICAgICAgICAgICAgdmlzaXRlZE5vZGVDb3VudCAtPSBjU3R5
bGVTZWFyY2hUaHJlc2hvbGQgLSBzdWJjb3VudDsKLSAgICAgICAgICAgICAgICByZXR1cm4gY3Vy
cmVudE5vZGUtPmxhc3RDaGlsZCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
IGN1cnJlbnROb2RlID0gbG9jYXRlQ291c2luTGlzdCh0aGlzQ291c2luLT5wYXJlbnRFbGVtZW50
KCksIHZpc2l0ZWROb2RlQ291bnQpOwotICAgICAgICB0aGlzQ291c2luID0gY3VycmVudE5vZGU7
Ci0gICAgfQotCi0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGVsZW1lbnRTaGFyaW5n
UGFyZW50U3R5bGUtPmxhc3RDaGlsZCgpOwogfQogCiBzdGF0aWMgYm9vbCBjYW5TaGFyZVN0eWxl
V2l0aENvbnRyb2woY29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVudCYgZWxlbWVudCwgY29uc3Qg
SFRNTEZvcm1Db250cm9sRWxlbWVudCYgZm9ybUVsZW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmgJKHJldmlzaW9uIDE5ODQ4MykKKysrIFNv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDEyICsyNiwxNSBAQAogI2lmbmRlZiBTdHlsZVNoYXJpbmdSZXNvbHZlcl9oCiAjZGVm
aW5lIFN0eWxlU2hhcmluZ1Jlc29sdmVyX2gKIAorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBEb2N1bWVudFJ1
bGVTZXRzOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIE5vZGU7CitjbGFzcyBSZW5kZXJTdHlsZTsK
IGNsYXNzIFJ1bGVTZXQ7CiBjbGFzcyBTZWxlY3RvckZpbHRlcjsKIGNsYXNzIFNwYWNlU3BsaXRT
dHJpbmc7CkBAIC00MywxMyArNDYsMTMgQEAgY2xhc3MgU2hhcmluZ1Jlc29sdmVyIHsKIHB1Ymxp
YzoKICAgICBTaGFyaW5nUmVzb2x2ZXIoY29uc3QgRG9jdW1lbnQmLCBjb25zdCBEb2N1bWVudFJ1
bGVTZXRzJiwgY29uc3QgU2VsZWN0b3JGaWx0ZXImKTsKIAotICAgIGNvbnN0IEVsZW1lbnQqIHJl
c29sdmUoY29uc3QgRWxlbWVudCYpIGNvbnN0OworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gcmVz
b2x2ZShjb25zdCBFbGVtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IENvbnRleHQ7CiAK
ICAgICBTdHlsZWRFbGVtZW50KiBmaW5kU2libGluZyhjb25zdCBDb250ZXh0JiwgTm9kZSosIHVu
c2lnbmVkJiBjb3VudCkgY29uc3Q7Ci0gICAgTm9kZSogbG9jYXRlQ291c2luTGlzdChFbGVtZW50
KiBwYXJlbnQsIHVuc2lnbmVkJiB2aXNpdGVkTm9kZUNvdW50KSBjb25zdDsKKyAgICBOb2RlKiBs
b2NhdGVDb3VzaW5MaXN0KEVsZW1lbnQqIHBhcmVudCkgY29uc3Q7CiAgICAgYm9vbCBjYW5TaGFy
ZVN0eWxlV2l0aEVsZW1lbnQoY29uc3QgQ29udGV4dCYsIGNvbnN0IFN0eWxlZEVsZW1lbnQmIGNh
bmRpZGF0ZUVsZW1lbnQpIGNvbnN0OwogICAgIGJvb2wgc3R5bGVTaGFyaW5nQ2FuZGlkYXRlTWF0
Y2hlc1J1bGVTZXQoY29uc3QgU3R5bGVkRWxlbWVudCYsIGNvbnN0IFJ1bGVTZXQqKSBjb25zdDsK
ICAgICBib29sIHNoYXJpbmdDYW5kaWRhdGVIYXNJZGVudGljYWxTdHlsZUFmZmVjdGluZ0F0dHJp
YnV0ZXMoY29uc3QgQ29udGV4dCYsIGNvbnN0IFN0eWxlZEVsZW1lbnQmIHNoYXJpbmdDYW5kaWRh
dGUpIGNvbnN0OwpAQCAtNTgsNiArNjEsOCBAQCBwcml2YXRlOgogICAgIGNvbnN0IERvY3VtZW50
JiBtX2RvY3VtZW50OwogICAgIGNvbnN0IERvY3VtZW50UnVsZVNldHMmIG1fcnVsZVNldHM7CiAg
ICAgY29uc3QgU2VsZWN0b3JGaWx0ZXImIG1fc2VsZWN0b3JGaWx0ZXI7CisKKyAgICBIYXNoTWFw
PGNvbnN0IFN0eWxlZEVsZW1lbnQqLCBjb25zdCBTdHlsZWRFbGVtZW50Kj4gbV9oYXNTYW1lU3R5
bGVNYXA7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNv
bHZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVz
b2x2ZXIuY3BwCShyZXZpc2lvbiAxOTg0ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVRyZWVSZXNvbHZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw4ICsxODYsOCBAQCBSZWY8
UmVuZGVyU3R5bGU+IFRyZWVSZXNvbHZlcjo6c3R5bGVGb3JFCiAgICAgICAgIH0KICAgICB9CiAK
LSAgICBpZiAoYXV0byogc2hhcmluZ0VsZW1lbnQgPSBzY29wZSgpLnNoYXJpbmdSZXNvbHZlci5y
ZXNvbHZlKGVsZW1lbnQpKQotICAgICAgICByZXR1cm4gKnNoYXJpbmdFbGVtZW50LT5yZW5kZXJT
dHlsZSgpOworICAgIGlmIChhdXRvIHN0eWxlID0gc2NvcGUoKS5zaGFyaW5nUmVzb2x2ZXIucmVz
b2x2ZShlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuICpzdHlsZTsKIAogICAgIGF1dG8gZWxlbWVu
dFN0eWxlID0gc2NvcGUoKS5zdHlsZVJlc29sdmVyLnN0eWxlRm9yRWxlbWVudChlbGVtZW50LCAm
aW5oZXJpdGVkU3R5bGUsIE1hdGNoQWxsUnVsZXMsIG51bGxwdHIsICZzY29wZSgpLnNlbGVjdG9y
RmlsdGVyKTsKIApAQCAtNjk3LDExICs2OTcsNiBAQCBDaGFuZ2UgVHJlZVJlc29sdmVyOjpyZXNv
bHZlRWxlbWVudChFbGVtCiAgICAgaWYgKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyID0gY3VycmVu
dC5yZW5kZXJlcigpKSB7CiAgICAgICAgIGlmIChsb2NhbENoYW5nZSAhPSBOb0NoYW5nZSB8fCBw
c2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKHJlbmRlcmVyLCBuZXdTdHlsZS5nZXQoKSkgfHwgKHBh
cmVudCgpLmNoYW5nZSA9PSBGb3JjZSAmJiByZW5kZXJlci0+cmVxdWlyZXNGb3JjZWRTdHlsZVJl
Y2FsY1Byb3BhZ2F0aW9uKCkpIHx8IGN1cnJlbnQuc3R5bGVDaGFuZ2VUeXBlKCkgPT0gU3ludGhl
dGljU3R5bGVDaGFuZ2UpCiAgICAgICAgICAgICByZW5kZXJlci0+c2V0QW5pbWF0YWJsZVN0eWxl
KCpuZXdTdHlsZSwgY3VycmVudC5zdHlsZUNoYW5nZVR5cGUoKSA9PSBTeW50aGV0aWNTdHlsZUNo
YW5nZSA/IFN0eWxlRGlmZmVyZW5jZVJlY29tcG9zaXRlTGF5ZXIgOiBTdHlsZURpZmZlcmVuY2VF
cXVhbCk7Ci0gICAgICAgIGVsc2UgaWYgKGN1cnJlbnQubmVlZHNTdHlsZVJlY2FsYygpKSB7Ci0g
ICAgICAgICAgICAvLyBBbHRob3VnaCBubyBjaGFuZ2Ugb2NjdXJyZWQsIHdlIHVzZSB0aGUgbmV3
IHN0eWxlIHNvIHRoYXQgdGhlIGNvdXNpbiBzdHlsZSBzaGFyaW5nIGNvZGUgd29uJ3QgZ2V0Ci0g
ICAgICAgICAgICAvLyBmb29sZWQgaW50byBiZWxpZXZpbmcgdGhpcyBzdHlsZSBpcyB0aGUgc2Ft
ZS4KLSAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZUludGVybmFsKCpuZXdTdHlsZSk7Ci0g
ICAgICAgIH0KICAgICB9CiAKICAgICAvLyBJZiAicmVtIiB1bml0cyBhcmUgdXNlZCBhbnl3aGVy
ZSBpbiB0aGUgZG9jdW1lbnQsIGFuZCBpZiB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGZvbnQgc2l6
ZSBjaGFuZ2VzLCB0aGVuIGZvcmNlIGZvbnQgdXBkYXRpbmcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274746</attachid>
            <date>2016-03-23 05:49:42 -0700</date>
            <delta_ts>2016-03-23 06:44:11 -0700</delta_ts>
            <desc>patch</desc>
            <filename>style-sharing-substructures-2.patch</filename>
            <type>text/plain</type>
            <size>10596</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODU4MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDE2LTAzLTIzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBTaGFyZSBzdHlsZSBieSBzaGFy
aW5nIFJlbmRlclN0eWxlIHN1YnN0cnVjdHVyZXMgbm90IHRoZSBvYmplY3QgaXRzZWxmCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU3ODcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY3VycmVudCBh
cHByb2FjaCB3aGVyZSB3ZSBzaGFyZSBSZW5kZXJTdHlsZSBvYmplY3RzIGJldHdlZW4gZWxlbWVu
dHMgbGVhZHMgdG8gbG90IG9mIGF3a3dhcmQgYW5kIGJ1Zy1wcm9uZSBjb2RlLgorICAgICAgICBN
b3N0IG9mIHRoZSBSZW5kZXJTdHlsZSBjb25zaXN0cyBvZiBzaGFyZWFibGUgc3Vic3RydWN0dXJl
cy4gSXQgaXMgYmV0dGVyIHRvIGp1c3Qgc2hhcmUgdGhvc2UuCisKKyAgICAgICAgV2l0aCB0aGlz
IHBhdGNoIHdlIGNyZWF0ZSBzaGFyZWQgc3R5bGVzIHdpdGggUmVuZGVyU3R5bGU6OmNsb25lKCku
IFNoYXJpbmcgaXMgdHJhY2VkIGFzIHN0YXRlIGluIFN0eWxlOjpTaGFyaW5nUmVzb2x2ZXIKKyAg
ICAgICAgaW5zdGVhZCBvZiByZWx5aW5nIG9uIFJlbmRlclN0eWxlIGVxdWFsaXR5IHRvIGxvY2F0
ZSBwb3RlbnRpYWwgc2hhcmluZyBjb3VzaW5zLgorCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisKKyAgICAgICAgICAgIG1fYWx0VGV4
dCB3YXMgbWlzc2luZyBmcm9tIG9wZXJhdG9yPT0KKyAgICAgICAgICAgIFRoaXMgd2FzIGV4cG9z
ZWQgYnkgVHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudCBjaGFuZ2UsIHRlc3RlZCBieSBmYXN0
L2Nzcy9hbHQtaW5oZXJpdC1pbml0aWFsLmh0bWwKKworICAgICAgICAqIHN0eWxlL1N0eWxlU2hh
cmluZ1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjplbGVtZW50SGFzRGly
ZWN0aW9uQXV0byk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2hhcmluZ1Jlc29sdmVyOjpy
ZXNvbHZlKToKKworICAgICAgICAgICAgU2F2ZSBzaGFyZSByZXN1bHRzIHRvIGEgbWFwLgorCisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2hhcmluZ1Jlc29sdmVyOjpmaW5kU2libGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2hhcmluZ1Jlc29sdmVyOjpsb2NhdGVDb3VzaW5MaXN0
KToKKworICAgICAgICAgICAgSW5zdGVhZCBvZiB0cmF2ZXJzaW5nIHdlIGNhbiBub3cganVzdCBk
byBhIGhhc2ggbG9va3VwIHRvIGxvY2F0ZSBhIGNhbmRpZGF0ZSBjb3VzaW4gbGlzdC4KKyAgICAg
ICAgICAgIFRoZXJlIGlzIG5vIG5lZWQgZm9yIHJlY3Vyc2lvbiBhbnltb3JlLCB0aGUgbWFwIGNv
dmVycyBzaGFyaW5nIGJleW9uZCBpbW1lZGlhdGUgc2libGluZ3MgdG9vLgorICAgICAgICAgICAg
UmVtb3ZlIG1vc3QgdGVzdHMgaGVyZSBhcyB0aGV5IGhhdmUgYmVlbiBhbHJlYWR5IGNvdmVyZWQg
d2hlbiBzaGFyaW5nIG9jY3VyZWQuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpjYW5TaGFy
ZVN0eWxlV2l0aENvbnRyb2wpOgorICAgICAgICAqIHN0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVy
Lmg6CisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6c3R5bGVGb3JFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50KToKKworICAgICAgICAg
ICAgTm8gbmVlZCB0byBkbyBmb3JjZWQgc2V0dGluZyBhbnltb3JlIGp1c3QgdG8gc3VwcG9ydCBz
dHlsZSBzaGFyaW5nLgorCiAyMDE2LTAzLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVc2UgUmVnaW9uIGluc3RlYWQgb2YgSW50UmVjdCBp
biBQYWdlQ2xpZW50IGFuZCBXZWJQYWdlUHJveHkgc2V0Vmlld05lZWRzRGlzcGxheSBtZXRob2QK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAJKHJldmlzaW9uIDE5ODQ4MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjQ0LDYgKzI0NCw3IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6b3BlcmF0b3IKICNlbmRpZgogICAgICAgICAmJiBjb250ZW50RGF0YUVxdWl2YWxl
bnQobykKICAgICAgICAgJiYgYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShtX2NvdW50ZXJEaXJlY3Rp
dmVzLCBvLm1fY291bnRlckRpcmVjdGl2ZXMpCisgICAgICAgICYmIG1fYWx0VGV4dCA9PSBvLm1f
YWx0VGV4dAogICAgICAgICAmJiBhcmVQb2ludGluZ1RvRXF1YWxEYXRhKG1fYm94U2hhZG93LCBv
Lm1fYm94U2hhZG93KQogICAgICAgICAmJiBhcmVQb2ludGluZ1RvRXF1YWxEYXRhKG1fd2lsbENo
YW5nZSwgby5tX3dpbGxDaGFuZ2UpCiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERhdGEo
bV9ib3hSZWZsZWN0LCBvLm1fYm94UmVmbGVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAJKHJldmlzaW9uIDE5ODQ4MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDIsNyArNDIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgU3R5bGUgewog
CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgY1N0eWxlU2VhcmNoVGhyZXNob2xkID0gMTA7Ci1zdGF0
aWMgY29uc3QgdW5zaWduZWQgY1N0eWxlU2VhcmNoTGV2ZWxUaHJlc2hvbGQgPSAxMDsKIAogc3Ry
dWN0IFNoYXJpbmdSZXNvbHZlcjo6Q29udGV4dCB7CiAgICAgY29uc3QgU3R5bGVkRWxlbWVudCYg
ZWxlbWVudDsKQEAgLTY4LDcgKzY3LDcgQEAgc3RhdGljIGlubGluZSBib29sIGVsZW1lbnRIYXNE
aXJlY3Rpb25BdQogICAgIHJldHVybiBpczxIVE1MRWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNh
c3Q8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpLmhhc0RpcmVjdGlvbkF1dG8oKTsKIH0KIAotY29uc3Qg
RWxlbWVudCogU2hhcmluZ1Jlc29sdmVyOjpyZXNvbHZlKGNvbnN0IEVsZW1lbnQmIHNlYXJjaEVs
ZW1lbnQpIGNvbnN0CitSZWZQdHI8UmVuZGVyU3R5bGU+IFNoYXJpbmdSZXNvbHZlcjo6cmVzb2x2
ZShjb25zdCBFbGVtZW50JiBzZWFyY2hFbGVtZW50KQogewogICAgIGlmICghaXM8U3R5bGVkRWxl
bWVudD4oc2VhcmNoRWxlbWVudCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTAzLDE0
ICsxMDIsMTMgQEAgY29uc3QgRWxlbWVudCogU2hhcmluZ1Jlc29sdmVyOjpyZXNvbHZlKAogCiAg
ICAgLy8gQ2hlY2sgcHJldmlvdXMgc2libGluZ3MgYW5kIHRoZWlyIGNvdXNpbnMuCiAgICAgdW5z
aWduZWQgY291bnQgPSAwOwotICAgIHVuc2lnbmVkIHZpc2l0ZWROb2RlQ291bnQgPSAwOwogICAg
IFN0eWxlZEVsZW1lbnQqIHNoYXJlRWxlbWVudCA9IG51bGxwdHI7CiAgICAgTm9kZSogY291c2lu
TGlzdCA9IGVsZW1lbnQucHJldmlvdXNTaWJsaW5nKCk7CiAgICAgd2hpbGUgKGNvdXNpbkxpc3Qp
IHsKICAgICAgICAgc2hhcmVFbGVtZW50ID0gZmluZFNpYmxpbmcoY29udGV4dCwgY291c2luTGlz
dCwgY291bnQpOwogICAgICAgICBpZiAoc2hhcmVFbGVtZW50KQogICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNvdXNpbkxpc3QgPSBsb2NhdGVDb3VzaW5MaXN0KGNvdXNpbkxpc3QtPnBhcmVu
dEVsZW1lbnQoKSwgdmlzaXRlZE5vZGVDb3VudCk7CisgICAgICAgIGNvdXNpbkxpc3QgPSBsb2Nh
dGVDb3VzaW5MaXN0KGNvdXNpbkxpc3QtPnBhcmVudEVsZW1lbnQoKSk7CiAgICAgfQogCiAgICAg
Ly8gSWYgd2UgaGF2ZSBleGhhdXN0ZWQgYWxsIG91ciBidWRnZXQgb3Igb3VyIGNvdXNpbnMuCkBA
IC0xMjcsNyArMTI1LDkgQEAgY29uc3QgRWxlbWVudCogU2hhcmluZ1Jlc29sdmVyOjpyZXNvbHZl
KAogICAgIGlmIChwYXJlbnRFbGVtZW50UHJldmVudHNTaGFyaW5nKHBhcmVudEVsZW1lbnQpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBzaGFyZUVsZW1lbnQ7CisgICAg
bV9lbGVtZW50c1NoYXJpbmdTdHlsZS5hZGQoJmVsZW1lbnQsIHNoYXJlRWxlbWVudCk7CisKKyAg
ICByZXR1cm4gUmVuZGVyU3R5bGU6OmNsb25lKHNoYXJlRWxlbWVudC0+cmVuZGVyU3R5bGUoKSk7
CiB9CiAKIFN0eWxlZEVsZW1lbnQqIFNoYXJpbmdSZXNvbHZlcjo6ZmluZFNpYmxpbmcoY29uc3Qg
Q29udGV4dCYgY29udGV4dCwgTm9kZSogbm9kZSwgdW5zaWduZWQmIGNvdW50KSBjb25zdApAQCAt
MTQzLDUwICsxNDMsMTUgQEAgU3R5bGVkRWxlbWVudCogU2hhcmluZ1Jlc29sdmVyOjpmaW5kU2li
bAogICAgIHJldHVybiBkb3duY2FzdDxTdHlsZWRFbGVtZW50Pihub2RlKTsKIH0KIAotTm9kZSog
U2hhcmluZ1Jlc29sdmVyOjpsb2NhdGVDb3VzaW5MaXN0KEVsZW1lbnQqIHBhcmVudCwgdW5zaWdu
ZWQmIHZpc2l0ZWROb2RlQ291bnQpIGNvbnN0CitOb2RlKiBTaGFyaW5nUmVzb2x2ZXI6OmxvY2F0
ZUNvdXNpbkxpc3QoRWxlbWVudCogcGFyZW50KSBjb25zdAogewotICAgIGlmICh2aXNpdGVkTm9k
ZUNvdW50ID49IGNTdHlsZVNlYXJjaFRocmVzaG9sZCAqIGNTdHlsZVNlYXJjaExldmVsVGhyZXNo
b2xkKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBpZiAoIWlzPFN0eWxlZEVsZW1lbnQ+
KHBhcmVudCkpCisgICAgYXV0byogZWxlbWVudFNoYXJpbmdQYXJlbnRTdHlsZSA9IG1fZWxlbWVu
dHNTaGFyaW5nU3R5bGUuZ2V0KHBhcmVudCk7CisgICAgaWYgKCFlbGVtZW50U2hhcmluZ1BhcmVu
dFN0eWxlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBhdXRvJiBzdHlsZWRQYXJlbnQg
PSBkb3duY2FzdDxTdHlsZWRFbGVtZW50PigqcGFyZW50KTsKLSAgICBpZiAoc3R5bGVkUGFyZW50
LmlubGluZVN0eWxlKCkpCisgICAgaWYgKHBhcmVudEVsZW1lbnRQcmV2ZW50c1NoYXJpbmcoKmVs
ZW1lbnRTaGFyaW5nUGFyZW50U3R5bGUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBp
ZiAoaXM8U1ZHRWxlbWVudD4oc3R5bGVkUGFyZW50KSAmJiBkb3duY2FzdDxTVkdFbGVtZW50Pihz
dHlsZWRQYXJlbnQpLmFuaW1hdGVkU01JTFN0eWxlUHJvcGVydGllcygpKQotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICBpZiAoc3R5bGVkUGFyZW50Lmhhc0lEKCkgJiYgbV9ydWxlU2V0cy5m
ZWF0dXJlcygpLmlkc0luUnVsZXMuY29udGFpbnMoc3R5bGVkUGFyZW50LmlkRm9yU3R5bGVSZXNv
bHV0aW9uKCkuaW1wbCgpKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBSZW5kZXJT
dHlsZSogcGFyZW50U3R5bGUgPSBzdHlsZWRQYXJlbnQucmVuZGVyU3R5bGUoKTsKLSAgICB1bnNp
Z25lZCBzdWJjb3VudCA9IDA7Ci0gICAgTm9kZSogdGhpc0NvdXNpbiA9ICZzdHlsZWRQYXJlbnQ7
Ci0gICAgTm9kZSogY3VycmVudE5vZGUgPSBzdHlsZWRQYXJlbnQucHJldmlvdXNTaWJsaW5nKCk7
Ci0KLSAgICAvLyBSZXNlcnZlIHRoZSB0cmllcyBmb3IgdGhpcyBsZXZlbC4gVGhpcyBlZmZlY3Rp
dmVseSBtYWtlcyBzdXJlIHRoYXQgdGhlIGFsZ29yaXRobQotICAgIC8vIHdpbGwgbmV2ZXIgZ28g
ZGVlcGVyIHRoYW4gY1N0eWxlU2VhcmNoTGV2ZWxUaHJlc2hvbGQgbGV2ZWxzIGludG8gcmVjdXJz
aW9uLgotICAgIHZpc2l0ZWROb2RlQ291bnQgKz0gY1N0eWxlU2VhcmNoVGhyZXNob2xkOwotICAg
IHdoaWxlICh0aGlzQ291c2luKSB7Ci0gICAgICAgIGZvciAoOyBjdXJyZW50Tm9kZTsgY3VycmVu
dE5vZGUgPSBjdXJyZW50Tm9kZS0+cHJldmlvdXNTaWJsaW5nKCkpIHsKLSAgICAgICAgICAgIGlm
ICgrK3N1YmNvdW50ID4gY1N0eWxlU2VhcmNoVGhyZXNob2xkKQotICAgICAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgICAgICAgICAgaWYgKCFpczxFbGVtZW50PigqY3VycmVudE5vZGUp
KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgYXV0byYgY3VycmVudEVs
ZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50PigqY3VycmVudE5vZGUpOwotICAgICAgICAgICAgaWYg
KGN1cnJlbnRFbGVtZW50LnJlbmRlclN0eWxlKCkgIT0gcGFyZW50U3R5bGUpCi0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoIWN1cnJlbnRFbGVtZW50Lmxhc3RDaGls
ZCgpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKCFwYXJlbnRF
bGVtZW50UHJldmVudHNTaGFyaW5nKGN1cnJlbnRFbGVtZW50KSkgewotICAgICAgICAgICAgICAg
IC8vIEFkanVzdCBmb3IgdW51c2VkIHJlc2VydmVkIHRyaWVzLgotICAgICAgICAgICAgICAgIHZp
c2l0ZWROb2RlQ291bnQgLT0gY1N0eWxlU2VhcmNoVGhyZXNob2xkIC0gc3ViY291bnQ7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnROb2RlLT5sYXN0Q2hpbGQoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgICAgICBjdXJyZW50Tm9kZSA9IGxvY2F0ZUNvdXNpbkxpc3QodGhp
c0NvdXNpbi0+cGFyZW50RWxlbWVudCgpLCB2aXNpdGVkTm9kZUNvdW50KTsKLSAgICAgICAgdGhp
c0NvdXNpbiA9IGN1cnJlbnROb2RlOwotICAgIH0KIAotICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBlbGVtZW50U2hhcmluZ1BhcmVudFN0eWxlLT5sYXN0Q2hpbGQoKTsKIH0KIAogc3Rh
dGljIGJvb2wgY2FuU2hhcmVTdHlsZVdpdGhDb250cm9sKGNvbnN0IEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGZvcm1FbGVtZW50
KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5oCShy
ZXZpc2lvbiAxOTg0ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNv
bHZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMiArMjYsMTUgQEAKICNpZm5kZWYgU3R5bGVT
aGFyaW5nUmVzb2x2ZXJfaAogI2RlZmluZSBTdHlsZVNoYXJpbmdSZXNvbHZlcl9oCiAKKyNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgRG9jdW1lbnRSdWxlU2V0czsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBOb2Rl
OworY2xhc3MgUmVuZGVyU3R5bGU7CiBjbGFzcyBSdWxlU2V0OwogY2xhc3MgU2VsZWN0b3JGaWx0
ZXI7CiBjbGFzcyBTcGFjZVNwbGl0U3RyaW5nOwpAQCAtNDMsMTMgKzQ2LDEzIEBAIGNsYXNzIFNo
YXJpbmdSZXNvbHZlciB7CiBwdWJsaWM6CiAgICAgU2hhcmluZ1Jlc29sdmVyKGNvbnN0IERvY3Vt
ZW50JiwgY29uc3QgRG9jdW1lbnRSdWxlU2V0cyYsIGNvbnN0IFNlbGVjdG9yRmlsdGVyJik7CiAK
LSAgICBjb25zdCBFbGVtZW50KiByZXNvbHZlKGNvbnN0IEVsZW1lbnQmKSBjb25zdDsKKyAgICBS
ZWZQdHI8UmVuZGVyU3R5bGU+IHJlc29sdmUoY29uc3QgRWxlbWVudCYpOwogCiBwcml2YXRlOgog
ICAgIHN0cnVjdCBDb250ZXh0OwogCiAgICAgU3R5bGVkRWxlbWVudCogZmluZFNpYmxpbmcoY29u
c3QgQ29udGV4dCYsIE5vZGUqLCB1bnNpZ25lZCYgY291bnQpIGNvbnN0OwotICAgIE5vZGUqIGxv
Y2F0ZUNvdXNpbkxpc3QoRWxlbWVudCogcGFyZW50LCB1bnNpZ25lZCYgdmlzaXRlZE5vZGVDb3Vu
dCkgY29uc3Q7CisgICAgTm9kZSogbG9jYXRlQ291c2luTGlzdChFbGVtZW50KiBwYXJlbnQpIGNv
bnN0OwogICAgIGJvb2wgY2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KGNvbnN0IENvbnRleHQmLCBj
b25zdCBTdHlsZWRFbGVtZW50JiBjYW5kaWRhdGVFbGVtZW50KSBjb25zdDsKICAgICBib29sIHN0
eWxlU2hhcmluZ0NhbmRpZGF0ZU1hdGNoZXNSdWxlU2V0KGNvbnN0IFN0eWxlZEVsZW1lbnQmLCBj
b25zdCBSdWxlU2V0KikgY29uc3Q7CiAgICAgYm9vbCBzaGFyaW5nQ2FuZGlkYXRlSGFzSWRlbnRp
Y2FsU3R5bGVBZmZlY3RpbmdBdHRyaWJ1dGVzKGNvbnN0IENvbnRleHQmLCBjb25zdCBTdHlsZWRF
bGVtZW50JiBzaGFyaW5nQ2FuZGlkYXRlKSBjb25zdDsKQEAgLTU4LDYgKzYxLDggQEAgcHJpdmF0
ZToKICAgICBjb25zdCBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBjb25zdCBEb2N1bWVudFJ1
bGVTZXRzJiBtX3J1bGVTZXRzOwogICAgIGNvbnN0IFNlbGVjdG9yRmlsdGVyJiBtX3NlbGVjdG9y
RmlsdGVyOworCisgICAgSGFzaE1hcDxjb25zdCBFbGVtZW50KiwgY29uc3QgRWxlbWVudCo+IG1f
ZWxlbWVudHNTaGFyaW5nU3R5bGU7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCShyZXZpc2lvbiAxOTg0ODMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw4
ICsxODYsOCBAQCBSZWY8UmVuZGVyU3R5bGU+IFRyZWVSZXNvbHZlcjo6c3R5bGVGb3JFCiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICBpZiAoYXV0byogc2hhcmluZ0VsZW1lbnQgPSBzY29wZSgpLnNo
YXJpbmdSZXNvbHZlci5yZXNvbHZlKGVsZW1lbnQpKQotICAgICAgICByZXR1cm4gKnNoYXJpbmdF
bGVtZW50LT5yZW5kZXJTdHlsZSgpOworICAgIGlmIChhdXRvIHN0eWxlID0gc2NvcGUoKS5zaGFy
aW5nUmVzb2x2ZXIucmVzb2x2ZShlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuICpzdHlsZTsKIAog
ICAgIGF1dG8gZWxlbWVudFN0eWxlID0gc2NvcGUoKS5zdHlsZVJlc29sdmVyLnN0eWxlRm9yRWxl
bWVudChlbGVtZW50LCAmaW5oZXJpdGVkU3R5bGUsIE1hdGNoQWxsUnVsZXMsIG51bGxwdHIsICZz
Y29wZSgpLnNlbGVjdG9yRmlsdGVyKTsKIApAQCAtNjk3LDExICs2OTcsNiBAQCBDaGFuZ2UgVHJl
ZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudChFbGVtCiAgICAgaWYgKFJlbmRlckVsZW1lbnQqIHJl
bmRlcmVyID0gY3VycmVudC5yZW5kZXJlcigpKSB7CiAgICAgICAgIGlmIChsb2NhbENoYW5nZSAh
PSBOb0NoYW5nZSB8fCBwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKHJlbmRlcmVyLCBuZXdTdHls
ZS5nZXQoKSkgfHwgKHBhcmVudCgpLmNoYW5nZSA9PSBGb3JjZSAmJiByZW5kZXJlci0+cmVxdWly
ZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkpIHx8IGN1cnJlbnQuc3R5bGVDaGFuZ2VU
eXBlKCkgPT0gU3ludGhldGljU3R5bGVDaGFuZ2UpCiAgICAgICAgICAgICByZW5kZXJlci0+c2V0
QW5pbWF0YWJsZVN0eWxlKCpuZXdTdHlsZSwgY3VycmVudC5zdHlsZUNoYW5nZVR5cGUoKSA9PSBT
eW50aGV0aWNTdHlsZUNoYW5nZSA/IFN0eWxlRGlmZmVyZW5jZVJlY29tcG9zaXRlTGF5ZXIgOiBT
dHlsZURpZmZlcmVuY2VFcXVhbCk7Ci0gICAgICAgIGVsc2UgaWYgKGN1cnJlbnQubmVlZHNTdHls
ZVJlY2FsYygpKSB7Ci0gICAgICAgICAgICAvLyBBbHRob3VnaCBubyBjaGFuZ2Ugb2NjdXJyZWQs
IHdlIHVzZSB0aGUgbmV3IHN0eWxlIHNvIHRoYXQgdGhlIGNvdXNpbiBzdHlsZSBzaGFyaW5nIGNv
ZGUgd29uJ3QgZ2V0Ci0gICAgICAgICAgICAvLyBmb29sZWQgaW50byBiZWxpZXZpbmcgdGhpcyBz
dHlsZSBpcyB0aGUgc2FtZS4KLSAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZUludGVybmFs
KCpuZXdTdHlsZSk7Ci0gICAgICAgIH0KICAgICB9CiAKICAgICAvLyBJZiAicmVtIiB1bml0cyBh
cmUgdXNlZCBhbnl3aGVyZSBpbiB0aGUgZG9jdW1lbnQsIGFuZCBpZiB0aGUgZG9jdW1lbnQgZWxl
bWVudCdzIGZvbnQgc2l6ZSBjaGFuZ2VzLCB0aGVuIGZvcmNlIGZvbnQgdXBkYXRpbmcK
</data>
<flag name="review"
          id="299157"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274748</attachid>
            <date>2016-03-23 06:44:11 -0700</date>
            <delta_ts>2016-03-23 06:44:11 -0700</delta_ts>
            <desc>patch</desc>
            <filename>style-sharing-substructures-3.patch</filename>
            <type>text/plain</type>
            <size>10736</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODU4MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDE2LTAzLTIzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBTaGFyZSBzdHlsZSBieSBzaGFy
aW5nIFJlbmRlclN0eWxlIHN1YnN0cnVjdHVyZXMgbm90IHRoZSBvYmplY3QgaXRzZWxmCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU3ODcKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbnJlYXMgS2xpbmcuCisKKyAgICAgICAgVGhlIGN1cnJlbnQgYXBw
cm9hY2ggd2hlcmUgd2Ugc2hhcmUgUmVuZGVyU3R5bGUgb2JqZWN0cyBiZXR3ZWVuIGVsZW1lbnRz
IGxlYWRzIHRvIGxvdCBvZiBhd2t3YXJkIGFuZCBidWctcHJvbmUgY29kZS4KKyAgICAgICAgTW9z
dCBvZiB0aGUgUmVuZGVyU3R5bGUgY29uc2lzdHMgb2Ygc2hhcmVhYmxlIHN1YnN0cnVjdHVyZXMu
IEl0IGlzIGJldHRlciB0byBqdXN0IHNoYXJlIHRob3NlLgorCisgICAgICAgIFdpdGggdGhpcyBw
YXRjaCB3ZSBjcmVhdGUgc2hhcmVkIHN0eWxlcyB3aXRoIFJlbmRlclN0eWxlOjpjbG9uZSgpLiBT
aGFyaW5nIGlzIHRyYWNlZCBhcyBzdGF0ZSBpbiBTdHlsZTo6U2hhcmluZ1Jlc29sdmVyCisgICAg
ICAgIGluc3RlYWQgb2YgcmVseWluZyBvbiBSZW5kZXJTdHlsZSBlcXVhbGl0eSB0byBsb2NhdGUg
cG90ZW50aWFsIHNoYXJpbmcgY291c2lucy4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgorCisgICAgICAgICAgICBtX2FsdFRleHQg
d2FzIG1pc3NpbmcgZnJvbSBvcGVyYXRvcj09CisgICAgICAgICAgICBUaGlzIHdhcyBleHBvc2Vk
IGJ5IFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQgY2hhbmdlLCB0ZXN0ZWQgYnkgZmFzdC9j
c3MvYWx0LWluaGVyaXQtaW5pdGlhbC5odG1sCisKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNoYXJp
bmdSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6ZWxlbWVudEhhc0RpcmVj
dGlvbkF1dG8pOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNoYXJpbmdSZXNvbHZlcjo6cmVz
b2x2ZSk6CisKKyAgICAgICAgICAgIFNhdmUgc2hhcmUgcmVzdWx0cyB0byBhIG1hcC4KKworICAg
ICAgICAoV2ViQ29yZTo6U3R5bGU6OlNoYXJpbmdSZXNvbHZlcjo6ZmluZFNpYmxpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGU6OlNoYXJpbmdSZXNvbHZlcjo6bG9jYXRlQ291c2luTGlzdCk6
CisKKyAgICAgICAgICAgIEluc3RlYWQgb2YgdHJhdmVyc2luZyB3ZSBjYW4gbm93IGp1c3QgZG8g
YSBoYXNoIGxvb2t1cCB0byBsb2NhdGUgYSBjYW5kaWRhdGUgY291c2luIGxpc3QuCisgICAgICAg
ICAgICBUaGVyZSBpcyBubyBuZWVkIGZvciByZWN1cnNpb24gYW55bW9yZSwgdGhlIG1hcCBjb3Zl
cnMgc2hhcmluZyBiZXlvbmQgaW1tZWRpYXRlIHNpYmxpbmdzIHRvby4KKyAgICAgICAgICAgIFJl
bW92ZSBtb3N0IHRlc3RzIGhlcmUgYXMgdGhleSBoYXZlIGJlZW4gYWxyZWFkeSBjb3ZlcmVkIHdo
ZW4gc2hhcmluZyBvY2N1cmVkLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6Y2FuU2hhcmVT
dHlsZVdpdGhDb250cm9sKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5o
OgorICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudCk6CisKKyAgICAgICAgICAg
IE5vIG5lZWQgdG8gZG8gZm9yY2VkIHNldHRpbmcgYW55bW9yZSBqdXN0IHRvIHN1cHBvcnQgc3R5
bGUgc2hhcmluZy4KKwogMjAxNi0wMy0yMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgVXNlIFJlZ2lvbiBpbnN0ZWFkIG9mIEludFJlY3QgaW4g
UGFnZUNsaWVudCBhbmQgV2ViUGFnZVByb3h5IHNldFZpZXdOZWVkc0Rpc3BsYXkgbWV0aG9kCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCShyZXZpc2lvbiAxOTg0ODMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0NCw2ICsyNDQsNyBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGE6Om9wZXJhdG9yCiAjZW5kaWYKICAgICAgICAgJiYgY29udGVudERhdGFFcXVpdmFsZW50
KG8pCiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERhdGEobV9jb3VudGVyRGlyZWN0aXZl
cywgby5tX2NvdW50ZXJEaXJlY3RpdmVzKQorICAgICAgICAmJiBtX2FsdFRleHQgPT0gby5tX2Fs
dFRleHQKICAgICAgICAgJiYgYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShtX2JveFNoYWRvdywgby5t
X2JveFNoYWRvdykKICAgICAgICAgJiYgYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShtX3dpbGxDaGFu
Z2UsIG8ubV93aWxsQ2hhbmdlKQogICAgICAgICAmJiBhcmVQb2ludGluZ1RvRXF1YWxEYXRhKG1f
Ym94UmVmbGVjdCwgby5tX2JveFJlZmxlY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCShyZXZpc2lvbiAxOTg0ODMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQyLDcgKzQyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIFN0eWxlIHsKIAog
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGNTdHlsZVNlYXJjaFRocmVzaG9sZCA9IDEwOwotc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGNTdHlsZVNlYXJjaExldmVsVGhyZXNob2xkID0gMTA7CiAKIHN0cnVj
dCBTaGFyaW5nUmVzb2x2ZXI6OkNvbnRleHQgewogICAgIGNvbnN0IFN0eWxlZEVsZW1lbnQmIGVs
ZW1lbnQ7CkBAIC02OCw3ICs2Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBlbGVtZW50SGFzRGly
ZWN0aW9uQXUKICAgICByZXR1cm4gaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpICYmIGRvd25jYXN0
PEhUTUxFbGVtZW50PihlbGVtZW50KS5oYXNEaXJlY3Rpb25BdXRvKCk7CiB9CiAKLWNvbnN0IEVs
ZW1lbnQqIFNoYXJpbmdSZXNvbHZlcjo6cmVzb2x2ZShjb25zdCBFbGVtZW50JiBzZWFyY2hFbGVt
ZW50KSBjb25zdAorUmVmUHRyPFJlbmRlclN0eWxlPiBTaGFyaW5nUmVzb2x2ZXI6OnJlc29sdmUo
Y29uc3QgRWxlbWVudCYgc2VhcmNoRWxlbWVudCkKIHsKICAgICBpZiAoIWlzPFN0eWxlZEVsZW1l
bnQ+KHNlYXJjaEVsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTEwMywxNCAr
MTAyLDEzIEBAIGNvbnN0IEVsZW1lbnQqIFNoYXJpbmdSZXNvbHZlcjo6cmVzb2x2ZSgKIAogICAg
IC8vIENoZWNrIHByZXZpb3VzIHNpYmxpbmdzIGFuZCB0aGVpciBjb3VzaW5zLgogICAgIHVuc2ln
bmVkIGNvdW50ID0gMDsKLSAgICB1bnNpZ25lZCB2aXNpdGVkTm9kZUNvdW50ID0gMDsKICAgICBT
dHlsZWRFbGVtZW50KiBzaGFyZUVsZW1lbnQgPSBudWxscHRyOwogICAgIE5vZGUqIGNvdXNpbkxp
c3QgPSBlbGVtZW50LnByZXZpb3VzU2libGluZygpOwogICAgIHdoaWxlIChjb3VzaW5MaXN0KSB7
CiAgICAgICAgIHNoYXJlRWxlbWVudCA9IGZpbmRTaWJsaW5nKGNvbnRleHQsIGNvdXNpbkxpc3Qs
IGNvdW50KTsKICAgICAgICAgaWYgKHNoYXJlRWxlbWVudCkKICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjb3VzaW5MaXN0ID0gbG9jYXRlQ291c2luTGlzdChjb3VzaW5MaXN0LT5wYXJlbnRF
bGVtZW50KCksIHZpc2l0ZWROb2RlQ291bnQpOworICAgICAgICBjb3VzaW5MaXN0ID0gbG9jYXRl
Q291c2luTGlzdChjb3VzaW5MaXN0LT5wYXJlbnRFbGVtZW50KCkpOwogICAgIH0KIAogICAgIC8v
IElmIHdlIGhhdmUgZXhoYXVzdGVkIGFsbCBvdXIgYnVkZ2V0IG9yIG91ciBjb3VzaW5zLgpAQCAt
MTI3LDcgKzEyNSw5IEBAIGNvbnN0IEVsZW1lbnQqIFNoYXJpbmdSZXNvbHZlcjo6cmVzb2x2ZSgK
ICAgICBpZiAocGFyZW50RWxlbWVudFByZXZlbnRzU2hhcmluZyhwYXJlbnRFbGVtZW50KSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gc2hhcmVFbGVtZW50OworICAgIG1f
ZWxlbWVudHNTaGFyaW5nU3R5bGUuYWRkKCZlbGVtZW50LCBzaGFyZUVsZW1lbnQpOworCisgICAg
cmV0dXJuIFJlbmRlclN0eWxlOjpjbG9uZShzaGFyZUVsZW1lbnQtPnJlbmRlclN0eWxlKCkpOwog
fQogCiBTdHlsZWRFbGVtZW50KiBTaGFyaW5nUmVzb2x2ZXI6OmZpbmRTaWJsaW5nKGNvbnN0IENv
bnRleHQmIGNvbnRleHQsIE5vZGUqIG5vZGUsIHVuc2lnbmVkJiBjb3VudCkgY29uc3QKQEAgLTE0
Myw0NyArMTQzLDE4IEBAIFN0eWxlZEVsZW1lbnQqIFNoYXJpbmdSZXNvbHZlcjo6ZmluZFNpYmwK
ICAgICByZXR1cm4gZG93bmNhc3Q8U3R5bGVkRWxlbWVudD4obm9kZSk7CiB9CiAKLU5vZGUqIFNo
YXJpbmdSZXNvbHZlcjo6bG9jYXRlQ291c2luTGlzdChFbGVtZW50KiBwYXJlbnQsIHVuc2lnbmVk
JiB2aXNpdGVkTm9kZUNvdW50KSBjb25zdAorTm9kZSogU2hhcmluZ1Jlc29sdmVyOjpsb2NhdGVD
b3VzaW5MaXN0KGNvbnN0IEVsZW1lbnQqIHBhcmVudCkgY29uc3QKIHsKLSAgICBpZiAodmlzaXRl
ZE5vZGVDb3VudCA+PSBjU3R5bGVTZWFyY2hUaHJlc2hvbGQgKiBjU3R5bGVTZWFyY2hMZXZlbFRo
cmVzaG9sZCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKCFpczxTdHlsZWRFbGVt
ZW50PihwYXJlbnQpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBhdXRvJiBzdHlsZWRQ
YXJlbnQgPSBkb3duY2FzdDxTdHlsZWRFbGVtZW50PigqcGFyZW50KTsKLSAgICBpZiAoc3R5bGVk
UGFyZW50LmlubGluZVN0eWxlKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlmIChp
czxTVkdFbGVtZW50PihzdHlsZWRQYXJlbnQpICYmIGRvd25jYXN0PFNWR0VsZW1lbnQ+KHN0eWxl
ZFBhcmVudCkuYW5pbWF0ZWRTTUlMU3R5bGVQcm9wZXJ0aWVzKCkpCi0gICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgIGlmIChzdHlsZWRQYXJlbnQuaGFzSUQoKSAmJiBtX3J1bGVTZXRzLmZlYXR1
cmVzKCkuaWRzSW5SdWxlcy5jb250YWlucyhzdHlsZWRQYXJlbnQuaWRGb3JTdHlsZVJlc29sdXRp
b24oKS5pbXBsKCkpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIFJlbmRlclN0eWxl
KiBwYXJlbnRTdHlsZSA9IHN0eWxlZFBhcmVudC5yZW5kZXJTdHlsZSgpOwotICAgIHVuc2lnbmVk
IHN1YmNvdW50ID0gMDsKLSAgICBOb2RlKiB0aGlzQ291c2luID0gJnN0eWxlZFBhcmVudDsKLSAg
ICBOb2RlKiBjdXJyZW50Tm9kZSA9IHN0eWxlZFBhcmVudC5wcmV2aW91c1NpYmxpbmcoKTsKLQot
ICAgIC8vIFJlc2VydmUgdGhlIHRyaWVzIGZvciB0aGlzIGxldmVsLiBUaGlzIGVmZmVjdGl2ZWx5
IG1ha2VzIHN1cmUgdGhhdCB0aGUgYWxnb3JpdGhtCi0gICAgLy8gd2lsbCBuZXZlciBnbyBkZWVw
ZXIgdGhhbiBjU3R5bGVTZWFyY2hMZXZlbFRocmVzaG9sZCBsZXZlbHMgaW50byByZWN1cnNpb24u
Ci0gICAgdmlzaXRlZE5vZGVDb3VudCArPSBjU3R5bGVTZWFyY2hUaHJlc2hvbGQ7Ci0gICAgd2hp
bGUgKHRoaXNDb3VzaW4pIHsKLSAgICAgICAgZm9yICg7IGN1cnJlbnROb2RlOyBjdXJyZW50Tm9k
ZSA9IGN1cnJlbnROb2RlLT5wcmV2aW91c1NpYmxpbmcoKSkgewotICAgICAgICAgICAgaWYgKCsr
c3ViY291bnQgPiBjU3R5bGVTZWFyY2hUaHJlc2hvbGQpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgICAgICBpZiAoIWlzPEVsZW1lbnQ+KCpjdXJyZW50Tm9kZSkpCi0g
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBhdXRvJiBjdXJyZW50RWxlbWVu
dCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpjdXJyZW50Tm9kZSk7Ci0gICAgICAgICAgICBpZiAoY3Vy
cmVudEVsZW1lbnQucmVuZGVyU3R5bGUoKSAhPSBwYXJlbnRTdHlsZSkKLSAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICghY3VycmVudEVsZW1lbnQubGFzdENoaWxkKCkp
Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoIXBhcmVudEVsZW1l
bnRQcmV2ZW50c1NoYXJpbmcoY3VycmVudEVsZW1lbnQpKSB7Ci0gICAgICAgICAgICAgICAgLy8g
QWRqdXN0IGZvciB1bnVzZWQgcmVzZXJ2ZWQgdHJpZXMuCi0gICAgICAgICAgICAgICAgdmlzaXRl
ZE5vZGVDb3VudCAtPSBjU3R5bGVTZWFyY2hUaHJlc2hvbGQgLSBzdWJjb3VudDsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gY3VycmVudE5vZGUtPmxhc3RDaGlsZCgpOwotICAgICAgICAgICAgfQor
ICAgIGNvbnN0IHVuc2lnbmVkIG1heGltdW1TZWFyY2hDb3VudCA9IDEwOworICAgIGZvciAodW5z
aWduZWQgY291bnQgPSAwOyBjb3VudCA8IG1heGltdW1TZWFyY2hDb3VudDsgKytjb3VudCkgewor
ICAgICAgICBhdXRvKiBlbGVtZW50U2hhcmluZ1BhcmVudFN0eWxlID0gbV9lbGVtZW50c1NoYXJp
bmdTdHlsZS5nZXQocGFyZW50KTsKKyAgICAgICAgaWYgKCFlbGVtZW50U2hhcmluZ1BhcmVudFN0
eWxlKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGlmICghcGFyZW50RWxl
bWVudFByZXZlbnRzU2hhcmluZygqZWxlbWVudFNoYXJpbmdQYXJlbnRTdHlsZSkpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvKiBjb3VzaW4gPSBlbGVtZW50U2hhcmluZ1BhcmVudFN0eWxlLT5sYXN0
Q2hpbGQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY291c2luOwogICAgICAgICB9Ci0gICAg
ICAgIGN1cnJlbnROb2RlID0gbG9jYXRlQ291c2luTGlzdCh0aGlzQ291c2luLT5wYXJlbnRFbGVt
ZW50KCksIHZpc2l0ZWROb2RlQ291bnQpOwotICAgICAgICB0aGlzQ291c2luID0gY3VycmVudE5v
ZGU7CisgICAgICAgIHBhcmVudCA9IGVsZW1lbnRTaGFyaW5nUGFyZW50U3R5bGU7CiAgICAgfQog
CiAgICAgcmV0dXJuIG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNo
YXJpbmdSZXNvbHZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
U2hhcmluZ1Jlc29sdmVyLmgJKHJldmlzaW9uIDE5ODQ4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDEyICsyNiwx
NSBAQAogI2lmbmRlZiBTdHlsZVNoYXJpbmdSZXNvbHZlcl9oCiAjZGVmaW5lIFN0eWxlU2hhcmlu
Z1Jlc29sdmVyX2gKIAorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBEb2N1bWVudFJ1bGVTZXRzOwogY2xhc3Mg
RWxlbWVudDsKIGNsYXNzIE5vZGU7CitjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJ1bGVTZXQ7
CiBjbGFzcyBTZWxlY3RvckZpbHRlcjsKIGNsYXNzIFNwYWNlU3BsaXRTdHJpbmc7CkBAIC00Mywx
MyArNDYsMTMgQEAgY2xhc3MgU2hhcmluZ1Jlc29sdmVyIHsKIHB1YmxpYzoKICAgICBTaGFyaW5n
UmVzb2x2ZXIoY29uc3QgRG9jdW1lbnQmLCBjb25zdCBEb2N1bWVudFJ1bGVTZXRzJiwgY29uc3Qg
U2VsZWN0b3JGaWx0ZXImKTsKIAotICAgIGNvbnN0IEVsZW1lbnQqIHJlc29sdmUoY29uc3QgRWxl
bWVudCYpIGNvbnN0OworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gcmVzb2x2ZShjb25zdCBFbGVt
ZW50Jik7CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IENvbnRleHQ7CiAKICAgICBTdHlsZWRFbGVt
ZW50KiBmaW5kU2libGluZyhjb25zdCBDb250ZXh0JiwgTm9kZSosIHVuc2lnbmVkJiBjb3VudCkg
Y29uc3Q7Ci0gICAgTm9kZSogbG9jYXRlQ291c2luTGlzdChFbGVtZW50KiBwYXJlbnQsIHVuc2ln
bmVkJiB2aXNpdGVkTm9kZUNvdW50KSBjb25zdDsKKyAgICBOb2RlKiBsb2NhdGVDb3VzaW5MaXN0
KGNvbnN0IEVsZW1lbnQqIHBhcmVudCkgY29uc3Q7CiAgICAgYm9vbCBjYW5TaGFyZVN0eWxlV2l0
aEVsZW1lbnQoY29uc3QgQ29udGV4dCYsIGNvbnN0IFN0eWxlZEVsZW1lbnQmIGNhbmRpZGF0ZUVs
ZW1lbnQpIGNvbnN0OwogICAgIGJvb2wgc3R5bGVTaGFyaW5nQ2FuZGlkYXRlTWF0Y2hlc1J1bGVT
ZXQoY29uc3QgU3R5bGVkRWxlbWVudCYsIGNvbnN0IFJ1bGVTZXQqKSBjb25zdDsKICAgICBib29s
IHNoYXJpbmdDYW5kaWRhdGVIYXNJZGVudGljYWxTdHlsZUFmZmVjdGluZ0F0dHJpYnV0ZXMoY29u
c3QgQ29udGV4dCYsIGNvbnN0IFN0eWxlZEVsZW1lbnQmIHNoYXJpbmdDYW5kaWRhdGUpIGNvbnN0
OwpAQCAtNTgsNiArNjEsOCBAQCBwcml2YXRlOgogICAgIGNvbnN0IERvY3VtZW50JiBtX2RvY3Vt
ZW50OwogICAgIGNvbnN0IERvY3VtZW50UnVsZVNldHMmIG1fcnVsZVNldHM7CiAgICAgY29uc3Qg
U2VsZWN0b3JGaWx0ZXImIG1fc2VsZWN0b3JGaWx0ZXI7CisKKyAgICBIYXNoTWFwPGNvbnN0IEVs
ZW1lbnQqLCBjb25zdCBFbGVtZW50Kj4gbV9lbGVtZW50c1NoYXJpbmdTdHlsZTsKIH07CiAKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAJKHJldmlz
aW9uIDE5ODQ4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTg2LDggKzE4Niw4IEBAIFJlZjxSZW5kZXJTdHlsZT4gVHJl
ZVJlc29sdmVyOjpzdHlsZUZvckUKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChhdXRvKiBz
aGFyaW5nRWxlbWVudCA9IHNjb3BlKCkuc2hhcmluZ1Jlc29sdmVyLnJlc29sdmUoZWxlbWVudCkp
Ci0gICAgICAgIHJldHVybiAqc2hhcmluZ0VsZW1lbnQtPnJlbmRlclN0eWxlKCk7CisgICAgaWYg
KGF1dG8gc3R5bGUgPSBzY29wZSgpLnNoYXJpbmdSZXNvbHZlci5yZXNvbHZlKGVsZW1lbnQpKQor
ICAgICAgICByZXR1cm4gKnN0eWxlOwogCiAgICAgYXV0byBlbGVtZW50U3R5bGUgPSBzY29wZSgp
LnN0eWxlUmVzb2x2ZXIuc3R5bGVGb3JFbGVtZW50KGVsZW1lbnQsICZpbmhlcml0ZWRTdHlsZSwg
TWF0Y2hBbGxSdWxlcywgbnVsbHB0ciwgJnNjb3BlKCkuc2VsZWN0b3JGaWx0ZXIpOwogCkBAIC02
OTcsMTEgKzY5Nyw2IEBAIENoYW5nZSBUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50KEVsZW0K
ICAgICBpZiAoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIgPSBjdXJyZW50LnJlbmRlcmVyKCkpIHsK
ICAgICAgICAgaWYgKGxvY2FsQ2hhbmdlICE9IE5vQ2hhbmdlIHx8IHBzZXVkb1N0eWxlQ2FjaGVJ
c0ludmFsaWQocmVuZGVyZXIsIG5ld1N0eWxlLmdldCgpKSB8fCAocGFyZW50KCkuY2hhbmdlID09
IEZvcmNlICYmIHJlbmRlcmVyLT5yZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24o
KSkgfHwgY3VycmVudC5zdHlsZUNoYW5nZVR5cGUoKSA9PSBTeW50aGV0aWNTdHlsZUNoYW5nZSkK
ICAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRBbmltYXRhYmxlU3R5bGUoKm5ld1N0eWxlLCBjdXJy
ZW50LnN0eWxlQ2hhbmdlVHlwZSgpID09IFN5bnRoZXRpY1N0eWxlQ2hhbmdlID8gU3R5bGVEaWZm
ZXJlbmNlUmVjb21wb3NpdGVMYXllciA6IFN0eWxlRGlmZmVyZW5jZUVxdWFsKTsKLSAgICAgICAg
ZWxzZSBpZiAoY3VycmVudC5uZWVkc1N0eWxlUmVjYWxjKCkpIHsKLSAgICAgICAgICAgIC8vIEFs
dGhvdWdoIG5vIGNoYW5nZSBvY2N1cnJlZCwgd2UgdXNlIHRoZSBuZXcgc3R5bGUgc28gdGhhdCB0
aGUgY291c2luIHN0eWxlIHNoYXJpbmcgY29kZSB3b24ndCBnZXQKLSAgICAgICAgICAgIC8vIGZv
b2xlZCBpbnRvIGJlbGlldmluZyB0aGlzIHN0eWxlIGlzIHRoZSBzYW1lLgotICAgICAgICAgICAg
cmVuZGVyZXItPnNldFN0eWxlSW50ZXJuYWwoKm5ld1N0eWxlKTsKLSAgICAgICAgfQogICAgIH0K
IAogICAgIC8vIElmICJyZW0iIHVuaXRzIGFyZSB1c2VkIGFueXdoZXJlIGluIHRoZSBkb2N1bWVu
dCwgYW5kIGlmIHRoZSBkb2N1bWVudCBlbGVtZW50J3MgZm9udCBzaXplIGNoYW5nZXMsIHRoZW4g
Zm9yY2UgZm9udCB1cGRhdGluZwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>