<?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>149439</bug_id>
          
          <creation_ts>2015-09-21 18:14:06 -0700</creation_ts>
          <short_desc>Shadow DOM: Implement display: contents for slots</short_desc>
          <delta_ts>2016-04-07 03:29:55 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148695</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eoconnor</cc>
    
    <cc>koivisto</cc>
    
    <cc>mike</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1127871</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-09-21 18:14:06 -0700</bug_when>
    <thetext>The slot elements should have the default style rule of &quot;display: contents&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127872</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-09-21 18:14:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/22731922&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181280</commentid>
    <comment_count>2</comment_count>
      <attachid>275779</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-04-06 10:12:16 -0700</bug_when>
    <thetext>Created attachment 275779
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181281</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-06 10:13:33 -0700</bug_when>
    <thetext>Attachment 275779 did not pass style-queue:


ERROR: Source/WebCore/rendering/style/RenderStyleConstants.h:566:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 1 in 16 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>1181290</commentid>
    <comment_count>4</comment_count>
      <attachid>275782</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-04-06 10:45:30 -0700</bug_when>
    <thetext>Created attachment 275782
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181291</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-06 10:47:33 -0700</bug_when>
    <thetext>Attachment 275782 did not pass style-queue:


ERROR: Source/WebCore/rendering/style/RenderStyleConstants.h:566:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 1 in 16 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>1181420</commentid>
    <comment_count>6</comment_count>
      <attachid>275782</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-06 15:00:21 -0700</bug_when>
    <thetext>Comment on attachment 275782
patch

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

&gt; Source/WebCore/dom/ElementRareData.h:132
&gt; +    unsigned m_hasDisplayContents : 1;

It&apos;s unfortunate that we have to use rare data for this.
It&apos;s interesting that we have bit flags about m_childrenAffectedByHover and m_childrenAffectedByLastChildRules
when there are three node flags of a similar stuff:
        ChildrenAffectedByFirstChildRulesFlag = 1 &lt;&lt; 25,
        ChildrenAffectedByLastChildRulesFlag = 1 &lt;&lt; 26,
        ChildrenAffectedByHoverRulesFlag = 1 &lt;&lt; 27,
perhaps we need to re-think about these bit flags...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181616</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-04-07 02:13:54 -0700</bug_when>
    <thetext>&gt; It&apos;s interesting that we have bit flags about m_childrenAffectedByHover and
&gt; m_childrenAffectedByLastChildRules
&gt; when there are three node flags of a similar stuff:
&gt;         ChildrenAffectedByFirstChildRulesFlag = 1 &lt;&lt; 25,
&gt;         ChildrenAffectedByLastChildRulesFlag = 1 &lt;&lt; 26,
&gt;         ChildrenAffectedByHoverRulesFlag = 1 &lt;&lt; 27,
&gt; perhaps we need to re-think about these bit flags...

I think these are assumed to be more common. I&apos;d like to move all style invalidation flags to a separate structure and out from Nodes themselves. They are not hot enough that we couldn&apos;t afford hash lookups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181633</commentid>
    <comment_count>8</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-04-07 03:29:55 -0700</bug_when>
    <thetext>https://trac.webkit.org/r199154</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275779</attachid>
            <date>2016-04-06 10:12:16 -0700</date>
            <delta_ts>2016-04-06 10:45:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>display-contents-slot-3.patch</filename>
            <type>text/plain</type>
            <size>19154</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTEwMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg5IEBACisyMDE2LTA0LTA2ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgZGlzcGxheTog
Y29udGVudHMgZm9yIHNsb3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDk0MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNzMxOTIyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkIHN1cHBvcnQgZm9yIGRpc3BsYXk6Y29udGVudHMgdmFsdWUgZm9yIDxzbG90PiBlbGVtZW50
cyBvbmx5LiBUaGUgdmFsdWUgaXMgaWdub3JlZCBmb3Igb3RoZXIgZWxlbWVudHMuCisKKyAgICAg
ICAgU2xvdHMgYWxyZWFkeSBoYWQgaW1wbGljaXQgZGlzcGxheTpjb250ZW50cy4gV2l0aCB0aGlz
IHBhdGNoIHRoZSB2YWx1ZSBjb21lcyBmcm9tIHVzZXIgYWdlbnQgc3R5bGVzaGVldCBhbmQgY2Fu
IGJlCisgICAgICAgIG92ZXJyaWRlbiBieSB0aGUgYXV0aG9yLgorCisgICAgICAgICogY3NzL0NT
U1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5k
VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorCisgICAgICAgICAgICBTdXBvcnQgcGFy
c2luZyBkaXNwbGF5OiBjb250ZW50cy4KKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmVxdWl2YWxlbnRCbG9ja0Rpc3BsYXkpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGUpOgorCisgICAgICAgICAg
ICBEaXNhbGxvdyBmb3Igbm9uLXNsb3RzIGZvciBub3cuCisKKyAgICAgICAgKiBjc3MvaHRtbC5j
c3M6CisgICAgICAgIChzbG90KToKKworICAgICAgICAgICAgQWRkIHNsb3QgeyBkaXNwbGF5OiBj
b250ZW50cyB9IHRvIFVBIHNoZWV0LgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVzb2x2ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6Omhhc0Rpc3BsYXlDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjpzZXRIYXNEaXNwbGF5Q29udGVudHMpOgorCisgICAgICAgICAgICBBZGQgYSByYXJlIGRhdGEg
Yml0IGZvciBlbGVtZW50cyB3aXRoIGRpc3BsYXk6Y29udGVudHMgKGFzIHdlIGRvbid0IHNhdmUg
dGhlIFJlbmRlclN0eWxlIGZvciB0aGVtKS4KKworICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
cmVuZGVyZXJJc05lZWRlZCk6CisKKyAgICAgICAgICAgIERvbid0IG5lZWQgcmVuZGVyZXIgZm9y
IGRpc3BsYXk6Y29udGVudHMuCisKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmlzVmlzaWJsZUluVmlld3BvcnRDaGFuZ2VkKToKKyAgICAgICAgKiBkb20v
RWxlbWVudEFuZFRleHREZXNjZW5kYW50SXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yOjpvcGVyYXRvciEpOgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudEFuZFRleHREZXNjZW5kYW50SXRlcmF0b3I6Om9wZXJhdG9yIGJvb2wpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudEFuZFRleHREZXNjZW5kYW50SXRlcmF0b3I6OkVsZW1l
bnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRB
bmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yOjpvcGVyYXRvciE9KToKKworICAgICAg
ICAgICAgU3VwcG9ydCBpbml0aWFsaXppbmcgRWxlbWVudEFuZFRleHREZXNjZW5kYW50SXRlcmF0
b3Igd2l0aCByb290PT1jdXJyZW50IHNvIHRoYXQgbV9jdXJyZW50IGlzIG5vIG51bGxlZC4KKyAg
ICAgICAgICAgIFRoaXMgaXMgbmVlZGVkIGZvciBDb21wb3NlZFRyZWVJdGVyYXRvciB0byBiZSBp
bml0aWFsaXplZCBjb3JyZWN0bHkgd2hlbiByb290IGlzIGEgc2xvdCBhbmQgdGhlIGN1cnJlbnQg
bm9kZQorICAgICAgICAgICAgaXMgYSBzbG90dGVkIG5vZGUuIFRoZSBjYXNlIGhhcHBlbnMgaW4g
UmVuZGVyVHJlZVBvc2l0aW9uOjpwcmV2aW91c1NpYmxpbmdSZW5kZXJlciB3aGVuIHNsb3QgZGlz
cGxheSBpcyBvdmVycmlkZW4KKyAgICAgICAgICAgIHRvIHNvbWV0aGluZyBlbHNlIHRoYW4gJ2Nv
bnRlbnRzJy4KKworICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6aGFzRGlzcGxheUNvbnRlbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6c2V0SGFzRGlzcGxheUNvbnRlbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVt
ZW50OjpjcmVhdGVGb3IpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oOgorICAgICAgICAqIHN0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlUG9zaXRpb246Om5leHRTaWJsaW5nUmVuZGVyZXIpOgor
CisgICAgICAgICAgICBUZXN0IGZvciBkeW5hbWljIGRpc3BsYXk6Y29udGVudHMuCisKKyAgICAg
ICAgKiBzdHlsZS9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5k
UmVuZGVyaW5nUm9vdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBk
YXRlUmVuZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBk
YXRlRWxlbWVudFJlbmRlcmVyKToKKworICAgICAgICAgICAgVGVzdCBmb3IgZHluYW1pYyBkaXNw
bGF5OmNvbnRlbnRzLgorCisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmFmZmVjdHNSZW5kZXJlZFN1YnRyZWUpOgorCisgICAg
ICAgICAgICBObyBuZWVkIGZvciBzcGVjaWFsIGNhc2UuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUpOgorCisgICAgICAgICAgICBU
ZXN0IGZvciBkeW5hbWljIGRpc3BsYXk6Y29udGVudHMuCisKIDIwMTYtMDQtMDYgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBJbmRleGVkREIgZmVh
dHVyZSBzdGF0dXMgdG8gdGhlIG11Y2ggbW9yZSBjb3JyZWN0ICJJbiBEZXZlbG9wbWVudCIKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShyZXZpc2lvbiAxOTkwOTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjY5LDggKzY2OSw4
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkS2V5d29yZFByb3BlcnQKICAgICAgICAgLy8g
aW5saW5lIHwgYmxvY2sgfCBsaXN0LWl0ZW0gfCBpbmxpbmUtYmxvY2sgfCB0YWJsZSB8CiAgICAg
ICAgIC8vIGlubGluZS10YWJsZSB8IHRhYmxlLXJvdy1ncm91cCB8IHRhYmxlLWhlYWRlci1ncm91
cCB8IHRhYmxlLWZvb3Rlci1ncm91cCB8IHRhYmxlLXJvdyB8CiAgICAgICAgIC8vIHRhYmxlLWNv
bHVtbi1ncm91cCB8IHRhYmxlLWNvbHVtbiB8IHRhYmxlLWNlbGwgfCB0YWJsZS1jYXB0aW9uIHwg
LXdlYmtpdC1ib3ggfCAtd2Via2l0LWlubGluZS1ib3ggfCBub25lIHwgaW5oZXJpdAotICAgICAg
ICAvLyBmbGV4IHwgLXdlYmtpdC1mbGV4IHwgaW5saW5lLWZsZXggfCAtd2Via2l0LWlubGluZS1m
bGV4IHwgLXdlYmtpdC1ncmlkIHwgLXdlYmtpdC1pbmxpbmUtZ3JpZAotICAgICAgICBpZiAoKHZh
bHVlSUQgPj0gQ1NTVmFsdWVJbmxpbmUgJiYgdmFsdWVJRCA8PSBDU1NWYWx1ZVdlYmtpdElubGlu
ZUZsZXgpIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb25lKQorICAgICAgICAvLyBmbGV4IHwgLXdl
YmtpdC1mbGV4IHwgaW5saW5lLWZsZXggfCAtd2Via2l0LWlubGluZS1mbGV4IHwgLXdlYmtpdC1n
cmlkIHwgLXdlYmtpdC1pbmxpbmUtZ3JpZCB8IGNvbnRlbnRzCisgICAgICAgIGlmICgodmFsdWVJ
RCA+PSBDU1NWYWx1ZUlubGluZSAmJiB2YWx1ZUlEIDw9IENTU1ZhbHVlQ29udGVudHMpIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVOb25lKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjaWYgRU5B
QkxFKENTU19HUklEX0xBWU9VVCkKICAgICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVXZWJr
aXRHcmlkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVXZWJraXRJbmxpbmVHcmlkKQpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCShyZXZpc2lv
biAxOTkwOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzg4LDYgKzEzODgsOSBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTCiAgICAgY2FzZSBOT05FOgogICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ09OVEVO
VFM6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29udGVudHM7CisgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4JKHJldmlzaW9uIDE5OTA5NykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCSh3b3JraW5nIGNvcHkpCkBAIC00MTcsNiArNDE3LDcgQEAgZmxleAogLXdlYmtp
dC1mbGV4CiBpbmxpbmUtZmxleAogLXdlYmtpdC1pbmxpbmUtZmxleAorY29udGVudHMKIC13ZWJr
aXQtZ3JpZAogLXdlYmtpdC1pbmxpbmUtZ3JpZAogLy9ub25lCkBAIC0xMTg0LDcgKzExODUsNyBA
QCBzdHlsZQogCiAvLyB3aWxsLWNoYW5nZQogc2Nyb2xsLXBvc2l0aW9uCi1jb250ZW50cworLy9j
b250ZW50cwogCiAjaWYgZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAmJiBFTkFCTEVfVE9V
Q0hfRVZFTlRTCiAvLyB0b3VjaC1hY3Rpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAJKHJldmlzaW9uIDE5OTA5NykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzI1LDYgKzcyNSw3IEBAIHN0YXRpYyBFRGlz
cGxheSBlcXVpdmFsZW50QmxvY2tEaXNwbGF5KEUKICAgICBjYXNlIFRBQkxFX0NBUFRJT046CiAg
ICAgICAgIHJldHVybiBCTE9DSzsKICAgICBjYXNlIE5PTkU6CisgICAgY2FzZSBDT05URU5UUzoK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBOT05FOwogICAg
IH0KQEAgLTc2NSw2ICs3NjYsMTUgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphZGp1c3RSZW5kZXJT
dHlsZShSZQogICAgIHN0eWxlLnNldE9yaWdpbmFsRGlzcGxheShzdHlsZS5kaXNwbGF5KCkpOwog
CiAgICAgaWYgKHN0eWxlLmRpc3BsYXkoKSAhPSBOT05FKSB7CisgICAgICAgIGlmIChzdHlsZS5k
aXNwbGF5KCkgPT0gQ09OVEVOVFMpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBFbmFibGUgZm9y
IGFsbCBlbGVtZW50cy4KKyAgICAgICAgICAgIGJvb2wgZWxlbWVudFN1cHBvcnRzRGlzcGxheUNv
bnRlbnRzID0gZmFsc2U7CisjaWYgRU5BQkxFKFNIQURPV19ET00pIHx8IEVOQUJMRShERVRBSUxT
X0VMRU1FTlQpCisgICAgICAgICAgICBlbGVtZW50U3VwcG9ydHNEaXNwbGF5Q29udGVudHMgPSBp
czxIVE1MU2xvdEVsZW1lbnQ+KGUpOworI2VuZGlmCisgICAgICAgICAgICBpZiAoIWVsZW1lbnRT
dXBwb3J0c0Rpc3BsYXlDb250ZW50cykKKyAgICAgICAgICAgICAgICBzdHlsZS5zZXREaXNwbGF5
KElOTElORSk7CisgICAgICAgIH0KICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIDx0ZD4gdGhhdCBz
cGVjaWZpZXMgYSBmbG9hdCBwcm9wZXJ0eSwgaW4gcXVpcmtzIG1vZGUgd2UganVzdCBkcm9wIHRo
ZSBmbG9hdAogICAgICAgICAvLyBwcm9wZXJ0eS4KICAgICAgICAgLy8gU2l0ZXMgYWxzbyBjb21t
b25seSB1c2UgZGlzcGxheTppbmxpbmUvYmxvY2sgb24gPHRkPnMgYW5kIDx0YWJsZT5zLiBJbiBx
dWlya3MgbW9kZSB3ZSBmb3JjZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwkocmV2aXNpb24gMTk5MDk3
KQorKysgU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIz
LDYgKzEyMjMsMTAgQEAgYmRvIHsKICAgICB1bmljb2RlLWJpZGk6IGJpZGktb3ZlcnJpZGU7CiB9
CiAKK3Nsb3QgeworICAgIGRpc3BsYXk6IGNvbnRlbnRzOworfQorCiAjaWYgZGVmaW5lZChXVEZf
UExBVEZPUk1fSU9TKSAmJiBXVEZfUExBVEZPUk1fSU9TCiBhcHBsZXQsIGVtYmVkLCBvYmplY3Qs
IGltZyB7CiAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkocmV2aXNpb24gMTk5MDk3KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzc1LDYgKzEzNzUs
MTggQEAgRWxlbWVudFN0eWxlIEVsZW1lbnQ6OnJlc29sdmVTdHlsZShSZW5kZQogICAgIHJldHVy
biBzdHlsZVJlc29sdmVyKCkuc3R5bGVGb3JFbGVtZW50KCp0aGlzLCBwYXJlbnRTdHlsZSk7CiB9
CiAKK2Jvb2wgRWxlbWVudDo6aGFzRGlzcGxheUNvbnRlbnRzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gaGFzUmFyZURhdGEoKSAmJiBlbGVtZW50UmFyZURhdGEoKS0+aGFzRGlzcGxheUNvbnRlbnRz
KCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6c2V0SGFzRGlzcGxheUNvbnRlbnRzKGJvb2wgdmFsdWUp
Cit7CisgICAgaWYgKGhhc0Rpc3BsYXlDb250ZW50cygpID09IHZhbHVlKQorICAgICAgICByZXR1
cm47CisgICAgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCkuc2V0SGFzRGlzcGxheUNvbnRlbnRzKHZh
bHVlKTsKK30KKwogLy8gUmV0dXJucyB0cnVlIGlzIHRoZSBnaXZlbiBhdHRyaWJ1dGUgaXMgYW4g
ZXZlbnQgaGFuZGxlci4KIC8vIFdlIGNvbnNpZGVyIGFuIGV2ZW50IGhhbmRsZXIgYW55IGF0dHJp
YnV0ZSB0aGF0IGJlZ2lucyB3aXRoICJvbiIuCiAvLyBJdCBpcyBhIHNpbXBsZSBzb2x1dGlvbiB0
aGF0IGhhcyB0aGUgYWR2YW50YWdlIG9mIG5vdCByZXF1aXJpbmcgYW55CkBAIC0xNDc4LDcgKzE0
OTAsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEVsZW1lbnQ6OmltYWdlU291cmNlCiAKIGJvb2wg
RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7Ci0g
ICAgcmV0dXJuIHN0eWxlLmRpc3BsYXkoKSAhPSBOT05FOworICAgIHJldHVybiBzdHlsZS5kaXNw
bGF5KCkgIT0gTk9ORSAmJiBzdHlsZS5kaXNwbGF5KCkgIT0gQ09OVEVOVFM7CiB9CiAKIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCShyZXZpc2lvbiAxOTkwOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MDEsNiArNTAxLDkgQEAgcHVibGljOgogICAgIFN0
eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIoKTsKICAgICBFbGVtZW50U3R5bGUgcmVzb2x2ZVN0
eWxlKFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSk7CiAKKyAgICBib29sIGhhc0Rpc3BsYXlDb250
ZW50cygpIGNvbnN0OworICAgIHZvaWQgc2V0SGFzRGlzcGxheUNvbnRlbnRzKGJvb2wpOworCiAg
ICAgdmlydHVhbCB2b2lkIGlzVmlzaWJsZUluVmlld3BvcnRDaGFuZ2VkKCkgeyB9CiAKICAgICB1
c2luZyBDb250YWluZXJOb2RlOjpzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyOwpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJh
dG9yLmgJKHJldmlzaW9uIDE5OTA5NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QW5k
VGV4dERlc2NlbmRhbnRJdGVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw4ICs1MCw4IEBA
IHB1YmxpYzoKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRWxlbWVudEFuZFRleHREZXNjZW5k
YW50SXRlcmF0b3ImIG90aGVyKSBjb25zdDsKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgRWxl
bWVudEFuZFRleHREZXNjZW5kYW50SXRlcmF0b3ImIG90aGVyKSBjb25zdDsKIAotICAgIGJvb2wg
b3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIW1fY3VycmVudDsgfQotICAgIGV4cGxpY2l0IG9w
ZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnQ7IH0KKyAgICBib29sIG9wZXJh
dG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX2RlcHRoOyB9CisgICAgZXhwbGljaXQgb3BlcmF0b3Ig
Ym9vbCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVwdGg7IH0KIAogICAgIHZvaWQgZHJvcEFzc2VydGlv
bnMoKTsKIApAQCAtMTE1LDcgKzExNSw3IEBAIGlubGluZSBFbGVtZW50QW5kVGV4dERlc2NlbmRh
bnRJdGVyYXRvcjoKIH0KIAogaW5saW5lIEVsZW1lbnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9y
OjpFbGVtZW50QW5kVGV4dERlc2NlbmRhbnRJdGVyYXRvcihDb250YWluZXJOb2RlJiByb290LCBO
b2RlKiBjdXJyZW50KQotICAgIDogbV9jdXJyZW50KGN1cnJlbnQgIT0gJnJvb3QgPyBjdXJyZW50
IDogbnVsbHB0cikKKyAgICA6IG1fY3VycmVudChjdXJyZW50KQogI2lmICFBU1NFUlRfRElTQUJM
RUQKICAgICAsIG1fYXNzZXJ0aW9ucyhtX2N1cnJlbnQpCiAjZW5kaWYKQEAgLTEyMyw2ICsxMjMs
OCBAQCBpbmxpbmUgRWxlbWVudEFuZFRleHREZXNjZW5kYW50SXRlcmF0b3I6CiAgICAgaWYgKCFt
X2N1cnJlbnQpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQoaXNFbGVtZW50T3JUZXh0KCpt
X2N1cnJlbnQpKTsKKyAgICBpZiAobV9jdXJyZW50ID09ICZyb290KQorICAgICAgICByZXR1cm47
CiAKICAgICBWZWN0b3I8Tm9kZSosIDIwPiBhbmNlc3RvclN0YWNrOwogICAgIGF1dG8qIGFuY2Vz
dG9yID0gbV9jdXJyZW50LT5wYXJlbnROb2RlKCk7CkBAIC0yODUsNyArMjg3LDcgQEAgaW5saW5l
IGNvbnN0IE5vZGUqIEVsZW1lbnRBbmRUZXh0RGVzY2VuZAogaW5saW5lIGJvb2wgRWxlbWVudEFu
ZFRleHREZXNjZW5kYW50SXRlcmF0b3I6Om9wZXJhdG9yPT0oY29uc3QgRWxlbWVudEFuZFRleHRE
ZXNjZW5kYW50SXRlcmF0b3ImIG90aGVyKSBjb25zdAogewogICAgIEFTU0VSVCghbV9hc3NlcnRp
b25zLmRvbVRyZWVIYXNNdXRhdGVkKCkpOwotICAgIHJldHVybiBtX2N1cnJlbnQgPT0gb3RoZXIu
bV9jdXJyZW50OworICAgIHJldHVybiBtX2N1cnJlbnQgPT0gb3RoZXIubV9jdXJyZW50IHx8ICgh
bV9kZXB0aCAmJiAhb3RoZXIubV9kZXB0aCk7CiB9CiAKIGlubGluZSBib29sIEVsZW1lbnRBbmRU
ZXh0RGVzY2VuZGFudEl0ZXJhdG9yOjpvcGVyYXRvciE9KGNvbnN0IEVsZW1lbnRBbmRUZXh0RGVz
Y2VuZGFudEl0ZXJhdG9yJiBvdGhlcikgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50UmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFJhcmVEYXRhLmgJKHJldmlzaW9uIDE5OTA5NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50UmFyZURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw5IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc1BlbmRpbmdSZXNvdXJjZXMoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRp
bmdSZXNvdXJjZXM7IH0KICAgICB2b2lkIHNldEhhc1BlbmRpbmdSZXNvdXJjZXMoYm9vbCBoYXMp
IHsgbV9oYXNQZW5kaW5nUmVzb3VyY2VzID0gaGFzOyB9CiAKKyAgICBib29sIGhhc0Rpc3BsYXlD
b250ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faGFzRGlzcGxheUNvbnRlbnRzOyB9CisgICAgdm9p
ZCBzZXRIYXNEaXNwbGF5Q29udGVudHMoYm9vbCB2YWx1ZSkgeyBtX2hhc0Rpc3BsYXlDb250ZW50
cyA9IHZhbHVlOyB9CisKIHByaXZhdGU6CiAgICAgaW50IG1fdGFiSW5kZXg7CiAgICAgdW5zaWdu
ZWQgc2hvcnQgbV9jaGlsZEluZGV4OwpAQCAtMTI2LDYgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAg
dW5zaWduZWQgbV9jaGlsZHJlbkFmZmVjdGVkQnlMYXN0Q2hpbGRSdWxlcyA6IDE7CiAgICAgdW5z
aWduZWQgbV9jaGlsZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyA6IDE7CiAg
ICAgdW5zaWduZWQgbV9jaGlsZHJlbkFmZmVjdGVkQnlQcm9wZXJ0eUJhc2VkQmFja3dhcmRQb3Np
dGlvbmFsUnVsZXMgOiAxOworICAgIHVuc2lnbmVkIG1faGFzRGlzcGxheUNvbnRlbnRzIDogMTsK
IAogICAgIFJlZ2lvbk92ZXJzZXRTdGF0ZSBtX3JlZ2lvbk92ZXJzZXRTdGF0ZTsKIApAQCAtMTY2
LDYgKzE3MCw3IEBAIGlubGluZSBFbGVtZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YSgKICAg
ICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVsZXMoZmFsc2UpCiAgICAgLCBtX2No
aWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJkUG9zaXRpb25hbFJ1bGVzKGZhbHNlKQogICAgICwgbV9j
aGlsZHJlbkFmZmVjdGVkQnlQcm9wZXJ0eUJhc2VkQmFja3dhcmRQb3NpdGlvbmFsUnVsZXMoZmFs
c2UpCisgICAgLCBtX2hhc0Rpc3BsYXlDb250ZW50cyhmYWxzZSkKICAgICAsIG1fcmVnaW9uT3Zl
cnNldFN0YXRlKFJlZ2lvblVuZGVmaW5lZCkKICAgICAsIG1fbWluaW11bVNpemVGb3JSZXNpemlu
ZyhkZWZhdWx0TWluaW11bVNpemVGb3JSZXNpemluZygpKQogewpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2xvdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTbG90RWxlbWVudC5oCShyZXZpc2lvbiAxOTkwOTcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTbG90RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MywxNyArNTMsNiBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNFbnF1ZXVlZFNsb3RDaGFuZ2VFdmVudCB7IGZhbHNl
IH07CiB9OwogCi0vLyBTbG90cyBoYXZlIGltcGxpY2l0IGRpc3BsYXk6Y29udGVudHMgdW50aWwg
aXQgaXMgc3VwcG9ydGVkIGZvciByZWFscy4KLWlubGluZSBib29sIGhhc0ltcGxpY2l0RGlzcGxh
eUNvbnRlbnRzKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpIHsgcmV0dXJuIGlzPEhUTUxTbG90RWxl
bWVudD4oZWxlbWVudCk7IH0KLQotfQotCi0jZWxzZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWlubGluZSBib29sIGhhc0ltcGxpY2l0RGlzcGxheUNvbnRlbnRzKGNvbnN0IEVsZW1lbnQmKSB7
IHJldHVybiBmYWxzZTsgfQotCiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAkocmV2aXNpb24gMTk5MDk3KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjEs
NiArMTYxLDcgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFJlbmRlckVsZW1lbnQ6OgogCiAg
ICAgc3dpdGNoIChzdHlsZS5nZXQoKS5kaXNwbGF5KCkpIHsKICAgICBjYXNlIE5PTkU6CisgICAg
Y2FzZSBDT05URU5UUzoKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBJTkxJTkU6
CiAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbmxpbmU+KGVsZW1lbnQsIFdU
Rk1vdmUoc3R5bGUpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZUNvbnN0YW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCShyZXZpc2lvbiAxOTkwOTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTYzLDYgKzU2Myw3IEBAIGVudW0gRURpc3BsYXkgewogICAgIFRBQkxFX0NP
TFVNTl9HUk9VUCwgVEFCTEVfQ09MVU1OLCBUQUJMRV9DRUxMLAogICAgIFRBQkxFX0NBUFRJT04s
IEJPWCwgSU5MSU5FX0JPWCwKICAgICBGTEVYLCBXRUJLSVRfRkxFWCwgSU5MSU5FX0ZMRVgsIFdF
QktJVF9JTkxJTkVfRkxFWCwKKyAgICBDT05URU5UUywKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZ
T1VUKQogICAgIEdSSUQsIElOTElORV9HUklELAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdHlsZS9SZW5kZXJUcmVlUG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5jcHAJKHJldmlzaW9uIDE5OTA5NykKKysrIFNv
dXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTg5LDcgKzg5LDcgQEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJUcmVlUG9zaXRpb246Om5leHRT
aQogCiAgICAgd2hpbGUgKGl0ICE9IGVuZCkgewogICAgICAgICBhdXRvJiBub2RlID0gKml0Owot
ICAgICAgICBib29sIGhhc0Rpc3BsYXlDb250ZW50cyA9IGlzPEVsZW1lbnQ+KG5vZGUpICYmIGhh
c0ltcGxpY2l0RGlzcGxheUNvbnRlbnRzKGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpKTsKKyAgICAg
ICAgYm9vbCBoYXNEaXNwbGF5Q29udGVudHMgPSBpczxFbGVtZW50Pihub2RlKSAmJiBkb3duY2Fz
dDxFbGVtZW50Pihub2RlKS5oYXNEaXNwbGF5Q29udGVudHMoKTsKICAgICAgICAgaWYgKGhhc0Rp
c3BsYXlDb250ZW50cykgewogICAgICAgICAgICAgaXQudHJhdmVyc2VOZXh0KCk7CiAgICAgICAg
ICAgICBjb250aW51ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVVcGRh
dGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdHlsZS9SZW5kZXJUcmVlVXBk
YXRlci5jcHAJKHJldmlzaW9uIDE5OTA5NykKKysrIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRl
clRyZWVVcGRhdGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMg
Q29udGFpbmVyTm9kZSogZmluZFJlbmRlcmluZ1Jvb3QoCiAgICAgZm9yIChhdXRvJiBhbmNlc3Rv
ciA6IGNvbXBvc2VkVHJlZUFuY2VzdG9ycyhub2RlKSkgewogICAgICAgICBpZiAoYW5jZXN0b3Iu
cmVuZGVyZXIoKSkKICAgICAgICAgICAgIHJldHVybiAmYW5jZXN0b3I7Ci0gICAgICAgIGlmICgh
aGFzSW1wbGljaXREaXNwbGF5Q29udGVudHMoYW5jZXN0b3IpKQorICAgICAgICBpZiAoIWFuY2Vz
dG9yLmhhc0Rpc3BsYXlDb250ZW50cygpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogICAgIHJldHVybiAmbm9kZS5kb2N1bWVudCgpOwpAQCAtMTUxLDcgKzE1MSw3IEBAIHZv
aWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZVJlbmRlclRyZWUKIAogICAgICAgICB1cGRhdGVF
bGVtZW50UmVuZGVyZXIoZWxlbWVudCwgKmVsZW1lbnRVcGRhdGUpOwogCi0gICAgICAgIGJvb2wg
bWF5SGF2ZVJlbmRlcmVkRGVzY2VuZGFudHMgPSBlbGVtZW50LnJlbmRlcmVyKCkgfHwgKGhhc0lt
cGxpY2l0RGlzcGxheUNvbnRlbnRzKGVsZW1lbnQpICYmIHNob3VsZENyZWF0ZVJlbmRlcmVyKGVs
ZW1lbnQsIHJlbmRlclRyZWVQb3NpdGlvbigpLnBhcmVudCgpKSk7CisgICAgICAgIGJvb2wgbWF5
SGF2ZVJlbmRlcmVkRGVzY2VuZGFudHMgPSBlbGVtZW50LnJlbmRlcmVyKCkgfHwgKGVsZW1lbnQu
aGFzRGlzcGxheUNvbnRlbnRzKCkgJiYgc2hvdWxkQ3JlYXRlUmVuZGVyZXIoZWxlbWVudCwgcmVu
ZGVyVHJlZVBvc2l0aW9uKCkucGFyZW50KCkpKTsKICAgICAgICAgaWYgKCFtYXlIYXZlUmVuZGVy
ZWREZXNjZW5kYW50cykgewogICAgICAgICAgICAgaXQudHJhdmVyc2VOZXh0U2tpcHBpbmdDaGls
ZHJlbigpOwogICAgICAgICAgICAgY29udGludWU7CkBAIC0yNDQsNyArMjQ0LDEwIEBAIHZvaWQg
UmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZUVsZW1lbnRSZW4KICAgICBpZiAoc2hvdWxkVGVhckRv
d25SZW5kZXJlcnMpCiAgICAgICAgIHRlYXJEb3duUmVuZGVyZXJzKGVsZW1lbnQsIFRlYXJkb3du
VHlwZTo6S2VlcEhvdmVyQW5kQWN0aXZlKTsKIAotICAgIGJvb2wgc2hvdWxkQ3JlYXRlTmV3UmVu
ZGVyZXIgPSAhZWxlbWVudC5yZW5kZXJlcigpICYmIHVwZGF0ZS5zdHlsZSAmJiAhaGFzSW1wbGlj
aXREaXNwbGF5Q29udGVudHMoZWxlbWVudCk7CisgICAgYm9vbCBoYXNEaXNwbGF5Q29udGVzdCA9
IHVwZGF0ZS5zdHlsZSAmJiB1cGRhdGUuc3R5bGUtPmRpc3BsYXkoKSA9PSBDT05URU5UUzsKKyAg
ICBlbGVtZW50LnNldEhhc0Rpc3BsYXlDb250ZW50cyhoYXNEaXNwbGF5Q29udGVzdCk7CisKKyAg
ICBib29sIHNob3VsZENyZWF0ZU5ld1JlbmRlcmVyID0gIWVsZW1lbnQucmVuZGVyZXIoKSAmJiB1
cGRhdGUuc3R5bGUgJiYgIWhhc0Rpc3BsYXlDb250ZXN0OwogICAgIGlmIChzaG91bGRDcmVhdGVO
ZXdSZW5kZXJlcikgewogICAgICAgICBpZiAoZWxlbWVudC5oYXNDdXN0b21TdHlsZVJlc29sdmVD
YWxsYmFja3MoKSkKICAgICAgICAgICAgIGVsZW1lbnQud2lsbEF0dGFjaFJlbmRlcmVycygpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAkocmV2aXNp
b24gMTk5MDk3KQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsOSArMTcyLDYgQEAgc3RhdGljIGJvb2wgYWZmZWN0c1Jl
bmRlcmVkU3VidHJlZShFbGVtZQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAobmV3U3R5
bGUuZGlzcGxheSgpICE9IE5PTkUpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIC8vIEZJWE1F
OiBNYWtlICdjb250ZW50cycgYW4gYWN0dWFsIGRpc3BsYXkgcHJvcGVydHkgdmFsdWUuCi0gICAg
aWYgKGhhc0ltcGxpY2l0RGlzcGxheUNvbnRlbnRzKGVsZW1lbnQpKQotICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBpZiAoZWxlbWVudC5yZW5kZXJlcklzTmVlZGVkKG5ld1N0eWxlKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKGVsZW1lbnQuc2hvdWxkTW92ZVRvRmxvd1RocmVhZChu
ZXdTdHlsZSkpCkBAIC0zNzYsNyArMzczLDcgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVD
b21wb3NlZFRyZWUoKQogICAgICAgICBFbGVtZW50VXBkYXRlIHVwZGF0ZTsKICAgICAgICAgdXBk
YXRlLnN0eWxlID0gZWxlbWVudC5yZW5kZXJTdHlsZSgpOwogCi0gICAgICAgIGJvb2wgc2hvdWxk
UmVzb2x2ZSA9IHBhcmVudC5jaGFuZ2UgPj0gSW5oZXJpdCB8fCBlbGVtZW50Lm5lZWRzU3R5bGVS
ZWNhbGMoKSB8fCBzaG91bGRSZXNvbHZlRm9yUHNldWRvRWxlbWVudCB8fCBhZmZlY3RlZEJ5UHJl
dmlvdXNTaWJsaW5nIHx8IGhhc0ltcGxpY2l0RGlzcGxheUNvbnRlbnRzKGVsZW1lbnQpOworICAg
ICAgICBib29sIHNob3VsZFJlc29sdmUgPSBwYXJlbnQuY2hhbmdlID49IEluaGVyaXQgfHwgZWxl
bWVudC5uZWVkc1N0eWxlUmVjYWxjKCkgfHwgc2hvdWxkUmVzb2x2ZUZvclBzZXVkb0VsZW1lbnQg
fHwgYWZmZWN0ZWRCeVByZXZpb3VzU2libGluZyB8fCBlbGVtZW50Lmhhc0Rpc3BsYXlDb250ZW50
cygpOwogICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZSkgewogI2lmIFBMQVRGT1JNKElPUykKICAg
ICAgICAgICAgIENoZWNrRm9yVmlzaWJpbGl0eUNoYW5nZU9uUmVjYWxjU3R5bGUgY2hlY2tGb3JW
aXNpYmlsaXR5Q2hhbmdlKCZlbGVtZW50LCBlbGVtZW50LnJlbmRlclN0eWxlKCkpOwpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTk5MDk5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDQtMDYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBkaXNwbGF5OiBjb250ZW50cyBmb3Igc2xv
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTQz
OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI3MzE5MjI+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9uczoKKworICAgICAgICBFbmFibGUgZmFzdC9zaGFkb3ctZG9tL2Nzcy1zY29waW5nLXNoYWRv
dy1zbG90LWRpc3BsYXktb3ZlcnJpZGUuaHRtbCwgdGhlIHRlc3QgZm9yIG92ZXJyaWRpbmcgc2xv
dCBkaXNwbGF5IHZhbHVlLgorCiAyMDE2LTA0LTA2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFw
cGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxOTY2MjkpOiBNZXNzYWdlcyB0ZXh0IHNp
emUgb25seSBjaGFuZ2VzIGZvciBzZW5kaW5nIHRleHQsIGNvbnZlcnNhdGlvbiB0ZXh0IHNpemUg
ZG9lcyBub3QgY2hhbmdlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwkocmV2aXNpb24gMTk5MDk3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTEyMjksNyArMTIyOSw2IEBAIHdlYmtp
dC5vcmcvYi8xNDkxMjggZmFzdC90ZXh0L2NvbnRyb2wtY2gKIAogd2Via2l0Lm9yZy9iLzE0ODY5
NSBmYXN0L3NoYWRvdy1kb20gWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xNDk0NDAgZmFzdC9zaGFk
b3ctZG9tL2Nzcy1zY29waW5nLXNoYWRvdy1ob3N0LWZ1bmN0aW9uYWwtcnVsZS5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTQ5NDQxIGZhc3Qvc2hhZG93LWRvbS9jc3Mt
c2NvcGluZy1zaGFkb3ctc2xvdC1kaXNwbGF5LW92ZXJyaWRlLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIAogIyBUb3VjaCBldmVudHMgaXMgbm90IGVuYWJsZWQgb24gTWFjCiB3ZWJraXQub3Jn
L2IvMTQ5NTkyIGZhc3Qvc2hhZG93LWRvbS90b3VjaC1ldmVudC1pb3MuaHRtbCBbIEZhaWx1cmUg
XQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275782</attachid>
            <date>2016-04-06 10:45:30 -0700</date>
            <delta_ts>2016-04-06 15:00:21 -0700</delta_ts>
            <desc>patch</desc>
            <filename>display-contents-slot-4.patch</filename>
            <type>text/plain</type>
            <size>19171</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTEwMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg5IEBACisyMDE2LTA0LTA2ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgZGlzcGxheTog
Y29udGVudHMgZm9yIHNsb3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDk0MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNzMxOTIyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkIHN1cHBvcnQgZm9yIGRpc3BsYXk6Y29udGVudHMgdmFsdWUgZm9yIDxzbG90PiBlbGVtZW50
cyBvbmx5LiBUaGUgdmFsdWUgaXMgaWdub3JlZCBmb3Igb3RoZXIgZWxlbWVudHMuCisKKyAgICAg
ICAgU2xvdHMgYWxyZWFkeSBoYWQgaW1wbGljaXQgZGlzcGxheTpjb250ZW50cy4gV2l0aCB0aGlz
IHBhdGNoIHRoZSB2YWx1ZSBjb21lcyBmcm9tIHVzZXIgYWdlbnQgc3R5bGVzaGVldCBhbmQgY2Fu
IGJlCisgICAgICAgIG92ZXJyaWRlbiBieSB0aGUgYXV0aG9yLgorCisgICAgICAgICogY3NzL0NT
U1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5k
VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorCisgICAgICAgICAgICBTdXBvcnQgcGFy
c2luZyBkaXNwbGF5OiBjb250ZW50cy4KKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmVxdWl2YWxlbnRCbG9ja0Rpc3BsYXkpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGUpOgorCisgICAgICAgICAg
ICBEaXNhbGxvdyBmb3Igbm9uLXNsb3RzIGZvciBub3cuCisKKyAgICAgICAgKiBjc3MvaHRtbC5j
c3M6CisgICAgICAgIChzbG90KToKKworICAgICAgICAgICAgQWRkIHNsb3QgeyBkaXNwbGF5OiBj
b250ZW50cyB9IHRvIFVBIHNoZWV0LgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVzb2x2ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6Omhhc0Rpc3BsYXlDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjpzZXRIYXNEaXNwbGF5Q29udGVudHMpOgorCisgICAgICAgICAgICBBZGQgYSByYXJlIGRhdGEg
Yml0IGZvciBlbGVtZW50cyB3aXRoIGRpc3BsYXk6Y29udGVudHMgKGFzIHdlIGRvbid0IHNhdmUg
dGhlIFJlbmRlclN0eWxlIGZvciB0aGVtKS4KKworICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
cmVuZGVyZXJJc05lZWRlZCk6CisKKyAgICAgICAgICAgIERvbid0IG5lZWQgcmVuZGVyZXIgZm9y
IGRpc3BsYXk6Y29udGVudHMuCisKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmlzVmlzaWJsZUluVmlld3BvcnRDaGFuZ2VkKToKKyAgICAgICAgKiBkb20v
RWxlbWVudEFuZFRleHREZXNjZW5kYW50SXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yOjpvcGVyYXRvciEpOgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudEFuZFRleHREZXNjZW5kYW50SXRlcmF0b3I6Om9wZXJhdG9yIGJvb2wpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudEFuZFRleHREZXNjZW5kYW50SXRlcmF0b3I6OkVsZW1l
bnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRB
bmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yOjpvcGVyYXRvciE9KToKKworICAgICAg
ICAgICAgU3VwcG9ydCBpbml0aWFsaXppbmcgRWxlbWVudEFuZFRleHREZXNjZW5kYW50SXRlcmF0
b3Igd2l0aCByb290PT1jdXJyZW50IHNvIHRoYXQgbV9jdXJyZW50IGlzIG5vIG51bGxlZC4KKyAg
ICAgICAgICAgIFRoaXMgaXMgbmVlZGVkIGZvciBDb21wb3NlZFRyZWVJdGVyYXRvciB0byBiZSBp
bml0aWFsaXplZCBjb3JyZWN0bHkgd2hlbiByb290IGlzIGEgc2xvdCBhbmQgdGhlIGN1cnJlbnQg
bm9kZQorICAgICAgICAgICAgaXMgYSBzbG90dGVkIG5vZGUuIFRoZSBjYXNlIGhhcHBlbnMgaW4g
UmVuZGVyVHJlZVBvc2l0aW9uOjpwcmV2aW91c1NpYmxpbmdSZW5kZXJlciB3aGVuIHNsb3QgZGlz
cGxheSBpcyBvdmVycmlkZW4KKyAgICAgICAgICAgIHRvIHNvbWV0aGluZyBlbHNlIHRoYW4gJ2Nv
bnRlbnRzJy4KKworICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6aGFzRGlzcGxheUNvbnRlbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6c2V0SGFzRGlzcGxheUNvbnRlbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVt
ZW50OjpjcmVhdGVGb3IpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oOgorICAgICAgICAqIHN0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlUG9zaXRpb246Om5leHRTaWJsaW5nUmVuZGVyZXIpOgor
CisgICAgICAgICAgICBUZXN0IGZvciBkeW5hbWljIGRpc3BsYXk6Y29udGVudHMuCisKKyAgICAg
ICAgKiBzdHlsZS9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5k
UmVuZGVyaW5nUm9vdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBk
YXRlUmVuZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBk
YXRlRWxlbWVudFJlbmRlcmVyKToKKworICAgICAgICAgICAgVGVzdCBmb3IgZHluYW1pYyBkaXNw
bGF5OmNvbnRlbnRzLgorCisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmFmZmVjdHNSZW5kZXJlZFN1YnRyZWUpOgorCisgICAg
ICAgICAgICBObyBuZWVkIGZvciBzcGVjaWFsIGNhc2UuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUpOgorCisgICAgICAgICAgICBU
ZXN0IGZvciBkeW5hbWljIGRpc3BsYXk6Y29udGVudHMuCisKIDIwMTYtMDQtMDYgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBJbmRleGVkREIgZmVh
dHVyZSBzdGF0dXMgdG8gdGhlIG11Y2ggbW9yZSBjb3JyZWN0ICJJbiBEZXZlbG9wbWVudCIKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShyZXZpc2lvbiAxOTkwOTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjY5LDggKzY2OSw4
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkS2V5d29yZFByb3BlcnQKICAgICAgICAgLy8g
aW5saW5lIHwgYmxvY2sgfCBsaXN0LWl0ZW0gfCBpbmxpbmUtYmxvY2sgfCB0YWJsZSB8CiAgICAg
ICAgIC8vIGlubGluZS10YWJsZSB8IHRhYmxlLXJvdy1ncm91cCB8IHRhYmxlLWhlYWRlci1ncm91
cCB8IHRhYmxlLWZvb3Rlci1ncm91cCB8IHRhYmxlLXJvdyB8CiAgICAgICAgIC8vIHRhYmxlLWNv
bHVtbi1ncm91cCB8IHRhYmxlLWNvbHVtbiB8IHRhYmxlLWNlbGwgfCB0YWJsZS1jYXB0aW9uIHwg
LXdlYmtpdC1ib3ggfCAtd2Via2l0LWlubGluZS1ib3ggfCBub25lIHwgaW5oZXJpdAotICAgICAg
ICAvLyBmbGV4IHwgLXdlYmtpdC1mbGV4IHwgaW5saW5lLWZsZXggfCAtd2Via2l0LWlubGluZS1m
bGV4IHwgLXdlYmtpdC1ncmlkIHwgLXdlYmtpdC1pbmxpbmUtZ3JpZAotICAgICAgICBpZiAoKHZh
bHVlSUQgPj0gQ1NTVmFsdWVJbmxpbmUgJiYgdmFsdWVJRCA8PSBDU1NWYWx1ZVdlYmtpdElubGlu
ZUZsZXgpIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb25lKQorICAgICAgICAvLyBmbGV4IHwgLXdl
YmtpdC1mbGV4IHwgaW5saW5lLWZsZXggfCAtd2Via2l0LWlubGluZS1mbGV4IHwgLXdlYmtpdC1n
cmlkIHwgLXdlYmtpdC1pbmxpbmUtZ3JpZCB8IGNvbnRlbnRzCisgICAgICAgIGlmICgodmFsdWVJ
RCA+PSBDU1NWYWx1ZUlubGluZSAmJiB2YWx1ZUlEIDw9IENTU1ZhbHVlQ29udGVudHMpIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVOb25lKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjaWYgRU5B
QkxFKENTU19HUklEX0xBWU9VVCkKICAgICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVXZWJr
aXRHcmlkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVXZWJraXRJbmxpbmVHcmlkKQpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCShyZXZpc2lv
biAxOTkwOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzg4LDYgKzEzODgsOSBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTCiAgICAgY2FzZSBOT05FOgogICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ09OVEVO
VFM6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29udGVudHM7CisgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4JKHJldmlzaW9uIDE5OTA5NykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCSh3b3JraW5nIGNvcHkpCkBAIC00MTcsNiArNDE3LDcgQEAgZmxleAogLXdlYmtp
dC1mbGV4CiBpbmxpbmUtZmxleAogLXdlYmtpdC1pbmxpbmUtZmxleAorY29udGVudHMKIC13ZWJr
aXQtZ3JpZAogLXdlYmtpdC1pbmxpbmUtZ3JpZAogLy9ub25lCkBAIC0xMTg0LDcgKzExODUsNyBA
QCBzdHlsZQogCiAvLyB3aWxsLWNoYW5nZQogc2Nyb2xsLXBvc2l0aW9uCi1jb250ZW50cworLy9j
b250ZW50cwogCiAjaWYgZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAmJiBFTkFCTEVfVE9V
Q0hfRVZFTlRTCiAvLyB0b3VjaC1hY3Rpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAJKHJldmlzaW9uIDE5OTA5NykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIzLDYgKzcyMyw3IEBAIHN0YXRpYyBFRGlz
cGxheSBlcXVpdmFsZW50QmxvY2tEaXNwbGF5KEUKICAgICBjYXNlIFRBQkxFX0NPTFVNTjoKICAg
ICBjYXNlIFRBQkxFX0NFTEw6CiAgICAgY2FzZSBUQUJMRV9DQVBUSU9OOgorICAgIGNhc2UgQ09O
VEVOVFM6CiAgICAgICAgIHJldHVybiBCTE9DSzsKICAgICBjYXNlIE5PTkU6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNzY1LDYgKzc2NiwxNSBAQCB2b2lkIFN0eWxlUmVzb2x2
ZXI6OmFkanVzdFJlbmRlclN0eWxlKFJlCiAgICAgc3R5bGUuc2V0T3JpZ2luYWxEaXNwbGF5KHN0
eWxlLmRpc3BsYXkoKSk7CiAKICAgICBpZiAoc3R5bGUuZGlzcGxheSgpICE9IE5PTkUpIHsKKyAg
ICAgICAgaWYgKHN0eWxlLmRpc3BsYXkoKSA9PSBDT05URU5UUykgeworICAgICAgICAgICAgLy8g
RklYTUU6IEVuYWJsZSBmb3IgYWxsIGVsZW1lbnRzLgorICAgICAgICAgICAgYm9vbCBlbGVtZW50
U3VwcG9ydHNEaXNwbGF5Q29udGVudHMgPSBmYWxzZTsKKyNpZiBFTkFCTEUoU0hBRE9XX0RPTSkg
fHwgRU5BQkxFKERFVEFJTFNfRUxFTUVOVCkKKyAgICAgICAgICAgIGVsZW1lbnRTdXBwb3J0c0Rp
c3BsYXlDb250ZW50cyA9IGlzPEhUTUxTbG90RWxlbWVudD4oZSk7CisjZW5kaWYKKyAgICAgICAg
ICAgIGlmICghZWxlbWVudFN1cHBvcnRzRGlzcGxheUNvbnRlbnRzKQorICAgICAgICAgICAgICAg
IHN0eWxlLnNldERpc3BsYXkoSU5MSU5FKTsKKyAgICAgICAgfQogICAgICAgICAvLyBJZiB3ZSBo
YXZlIGEgPHRkPiB0aGF0IHNwZWNpZmllcyBhIGZsb2F0IHByb3BlcnR5LCBpbiBxdWlya3MgbW9k
ZSB3ZSBqdXN0IGRyb3AgdGhlIGZsb2F0CiAgICAgICAgIC8vIHByb3BlcnR5LgogICAgICAgICAv
LyBTaXRlcyBhbHNvIGNvbW1vbmx5IHVzZSBkaXNwbGF5OmlubGluZS9ibG9jayBvbiA8dGQ+cyBh
bmQgPHRhYmxlPnMuIEluIHF1aXJrcyBtb2RlIHdlIGZvcmNlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9jc3MvaHRtbC5jc3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3Nz
CShyZXZpc2lvbiAxOTkwOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MJKHdvcmtp
bmcgY29weSkKQEAgLTEyMjMsNiArMTIyMywxMCBAQCBiZG8gewogICAgIHVuaWNvZGUtYmlkaTog
YmlkaS1vdmVycmlkZTsKIH0KIAorc2xvdCB7CisgICAgZGlzcGxheTogY29udGVudHM7Cit9CisK
ICNpZiBkZWZpbmVkKFdURl9QTEFURk9STV9JT1MpICYmIFdURl9QTEFURk9STV9JT1MKIGFwcGxl
dCwgZW1iZWQsIG9iamVjdCwgaW1nIHsKICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6
IHJnYmEoMCwgMCwgMCwgMCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAx
OTkwOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzNzUsNiArMTM3NSwxOCBAQCBFbGVtZW50U3R5bGUgRWxlbWVudDo6cmVzb2x2ZVN0eWxl
KFJlbmRlCiAgICAgcmV0dXJuIHN0eWxlUmVzb2x2ZXIoKS5zdHlsZUZvckVsZW1lbnQoKnRoaXMs
IHBhcmVudFN0eWxlKTsKIH0KIAorYm9vbCBFbGVtZW50OjpoYXNEaXNwbGF5Q29udGVudHMoKSBj
b25zdAoreworICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYmIGVsZW1lbnRSYXJlRGF0YSgpLT5o
YXNEaXNwbGF5Q29udGVudHMoKTsKK30KKwordm9pZCBFbGVtZW50OjpzZXRIYXNEaXNwbGF5Q29u
dGVudHMoYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAoaGFzRGlzcGxheUNvbnRlbnRzKCkgPT0gdmFs
dWUpCisgICAgICAgIHJldHVybjsKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5zZXRIYXNE
aXNwbGF5Q29udGVudHModmFsdWUpOworfQorCiAvLyBSZXR1cm5zIHRydWUgaXMgdGhlIGdpdmVu
IGF0dHJpYnV0ZSBpcyBhbiBldmVudCBoYW5kbGVyLgogLy8gV2UgY29uc2lkZXIgYW4gZXZlbnQg
aGFuZGxlciBhbnkgYXR0cmlidXRlIHRoYXQgYmVnaW5zIHdpdGggIm9uIi4KIC8vIEl0IGlzIGEg
c2ltcGxlIHNvbHV0aW9uIHRoYXQgaGFzIHRoZSBhZHZhbnRhZ2Ugb2Ygbm90IHJlcXVpcmluZyBh
bnkKQEAgLTE0NzgsNyArMTQ5MCw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgRWxlbWVudDo6aW1h
Z2VTb3VyY2UKIAogYm9vbCBFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZSkKIHsKLSAgICByZXR1cm4gc3R5bGUuZGlzcGxheSgpICE9IE5PTkU7CisgICAg
cmV0dXJuIHN0eWxlLmRpc3BsYXkoKSAhPSBOT05FICYmIHN0eWxlLmRpc3BsYXkoKSAhPSBDT05U
RU5UUzsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJldmlzaW9uIDE5OTA5NykKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUwMSw2ICs1MDEsOSBA
QCBwdWJsaWM6CiAgICAgU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlcigpOwogICAgIEVsZW1l
bnRTdHlsZSByZXNvbHZlU3R5bGUoUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKTsKIAorICAgIGJv
b2wgaGFzRGlzcGxheUNvbnRlbnRzKCkgY29uc3Q7CisgICAgdm9pZCBzZXRIYXNEaXNwbGF5Q29u
dGVudHMoYm9vbCk7CisKICAgICB2aXJ0dWFsIHZvaWQgaXNWaXNpYmxlSW5WaWV3cG9ydENoYW5n
ZWQoKSB7IH0KIAogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OnNldEF0dHJpYnV0ZUV2ZW50TGlz
dGVuZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEFuZFRleHREZXNjZW5kYW50
SXRlcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEFuZFRl
eHREZXNjZW5kYW50SXRlcmF0b3IuaAkocmV2aXNpb24gMTk5MDk3KQorKysgU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUwLDggKzUwLDggQEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFbGVt
ZW50QW5kVGV4dERlc2NlbmRhbnRJdGVyYXRvciYgb3RoZXIpIGNvbnN0OwogICAgIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBFbGVtZW50QW5kVGV4dERlc2NlbmRhbnRJdGVyYXRvciYgb3RoZXIpIGNv
bnN0OwogCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9jdXJyZW50OyB9
Ci0gICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudDsg
fQorICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIW1fZGVwdGg7IH0KKyAgICBl
eHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9kZXB0aDsgfQogCiAgICAg
dm9pZCBkcm9wQXNzZXJ0aW9ucygpOwogCkBAIC0xMTUsNyArMTE1LDcgQEAgaW5saW5lIEVsZW1l
bnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yOgogfQogCiBpbmxpbmUgRWxlbWVudEFuZFRleHRE
ZXNjZW5kYW50SXRlcmF0b3I6OkVsZW1lbnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yKENvbnRh
aW5lck5vZGUmIHJvb3QsIE5vZGUqIGN1cnJlbnQpCi0gICAgOiBtX2N1cnJlbnQoY3VycmVudCAh
PSAmcm9vdCA/IGN1cnJlbnQgOiBudWxscHRyKQorICAgIDogbV9jdXJyZW50KGN1cnJlbnQpCiAj
aWYgIUFTU0VSVF9ESVNBQkxFRAogICAgICwgbV9hc3NlcnRpb25zKG1fY3VycmVudCkKICNlbmRp
ZgpAQCAtMTIzLDYgKzEyMyw4IEBAIGlubGluZSBFbGVtZW50QW5kVGV4dERlc2NlbmRhbnRJdGVy
YXRvcjoKICAgICBpZiAoIW1fY3VycmVudCkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVChp
c0VsZW1lbnRPclRleHQoKm1fY3VycmVudCkpOworICAgIGlmIChtX2N1cnJlbnQgPT0gJnJvb3Qp
CisgICAgICAgIHJldHVybjsKIAogICAgIFZlY3RvcjxOb2RlKiwgMjA+IGFuY2VzdG9yU3RhY2s7
CiAgICAgYXV0byogYW5jZXN0b3IgPSBtX2N1cnJlbnQtPnBhcmVudE5vZGUoKTsKQEAgLTI4NSw3
ICsyODcsNyBAQCBpbmxpbmUgY29uc3QgTm9kZSogRWxlbWVudEFuZFRleHREZXNjZW5kCiBpbmxp
bmUgYm9vbCBFbGVtZW50QW5kVGV4dERlc2NlbmRhbnRJdGVyYXRvcjo6b3BlcmF0b3I9PShjb25z
dCBFbGVtZW50QW5kVGV4dERlc2NlbmRhbnRJdGVyYXRvciYgb3RoZXIpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKCFtX2Fzc2VydGlvbnMuZG9tVHJlZUhhc011dGF0ZWQoKSk7Ci0gICAgcmV0dXJuIG1f
Y3VycmVudCA9PSBvdGhlci5tX2N1cnJlbnQ7CisgICAgcmV0dXJuIG1fY3VycmVudCA9PSBvdGhl
ci5tX2N1cnJlbnQgfHwgKCFtX2RlcHRoICYmICFvdGhlci5tX2RlcHRoKTsKIH0KIAogaW5saW5l
IGJvb2wgRWxlbWVudEFuZFRleHREZXNjZW5kYW50SXRlcmF0b3I6Om9wZXJhdG9yIT0oY29uc3Qg
RWxlbWVudEFuZFRleHREZXNjZW5kYW50SXRlcmF0b3ImIG90aGVyKSBjb25zdApJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAkocmV2aXNpb24gMTk5MDk3KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNiAr
MTA3LDkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUGVuZGluZ1Jlc291cmNlcygpIGNvbnN0IHsg
cmV0dXJuIG1faGFzUGVuZGluZ1Jlc291cmNlczsgfQogICAgIHZvaWQgc2V0SGFzUGVuZGluZ1Jl
c291cmNlcyhib29sIGhhcykgeyBtX2hhc1BlbmRpbmdSZXNvdXJjZXMgPSBoYXM7IH0KIAorICAg
IGJvb2wgaGFzRGlzcGxheUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNEaXNwbGF5Q29u
dGVudHM7IH0KKyAgICB2b2lkIHNldEhhc0Rpc3BsYXlDb250ZW50cyhib29sIHZhbHVlKSB7IG1f
aGFzRGlzcGxheUNvbnRlbnRzID0gdmFsdWU7IH0KKwogcHJpdmF0ZToKICAgICBpbnQgbV90YWJJ
bmRleDsKICAgICB1bnNpZ25lZCBzaG9ydCBtX2NoaWxkSW5kZXg7CkBAIC0xMjYsNiArMTI5LDcg
QEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGlsZFJ1
bGVzIDogMTsKICAgICB1bnNpZ25lZCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJkUG9zaXRp
b25hbFJ1bGVzIDogMTsKICAgICB1bnNpZ25lZCBtX2NoaWxkcmVuQWZmZWN0ZWRCeVByb3BlcnR5
QmFzZWRCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyA6IDE7CisgICAgdW5zaWduZWQgbV9oYXNEaXNw
bGF5Q29udGVudHMgOiAxOwogCiAgICAgUmVnaW9uT3ZlcnNldFN0YXRlIG1fcmVnaW9uT3ZlcnNl
dFN0YXRlOwogCkBAIC0xNjYsNiArMTcwLDcgQEAgaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6RWxl
bWVudFJhcmVEYXRhKAogICAgICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlMYXN0Q2hpbGRSdWxlcyhm
YWxzZSkKICAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5QmFja3dhcmRQb3NpdGlvbmFsUnVsZXMo
ZmFsc2UpCiAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeVByb3BlcnR5QmFzZWRCYWNrd2FyZFBv
c2l0aW9uYWxSdWxlcyhmYWxzZSkKKyAgICAsIG1faGFzRGlzcGxheUNvbnRlbnRzKGZhbHNlKQog
ICAgICwgbV9yZWdpb25PdmVyc2V0U3RhdGUoUmVnaW9uVW5kZWZpbmVkKQogICAgICwgbV9taW5p
bXVtU2l6ZUZvclJlc2l6aW5nKGRlZmF1bHRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKCkpCiB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTbG90RWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50LmgJKHJldmlzaW9uIDE5OTA5NykK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDE3ICs1Myw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc0VucXVldWVkU2xvdENo
YW5nZUV2ZW50IHsgZmFsc2UgfTsKIH07CiAKLS8vIFNsb3RzIGhhdmUgaW1wbGljaXQgZGlzcGxh
eTpjb250ZW50cyB1bnRpbCBpdCBpcyBzdXBwb3J0ZWQgZm9yIHJlYWxzLgotaW5saW5lIGJvb2wg
aGFzSW1wbGljaXREaXNwbGF5Q29udGVudHMoY29uc3QgRWxlbWVudCYgZWxlbWVudCkgeyByZXR1
cm4gaXM8SFRNTFNsb3RFbGVtZW50PihlbGVtZW50KTsgfQotCi19Ci0KLSNlbHNlCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotaW5saW5lIGJvb2wgaGFzSW1wbGljaXREaXNwbGF5Q29udGVudHMo
Y29uc3QgRWxlbWVudCYpIHsgcmV0dXJuIGZhbHNlOyB9Ci0KIH0KIAogI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxOTkw
OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE2MSw2ICsxNjEsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUmVu
ZGVyRWxlbWVudDo6CiAKICAgICBzd2l0Y2ggKHN0eWxlLmdldCgpLmRpc3BsYXkoKSkgewogICAg
IGNhc2UgTk9ORToKKyAgICBjYXNlIENPTlRFTlRTOgogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBjYXNlIElOTElORToKICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlcklu
bGluZT4oZWxlbWVudCwgV1RGTW92ZShzdHlsZSkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgJKHJldmlzaW9u
IDE5OTA5NykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NjMsNiArNTYzLDcgQEAgZW51bSBFRGlzcGxh
eSB7CiAgICAgVEFCTEVfQ09MVU1OX0dST1VQLCBUQUJMRV9DT0xVTU4sIFRBQkxFX0NFTEwsCiAg
ICAgVEFCTEVfQ0FQVElPTiwgQk9YLCBJTkxJTkVfQk9YLAogICAgIEZMRVgsIFdFQktJVF9GTEVY
LCBJTkxJTkVfRkxFWCwgV0VCS0lUX0lOTElORV9GTEVYLAorICAgIENPTlRFTlRTLAogI2lmIEVO
QUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgR1JJRCwgSU5MSU5FX0dSSUQsCiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVBvc2l0aW9uLmNwcAkocmV2aXNp
b24gMTk5MDk3KQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVBvc2l0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCBSZW5kZXJPYmplY3QqIFJlbmRlclRy
ZWVQb3NpdGlvbjo6bmV4dFNpCiAKICAgICB3aGlsZSAoaXQgIT0gZW5kKSB7CiAgICAgICAgIGF1
dG8mIG5vZGUgPSAqaXQ7Ci0gICAgICAgIGJvb2wgaGFzRGlzcGxheUNvbnRlbnRzID0gaXM8RWxl
bWVudD4obm9kZSkgJiYgaGFzSW1wbGljaXREaXNwbGF5Q29udGVudHMoZG93bmNhc3Q8RWxlbWVu
dD4obm9kZSkpOworICAgICAgICBib29sIGhhc0Rpc3BsYXlDb250ZW50cyA9IGlzPEVsZW1lbnQ+
KG5vZGUpICYmIGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpLmhhc0Rpc3BsYXlDb250ZW50cygpOwog
ICAgICAgICBpZiAoaGFzRGlzcGxheUNvbnRlbnRzKSB7CiAgICAgICAgICAgICBpdC50cmF2ZXJz
ZU5leHQoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3R5
bGUvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0
eWxlL1JlbmRlclRyZWVVcGRhdGVyLmNwcAkocmV2aXNpb24gMTk5MDk3KQorKysgU291cmNlL1dl
YkNvcmUvc3R5bGUvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3
ICs2OCw3IEBAIHN0YXRpYyBDb250YWluZXJOb2RlKiBmaW5kUmVuZGVyaW5nUm9vdCgKICAgICBm
b3IgKGF1dG8mIGFuY2VzdG9yIDogY29tcG9zZWRUcmVlQW5jZXN0b3JzKG5vZGUpKSB7CiAgICAg
ICAgIGlmIChhbmNlc3Rvci5yZW5kZXJlcigpKQogICAgICAgICAgICAgcmV0dXJuICZhbmNlc3Rv
cjsKLSAgICAgICAgaWYgKCFoYXNJbXBsaWNpdERpc3BsYXlDb250ZW50cyhhbmNlc3RvcikpCisg
ICAgICAgIGlmICghYW5jZXN0b3IuaGFzRGlzcGxheUNvbnRlbnRzKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgcmV0dXJuICZub2RlLmRvY3VtZW50KCk7CkBAIC0x
NTEsNyArMTUxLDcgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVuZGVyVHJlZQog
CiAgICAgICAgIHVwZGF0ZUVsZW1lbnRSZW5kZXJlcihlbGVtZW50LCAqZWxlbWVudFVwZGF0ZSk7
CiAKLSAgICAgICAgYm9vbCBtYXlIYXZlUmVuZGVyZWREZXNjZW5kYW50cyA9IGVsZW1lbnQucmVu
ZGVyZXIoKSB8fCAoaGFzSW1wbGljaXREaXNwbGF5Q29udGVudHMoZWxlbWVudCkgJiYgc2hvdWxk
Q3JlYXRlUmVuZGVyZXIoZWxlbWVudCwgcmVuZGVyVHJlZVBvc2l0aW9uKCkucGFyZW50KCkpKTsK
KyAgICAgICAgYm9vbCBtYXlIYXZlUmVuZGVyZWREZXNjZW5kYW50cyA9IGVsZW1lbnQucmVuZGVy
ZXIoKSB8fCAoZWxlbWVudC5oYXNEaXNwbGF5Q29udGVudHMoKSAmJiBzaG91bGRDcmVhdGVSZW5k
ZXJlcihlbGVtZW50LCByZW5kZXJUcmVlUG9zaXRpb24oKS5wYXJlbnQoKSkpOwogICAgICAgICBp
ZiAoIW1heUhhdmVSZW5kZXJlZERlc2NlbmRhbnRzKSB7CiAgICAgICAgICAgICBpdC50cmF2ZXJz
ZU5leHRTa2lwcGluZ0NoaWxkcmVuKCk7CiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTI0NCw3
ICsyNDQsMTAgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlRWxlbWVudFJlbgogICAg
IGlmIChzaG91bGRUZWFyRG93blJlbmRlcmVycykKICAgICAgICAgdGVhckRvd25SZW5kZXJlcnMo
ZWxlbWVudCwgVGVhcmRvd25UeXBlOjpLZWVwSG92ZXJBbmRBY3RpdmUpOwogCi0gICAgYm9vbCBz
aG91bGRDcmVhdGVOZXdSZW5kZXJlciA9ICFlbGVtZW50LnJlbmRlcmVyKCkgJiYgdXBkYXRlLnN0
eWxlICYmICFoYXNJbXBsaWNpdERpc3BsYXlDb250ZW50cyhlbGVtZW50KTsKKyAgICBib29sIGhh
c0Rpc3BsYXlDb250ZXN0ID0gdXBkYXRlLnN0eWxlICYmIHVwZGF0ZS5zdHlsZS0+ZGlzcGxheSgp
ID09IENPTlRFTlRTOworICAgIGVsZW1lbnQuc2V0SGFzRGlzcGxheUNvbnRlbnRzKGhhc0Rpc3Bs
YXlDb250ZXN0KTsKKworICAgIGJvb2wgc2hvdWxkQ3JlYXRlTmV3UmVuZGVyZXIgPSAhZWxlbWVu
dC5yZW5kZXJlcigpICYmIHVwZGF0ZS5zdHlsZSAmJiAhaGFzRGlzcGxheUNvbnRlc3Q7CiAgICAg
aWYgKHNob3VsZENyZWF0ZU5ld1JlbmRlcmVyKSB7CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc0N1
c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpKQogICAgICAgICAgICAgZWxlbWVudC53aWxsQXR0
YWNoUmVuZGVyZXJzKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNv
bHZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVz
b2x2ZXIuY3BwCShyZXZpc2lvbiAxOTkwOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVRyZWVSZXNvbHZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Miw5ICsxNzIsNiBAQCBzdGF0
aWMgYm9vbCBhZmZlY3RzUmVuZGVyZWRTdWJ0cmVlKEVsZW1lCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIGlmIChuZXdTdHlsZS5kaXNwbGF5KCkgIT0gTk9ORSkKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgLy8gRklYTUU6IE1ha2UgJ2NvbnRlbnRzJyBhbiBhY3R1YWwgZGlzcGxheSBwcm9w
ZXJ0eSB2YWx1ZS4KLSAgICBpZiAoaGFzSW1wbGljaXREaXNwbGF5Q29udGVudHMoZWxlbWVudCkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChlbGVtZW50LnJlbmRlcmVySXNOZWVkZWQo
bmV3U3R5bGUpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoZWxlbWVudC5zaG91bGRN
b3ZlVG9GbG93VGhyZWFkKG5ld1N0eWxlKSkKQEAgLTM3Niw3ICszNzMsNyBAQCB2b2lkIFRyZWVS
ZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSgpCiAgICAgICAgIEVsZW1lbnRVcGRhdGUgdXBk
YXRlOwogICAgICAgICB1cGRhdGUuc3R5bGUgPSBlbGVtZW50LnJlbmRlclN0eWxlKCk7CiAKLSAg
ICAgICAgYm9vbCBzaG91bGRSZXNvbHZlID0gcGFyZW50LmNoYW5nZSA+PSBJbmhlcml0IHx8IGVs
ZW1lbnQubmVlZHNTdHlsZVJlY2FsYygpIHx8IHNob3VsZFJlc29sdmVGb3JQc2V1ZG9FbGVtZW50
IHx8IGFmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcgfHwgaGFzSW1wbGljaXREaXNwbGF5Q29udGVu
dHMoZWxlbWVudCk7CisgICAgICAgIGJvb2wgc2hvdWxkUmVzb2x2ZSA9IHBhcmVudC5jaGFuZ2Ug
Pj0gSW5oZXJpdCB8fCBlbGVtZW50Lm5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaG91bGRSZXNvbHZl
Rm9yUHNldWRvRWxlbWVudCB8fCBhZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nIHx8IGVsZW1lbnQu
aGFzRGlzcGxheUNvbnRlbnRzKCk7CiAgICAgICAgIGlmIChzaG91bGRSZXNvbHZlKSB7CiAjaWYg
UExBVEZPUk0oSU9TKQogICAgICAgICAgICAgQ2hlY2tGb3JWaXNpYmlsaXR5Q2hhbmdlT25SZWNh
bGNTdHlsZSBjaGVja0ZvclZpc2liaWxpdHlDaGFuZ2UoJmVsZW1lbnQsIGVsZW1lbnQucmVuZGVy
U3R5bGUoKSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTkwOTkpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0wNC0wNiAgQW50dGkg
S29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGRpc3BsYXk6
IGNvbnRlbnRzIGZvciBzbG90cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ5NDM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjczMTkyMj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zOgorCisgICAgICAgIEVuYWJsZSBmYXN0L3NoYWRvdy1kb20v
Y3NzLXNjb3Bpbmctc2hhZG93LXNsb3QtZGlzcGxheS1vdmVycmlkZS5odG1sLCB0aGUgdGVzdCBm
b3Igb3ZlcnJpZGluZyBzbG90IGRpc3BsYXkgdmFsdWUuCisKIDIwMTYtMDQtMDYgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE5NjYyOSk6
IE1lc3NhZ2VzIHRleHQgc2l6ZSBvbmx5IGNoYW5nZXMgZm9yIHNlbmRpbmcgdGV4dCwgY29udmVy
c2F0aW9uIHRleHQgc2l6ZSBkb2VzIG5vdCBjaGFuZ2UKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxOTkwOTcpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTIyOSw3
ICsxMjI5LDYgQEAgd2Via2l0Lm9yZy9iLzE0OTEyOCBmYXN0L3RleHQvY29udHJvbC1jaAogCiB3
ZWJraXQub3JnL2IvMTQ4Njk1IGZhc3Qvc2hhZG93LWRvbSBbIFBhc3MgXQogd2Via2l0Lm9yZy9i
LzE0OTQ0MCBmYXN0L3NoYWRvdy1kb20vY3NzLXNjb3Bpbmctc2hhZG93LWhvc3QtZnVuY3Rpb25h
bC1ydWxlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNDk0NDEgZmFz
dC9zaGFkb3ctZG9tL2Nzcy1zY29waW5nLXNoYWRvdy1zbG90LWRpc3BsYXktb3ZlcnJpZGUuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogCiAjIFRvdWNoIGV2ZW50cyBpcyBub3QgZW5hYmxlZCBv
biBNYWMKIHdlYmtpdC5vcmcvYi8xNDk1OTIgZmFzdC9zaGFkb3ctZG9tL3RvdWNoLWV2ZW50LWlv
cy5odG1sIFsgRmFpbHVyZSBdCg==
</data>
<flag name="review"
          id="300084"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>