<?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>109203</bug_id>
          
          <creation_ts>2013-02-07 09:14:17 -0800</creation_ts>
          <short_desc>[Mac] respect in-band caption color</short_desc>
          <delta_ts>2013-02-08 21:57:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>dino</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>827595</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-07 09:14:17 -0800</bug_when>
    <thetext>In-band captions can specify foreground (text) and background color.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827596</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-02-07 09:14:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/13171845&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828908</commentid>
    <comment_count>2</comment_count>
      <attachid>187404</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-08 20:56:25 -0800</bug_when>
    <thetext>Created attachment 187404
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828909</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-08 20:58:42 -0800</bug_when>
    <thetext>Attachment 187404 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/media/track/track-in-band-style-expected.txt&apos;, u&apos;LayoutTests/media/track/track-in-band-style.html&apos;, u&apos;LayoutTests/platform/chromium/TestExpectations&apos;, u&apos;LayoutTests/platform/efl/TestExpectations&apos;, u&apos;LayoutTests/platform/gtk/TestExpectations&apos;, u&apos;LayoutTests/platform/mac/TestExpectations&apos;, u&apos;LayoutTests/platform/qt/TestExpectations&apos;, u&apos;LayoutTests/platform/win/TestExpectations&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/html/track/InbandTextTrack.cpp&apos;, u&apos;Source/WebCore/html/track/TextTrackCue.h&apos;, u&apos;Source/WebCore/html/track/TextTrackCueGeneric.cpp&apos;, u&apos;Source/WebCore/html/track/TextTrackCueGeneric.h&apos;, u&apos;Source/WebCore/page/CaptionUserPreferencesMac.mm&apos;, u&apos;Source/WebCore/platform/graphics/InbandTextTrackPrivateClient.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp&apos;]&quot; exit_code: 1
Source/WebCore/html/track/TextTrackCue.h:144:  The return type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 1 in 18 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>828921</commentid>
    <comment_count>4</comment_count>
      <attachid>187406</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-08 21:16:30 -0800</bug_when>
    <thetext>Created attachment 187406
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828926</commentid>
    <comment_count>5</comment_count>
      <attachid>187406</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-08 21:27:45 -0800</bug_when>
    <thetext>Comment on attachment 187406
Updated patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        * WebCore.xcodeproj/project.pbxproj:

Probably should mention you exported HTMLDivElement. Actually, why do you do this?

&gt; LayoutTests/media/track/track-in-band-style-expected.txt:14
&gt; +EXPECTED (getComputedStyle(cueDisplayElement).color == &apos;rgb(255, 255, 255)&apos;) OK
&gt; +EXPECTED (getComputedStyle(cueNode).backgroundColor == &apos;rgb(0, 0, 0)&apos;) OK

Are these actually set in counting-captioned.mov? I&apos;m wondering what the default values would be, and whether this test would pass on any captioned movie that doesn&apos;t set the style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828953</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-08 21:56:55 -0800</bug_when>
    <thetext>Committed http://trac.webkit.org/r142349</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187404</attachid>
            <date>2013-02-08 20:56:25 -0800</date>
            <delta_ts>2013-02-08 21:16:30 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_10.txt</filename>
            <type>text/plain</type>
            <size>23918</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjM0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDEzLTAyLTA4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIHJlc3BlY3Qg
aW4tYmFuZCBjYXB0aW9uIGNvbG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDkyMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwK
KworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBodG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJh
bmRUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUpOiBTZXQgY3VlIGNvbG9ycyBpZiBuZWNlc3Nhcnku
CisKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dFRyYWNrQ3VlOjplbGVtZW50KTogTmV3LCBhY2Nlc3NvciBmb3IgdGhlIGN1ZSBlbGVt
ZW50IHNvIGl0IGNhbiBiZSBzdHlsZWQuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFj
a0N1ZUdlbmVyaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlR2VuZXJpY0Jv
eEVsZW1lbnQ6OmFwcGx5Q1NTUHJvcGVydGllcyk6IFNldCBjb250YWluZXIgYW5kIGN1ZSBiYWNr
Z3JvdW5kIAorICAgICAgICAgICAgY29sb3IgaWYgbmVjZXNzYXJ5LgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dFRyYWNrQ3VlR2VuZXJpYzo6b3BlcmF0b3I9PSk6IENvbXBhcmUgY3VlIGNvbG9ycy4K
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRUcmFja0N1ZUdlbmVyaWM6OmZvcmVncm91bmRDb2xvcik6IEFkZCBjb2xvciBh
Y2Nlc3NvcnMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVHZW5lcmljOjpzZXRGb3Jl
Z3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlR2VuZXJpYzo6YmFj
a2dyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUdlbmVyaWM6OnNl
dEJhY2tncm91bmRDb2xvcik6CisKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5j
ZXNNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpy
ZWdpc3RlckZvckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MpOiBBbHdheXMKKyAg
ICAgICAgICAgIHJlZ2VuZXJhdGUgb3ZlcnJpZGUgQ1NTIHdoZW4gYW4gZWxlbWVudCByZWdpc3Rl
cnMgZm9yIGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5j
ZXNNYWM6OmNhcHRpb25zV2luZG93Q1NTKTogRHJpdmUgYnkgZml4IG9mICJ3aW5kb3cgY29sb3Ii
IHBhZGRpbmcuCisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpj
YXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZSk6IExvZyB0aGUgc3R5bGVzaGVldCBnZW5lcmF0ZWQK
KyAgICAgICAgICAgIGZvciBlYXNpZXIgZGVidWdnaW5nLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6R2VuZXJpY0N1ZURhdGE6OmZvcmVncm91bmRDb2xvcik6IEFkZCBjb2xvciBnZXR0ZXJzL3Nl
dHRlcnMuCisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YTo6c2V0Rm9yZWdyb3VuZENv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhOjpiYWNrZ3JvdW5kQ29sb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGE6OnNldEJhY2tncm91bmRDb2xvcik6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYWtlUkdCQTMyRnJvbUFSR0JD
RkFycmF5KTogSW5pdGlhbGl6ZSBhIFJHQkEzMiBmcm9tIGEgQ0ZBcnJheSBvZiBjb2xvciB2YWx1
ZXMuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNz
Q3VlQXR0cmlidXRlcyk6IFByb2Nlc3MgY3VlIGNvbG9ycy4KKwogMjAxMy0wMi0wOCAgRGVhbiBK
YWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgU25hcHNob3R0ZWQgcGx1Zy1pbiBz
aG91bGQgdXNlIHNoYWRvdyByb290CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDIzMzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTQ0NjksNyArNDQ2OSw3IEBACiAJCUE4RUE3Q0IyMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1M
UGFyYWdyYXBoRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEVBN0NBNDBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTFBhcmFncmFwaEVsZW1l
bnQuY3BwICovOyB9OwogCQlBOEVBN0NCMzBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTEhSRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVB
N0NBNTBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTEhSRWxlbWVudC5jcHAgKi87IH07CiAJCUE4RUE3
Q0I1MEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MUGFyYWdyYXBoRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFQTdDQTcwQTE5MkI5QzAwQThF
RjVGIC8qIEhUTUxQYXJhZ3JhcGhFbGVtZW50LmggKi87IH07Ci0JCUE4RUE3Q0I3MEExOTJCOUMw
MEE4RUY1RiAvKiBIVE1MRGl2RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThFQTdDQTkwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxEaXZFbGVt
ZW50LmggKi87IH07CisJCUE4RUE3Q0I3MEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MRGl2RWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFQTdD
QTkwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxEaXZFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQThFQTdDQjgwQTE5MkI5QzAwQThFRjVG
IC8qIEhUTUxIZWFkaW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThFQTdDQUEwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxIZWFkaW5nRWxl
bWVudC5oICovOyB9OwogCQlBOEVBN0QyQjBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVB
N0QyMzBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJQThFQTdEMkMwQTE5Mzg1NTAwQThFRjVGIC8qIEhU
TUxNYXBFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEVBN0QyNDBBMTkzODU1MDBBOEVGNUYgLyogSFRNTE1hcEVsZW1lbnQuaCAqLzsgfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAJ
KHJldmlzaW9uIDE0MjMzNCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4
dFRyYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDYgKzEyNywxMSBAQCB2b2lkIEluYmFu
ZFRleHRUcmFjazo6YWRkR2VuZXJpY0N1ZShJbmJhCiAgICAgICAgIGN1ZS0+c2V0TGluZShscm91
bmQoY3VlRGF0YS0+bGluZSgpKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgaWYgKGN1ZURhdGEt
PnNpemUoKSA+IDApCiAgICAgICAgIGN1ZS0+c2V0U2l6ZShscm91bmQoY3VlRGF0YS0+c2l6ZSgp
KSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgaWYgKGN1ZURhdGEtPmJhY2tncm91bmRDb2xvcigp
LmlzVmFsaWQoKSkKKyAgICAgICAgY3VlLT5zZXRCYWNrZ3JvdW5kQ29sb3IoY3VlRGF0YS0+YmFj
a2dyb3VuZENvbG9yKCkucmdiKCkpOworICAgIGlmIChjdWVEYXRhLT5mb3JlZ3JvdW5kQ29sb3Io
KS5pc1ZhbGlkKCkpCisgICAgICAgIGN1ZS0+c2V0Rm9yZWdyb3VuZENvbG9yKGN1ZURhdGEtPmZv
cmVncm91bmRDb2xvcigpLnJnYigpKTsKKwogICAgIGlmIChjdWVEYXRhLT5hbGlnbigpID09IEdl
bmVyaWNDdWVEYXRhOjpTdGFydCkKICAgICAgICAgY3VlLT5zZXRBbGlnbihBU0NJSUxpdGVyYWwo
InN0YXJ0IiksIElHTk9SRV9FWENFUFRJT04pOwogICAgIGVsc2UgaWYgKGN1ZURhdGEtPmFsaWdu
KCkgPT0gR2VuZXJpY0N1ZURhdGE6Ok1pZGRsZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuaAkocmV2aXNpb24gMTQyMzM0KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBA
QAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisj
aW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlRleHRUcmFjay5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBAIC00Myw3
ICs0NCw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7
Ci1jbGFzcyBIVE1MRGl2RWxlbWVudDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBj
bGFzcyBUZXh0VHJhY2s7CiBjbGFzcyBUZXh0VHJhY2tDdWU7CkBAIC0xNDEsNiArMTQxLDggQEAg
cHVibGljOgogICAgIHZvaWQgc2V0SXNBY3RpdmUoYm9vbCk7CiAKICAgICBQYXNzUmVmUHRyPFRl
eHRUcmFja0N1ZUJveD4gZ2V0RGlzcGxheVRyZWUoY29uc3QgSW50U2l6ZSYgdmlkZW9TaXplKTsK
KyAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2Fs
bERvY3VtZW50Tm9kZXM7IH0KKwogICAgIHZvaWQgdXBkYXRlRGlzcGxheVRyZWUoZmxvYXQpOwog
ICAgIHZvaWQgcmVtb3ZlRGlzcGxheVRyZWUoKTsKICAgICB2b2lkIG1hcmtGdXR1cmVBbmRQYXN0
Tm9kZXMoQ29udGFpbmVyTm9kZSosIGRvdWJsZSwgZG91YmxlKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmNwcAkocmV2aXNpb24g
MTQyMzM0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmlj
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNiArODAsMTIgQEAgdm9pZCBUZXh0VHJhY2tDdWVH
ZW5lcmljQm94RWxlbWVudDo6YXBwbAogICAgICAgICAgICAgc2V0SW5saW5lU3R5bGVQcm9wZXJ0
eShDU1NQcm9wZXJ0eUhlaWdodCwgc2l6ZSwgIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VO
VEFHRSk7CiAgICAgfQogCisgICAgaWYgKGN1ZS0+Zm9yZWdyb3VuZENvbG9yKCkuaXNWYWxpZCgp
KQorICAgICAgICBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5Q29sb3IsIGN1ZS0+
Zm9yZWdyb3VuZENvbG9yKCkuc2VyaWFsaXplZCgpKTsKKyAgICAKKyAgICBpZiAoY3VlLT5iYWNr
Z3JvdW5kQ29sb3IoKS5pc1ZhbGlkKCkpCisgICAgICAgIGN1ZS0+ZWxlbWVudCgpLT5zZXRJbmxp
bmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCBjdWUtPmJhY2tncm91
bmRDb2xvcigpLnNlcmlhbGl6ZWQoKSk7CisKICAgICBpZiAoY3VlLT5nZXRXcml0aW5nRGlyZWN0
aW9uKCkgPT0gVGV4dFRyYWNrQ3VlOjpIb3Jpem9udGFsKQogICAgICAgICBzZXRJbmxpbmVTdHls
ZVByb3BlcnR5KENTU1Byb3BlcnR5SGVpZ2h0LCBDU1NWYWx1ZUF1dG8pOwogICAgIGVsc2UKQEAg
LTE0Miw2ICsxNDgsMTAgQEAgYm9vbCBUZXh0VHJhY2tDdWVHZW5lcmljOjpvcGVyYXRvcj09KGNv
bgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKG1fZm9udE5hbWUgIT0gb3RoZXItPmZv
bnROYW1lKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobV9mb3JlZ3JvdW5kQ29s
b3IgIT0gb3RoZXItPmZvcmVncm91bmRDb2xvcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgaWYgKG1fYmFja2dyb3VuZENvbG9yICE9IG90aGVyLT5iYWNrZ3JvdW5kQ29sb3IoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIFRleHRUcmFja0N1ZTo6b3BlcmF0b3I9
PShjdWUpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVH
ZW5lcmljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2tDdWVHZW5lcmljLmgJKHJldmlzaW9uIDE0MjMzNCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJIVE1MRWxlbWVudC5o
IgorI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlLmgiCiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApAQCAtNjIsNiArNjIsMTIgQEAgcHVibGljOgogICAgIFN0
cmluZyBmb250TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udE5hbWU7IH0KICAgICB2b2lkIHNl
dEZvbnROYW1lKFN0cmluZyBuYW1lKSB7IG1fZm9udE5hbWUgPSBuYW1lOyB9CiAKKyAgICBDb2xv
ciBmb3JlZ3JvdW5kQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX2ZvcmVncm91bmRDb2xvcjsgfQor
ICAgIHZvaWQgc2V0Rm9yZWdyb3VuZENvbG9yKFJHQkEzMiBjb2xvcikgeyBtX2ZvcmVncm91bmRD
b2xvci5zZXRSR0IoY29sb3IpOyB9CisgICAgCisgICAgQ29sb3IgYmFja2dyb3VuZENvbG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kQ29sb3I7IH0KKyAgICB2b2lkIHNldEJhY2tncm91
bmRDb2xvcihSR0JBMzIgY29sb3IpIHsgbV9iYWNrZ3JvdW5kQ29sb3Iuc2V0UkdCKGNvbG9yKTsg
fQorCiAgICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgVGV4dFRyYWNrQ3VlJikgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIG9wZXJhdG9yIT0oY29uc3QgVGV4dFRyYWNr
Q3VlJiBjdWUpIGNvbnN0IE9WRVJSSURFCiAgICAgewpAQCAtNzMsNiArNzksOCBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIFRleHRUcmFja0N1ZUdlbmVyaWMoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGRvdWJsZSBzdGFydCwgZG91YmxlIGVuZCwgY29uc3QgU3RyaW5nJik7CiAgICAgCisgICAg
Q29sb3IgbV9mb3JlZ3JvdW5kQ29sb3I7CisgICAgQ29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7CiAg
ICAgZG91YmxlIG1fYmFzZUZvbnRTaXplUmVsYXRpdmVUb1ZpZGVvSGVpZ2h0OwogICAgIGRvdWJs
ZSBtX2ZvbnRTaXplTXVsdGlwbGllcjsKICAgICBTdHJpbmcgbV9mb250TmFtZTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0JKHJl
dmlzaW9uIDE0MjMzNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJl
bmNlc01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzYsOSArMzYsNyBAQAogI2ltcG9ydCAiS1VS
TC5oIgogI2ltcG9ydCAiTGFuZ3VhZ2UuaCIKICNpbXBvcnQgIkxvY2FsaXplZFN0cmluZ3MuaCIK
LSNpZiBNQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCi0jaW1wb3J0ICJNZWRp
YUFjY2Vzc2liaWxpdHkvTWVkaWFBY2Nlc3NpYmlsaXR5LmgiCi0jZW5kaWYKKyNpbXBvcnQgIkxv
Z2dpbmcuaCIKICNpbXBvcnQgIlBhZ2VHcm91cC5oIgogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIK
ICNpbXBvcnQgIlRleHRUcmFja0N1ZS5oIgpAQCAtNDcsNiArNDUsMTAgQEAKICNpbXBvcnQgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIE1BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwOTAKKyNpbXBvcnQgIk1lZGlhQWNjZXNzaWJpbGl0eS9NZWRpYUFjY2Vzc2liaWxp
dHkuaCIKKyNlbmRpZgorCisjaWYgTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5
MAogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKE1lZGlhQWNjZXNzaWJpbGl0eSkKIApA
QCAtMTE0LDEzICsxMTYsMTMgQEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpyZWdp
c3RlcgogCiAgICAgaWYgKCFrTUFYQ2FwdGlvbkFwcGVhcmFuY2VTZXR0aW5nc0NoYW5nZWROb3Rp
ZmljYXRpb24pCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIGlmICghbV9saXN0ZW5pbmdG
b3JQcmVmZXJlbmNlQ2hhbmdlcykgewogICAgICAgICBtX2xpc3RlbmluZ0ZvclByZWZlcmVuY2VD
aGFuZ2VzID0gdHJ1ZTsKICAgICAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlciAo
Q0ZOb3RpZmljYXRpb25DZW50ZXJHZXRMb2NhbENlbnRlcigpLCB0aGlzLCB1c2VyQ2FwdGlvblBy
ZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbkNhbGxiYWNrLCBrTUFYQ2FwdGlvbkFwcGVhcmFu
Y2VTZXR0aW5nc0NoYW5nZWROb3RpZmljYXRpb24sIE5VTEwsIENGTm90aWZpY2F0aW9uU3VzcGVu
c2lvbkJlaGF2aW9yQ29hbGVzY2UpOwotICAgICAgICB1cGRhdGVDYXB0aW9uU3R5bGVTaGVldE92
ZXJpZGUoKTsKICAgICB9CiAgICAgCisgICAgdXBkYXRlQ2FwdGlvblN0eWxlU2hlZXRPdmVyaWRl
KCk7CiAgICAgbV9jYXB0aW9uUHJlZmVyZW5jZUNoYW5nZUxpc3RlbmVycy5hZGQobGlzdGVuZXIp
OwogfQogCkBAIC0xNDgsMTAgKzE1MCw3IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWFjOjpjYXB0aW8KICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBl
bmQod2luZG93U3R5bGUpOwogICAgIGJ1aWxkZXIuYXBwZW5kKGdldFByb3BlcnR5TmFtZVN0cmlu
ZyhDU1NQcm9wZXJ0eVBhZGRpbmcpKTsKLSAgICBidWlsZGVyLmFwcGVuZCgiOiAuMmVtIik7Ci0g
ICAgaWYgKGJlaGF2aW9yID09IGtNQUNhcHRpb25BcHBlYXJhbmNlQmVoYXZpb3JVc2VWYWx1ZSkK
LSAgICAgICAgYnVpbGRlci5hcHBlbmQoIiAhaW1wb3J0YW50Iik7Ci0gICAgYnVpbGRlci5hcHBl
bmQoJzsnKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiOiAuNGVtICFpbXBvcnRhbnQ7Iik7CiAgICAg
CiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KQEAgLTM2OCw2ICszNjcsOCBAQCBT
dHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6Y2FwdGlvCiAgICAgICAgIGNhcHRpb25z
T3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgnfScpOwogICAgIH0KIAorICAgIExPRyhNZWRpYSwg
IkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlU2V0
dGluZyBzeXRsZSB0bzpcbiVzIiwgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKKwogICAgIHJldHVybiBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVl
dC50b1N0cmluZygpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oCShy
ZXZpc2lvbiAxNDIzMzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJh
bmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcg
QEAKICNpZm5kZWYgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudF9oCiAjZGVmaW5lIEluYmFu
ZFRleHRUcmFja1ByaXZhdGVDbGllbnRfaAogCisjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApA
QCAtODksNyArOTAsMTMgQEAgcHVibGljOgogCiAgICAgZG91YmxlIHJlbGF0aXZlRm9udFNpemUo
KSBjb25zdCB7IHJldHVybiBtX3JlbGF0aXZlRm9udFNpemU7IH0KICAgICB2b2lkIHNldFJlbGF0
aXZlRm9udFNpemUoZG91YmxlIHJlbGF0aXZlRm9udFNpemUpIHsgbV9yZWxhdGl2ZUZvbnRTaXpl
ID0gcmVsYXRpdmVGb250U2l6ZTsgfQotICAgIAorCisgICAgQ29sb3IgZm9yZWdyb3VuZENvbG9y
KCkgY29uc3QgeyByZXR1cm4gbV9mb3JlZ3JvdW5kQ29sb3I7IH0KKyAgICB2b2lkIHNldEZvcmVn
cm91bmRDb2xvcihSR0JBMzIgY29sb3IpIHsgbV9mb3JlZ3JvdW5kQ29sb3Iuc2V0UkdCKGNvbG9y
KTsgfQorCisgICAgQ29sb3IgYmFja2dyb3VuZENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9iYWNr
Z3JvdW5kQ29sb3I7IH0KKyAgICB2b2lkIHNldEJhY2tncm91bmRDb2xvcihSR0JBMzIgY29sb3Ip
IHsgbV9iYWNrZ3JvdW5kQ29sb3Iuc2V0UkdCKGNvbG9yKTsgfQorCiBwcml2YXRlOgogICAgIGRv
dWJsZSBtX3N0YXJ0VGltZTsKICAgICBkb3VibGUgbV9lbmRUaW1lOwpAQCAtMTAyLDYgKzEwOSw4
IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fZm9udE5hbWU7CiAgICAgZG91YmxlIG1fYmFzZUZv
bnRTaXplOwogICAgIGRvdWJsZSBtX3JlbGF0aXZlRm9udFNpemU7CisgICAgQ29sb3IgbV9mb3Jl
Z3JvdW5kQ29sb3I7CisgICAgQ29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7CiB9OwogCiBjbGFzcyBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAJKHJldmlzaW9uIDE0MjMzNCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsOCBAQCBTT0ZUX0xJ
TktfUE9JTlRFUl9PUFRJT05BTChDb3JlTWVkaWEsIGtDCiBTT0ZUX0xJTktfUE9JTlRFUl9PUFRJ
T05BTChDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBdHRyaWJ1dGVfQmFzZUZvbnRTaXplUGVyY2Vu
dGFnZVJlbGF0aXZlVG9WaWRlb0hlaWdodCwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfUE9JTlRF
Ul9PUFRJT05BTChDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBdHRyaWJ1dGVfUmVsYXRpdmVGb250
U2l6ZSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfUE9JTlRFUl9PUFRJT05BTChDb3JlTWVkaWEs
IGtDTVRleHRNYXJrdXBBdHRyaWJ1dGVfRm9udEZhbWlseU5hbWUsIENGU3RyaW5nUmVmKQorU09G
VF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQXR0cmlidXRl
X0ZvcmVncm91bmRDb2xvckFSR0IsIENGU3RyaW5nUmVmKQorU09GVF9MSU5LX1BPSU5URVJfT1BU
SU9OQUwoQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQXR0cmlidXRlX0JhY2tncm91bmRDb2xvckFS
R0IsIENGU3RyaW5nUmVmKQogCiAjZGVmaW5lIGtDTVRleHRNYXJrdXBBdHRyaWJ1dGVfQWxpZ25t
ZW50IGdldGtDTVRleHRNYXJrdXBBdHRyaWJ1dGVfQWxpZ25tZW50KCkKICNkZWZpbmUga0NNVGV4
dE1hcmt1cEFsaWdubWVudFR5cGVfU3RhcnQgZ2V0a0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVf
U3RhcnQoKQpAQCAtNzQsNiArNzYsOCBAQCBTT0ZUX0xJTktfUE9JTlRFUl9PUFRJT05BTChDb3Jl
TWVkaWEsIGtDCiAjZGVmaW5lIGtDTVRleHRNYXJrdXBBdHRyaWJ1dGVfQmFzZUZvbnRTaXplUGVy
Y2VudGFnZVJlbGF0aXZlVG9WaWRlb0hlaWdodCBnZXRrQ01UZXh0TWFya3VwQXR0cmlidXRlX0Jh
c2VGb250U2l6ZVBlcmNlbnRhZ2VSZWxhdGl2ZVRvVmlkZW9IZWlnaHQoKQogI2RlZmluZSBrQ01U
ZXh0TWFya3VwQXR0cmlidXRlX1JlbGF0aXZlRm9udFNpemUgZ2V0a0NNVGV4dE1hcmt1cEF0dHJp
YnV0ZV9SZWxhdGl2ZUZvbnRTaXplKCkKICNkZWZpbmUga0NNVGV4dE1hcmt1cEF0dHJpYnV0ZV9G
b250RmFtaWx5TmFtZSBnZXRrQ01UZXh0TWFya3VwQXR0cmlidXRlX0ZvbnRGYW1pbHlOYW1lKCkK
KyNkZWZpbmUga0NNVGV4dE1hcmt1cEF0dHJpYnV0ZV9Gb3JlZ3JvdW5kQ29sb3JBUkdCIGdldGtD
TVRleHRNYXJrdXBBdHRyaWJ1dGVfRm9yZWdyb3VuZENvbG9yQVJHQigpCisjZGVmaW5lIGtDTVRl
eHRNYXJrdXBBdHRyaWJ1dGVfQmFja2dyb3VuZENvbG9yQVJHQiBnZXRrQ01UZXh0TWFya3VwQXR0
cmlidXRlX0JhY2tncm91bmRDb2xvckFSR0IoKQogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBA
IC05Miw2ICs5NiwyNiBAQCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjp+SW5iYW5kVGV4dFRy
CiAgICAgZGlzY29ubmVjdCgpOwogfQogCitzdGF0aWMgYm9vbCBtYWtlUkdCQTMyRnJvbUFSR0JD
RkFycmF5KENGQXJyYXlSZWYgY29sb3JBcnJheSwgUkdCQTMyJiBjb2xvcikKK3sKKyAgICBpZiAo
Q0ZBcnJheUdldENvdW50KGNvbG9yQXJyYXkpIDwgNCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgZmxvYXQgY29tcG9uZW50QXJyYXlbNF07CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0
OyBpKyspIHsKKyAgICAgICAgQ0ZOdW1iZXJSZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxDRk51bWJl
clJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChjb2xvckFycmF5LCBpKSk7CisgICAgICAgIGlm
IChDRkdldFR5cGVJRCh2YWx1ZSkgIT0gQ0ZOdW1iZXJHZXRUeXBlSUQoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICBmbG9hdCBjb21wb25lbnQ7CisgICAgICAgIENGTnVt
YmVyR2V0VmFsdWUodmFsdWUsIGtDRk51bWJlckZsb2F0VHlwZSwgJmNvbXBvbmVudCk7CisgICAg
ICAgIGNvbXBvbmVudEFycmF5W2ldID0gY29tcG9uZW50OworICAgIH0KKworICAgIGNvbG9yID0g
bWFrZVJHQkEzMkZyb21GbG9hdHMoY29tcG9uZW50QXJyYXlbMV0gKiAyNTUsIGNvbXBvbmVudEFy
cmF5WzJdICogMjU1LCBjb21wb25lbnRBcnJheVszXSAqIDI1NSwgY29tcG9uZW50QXJyYXlbMF0g
KiAyNTUpOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZh
dGVBVkY6OnByb2Nlc3NDdWVBdHRyaWJ1dGVzKENGQXR0cmlidXRlZFN0cmluZ1JlZiBhdHRyaWJ1
dGVkU3RyaW5nLCBHZW5lcmljQ3VlRGF0YSogY3VlRGF0YSkKIHsKICAgICAvLyBTb21lIG9mIHRo
ZSBhdHRyaWJ1dGVzIHdlIHRyYW5zbGF0ZSBpbnRvIHBlci1jdWUgV2ViVlRUIHNldHRpbmdzIGFy
ZSBhcmUgcmVwZWF0ZWQgb24gZWFjaCBwYXJ0IG9mIGFuIGF0dHJpYnV0ZWQgc3RyaW5nIHNvIG9u
bHkKQEAgLTI2Nyw2ICsyOTEsMjggQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpw
cm9jZXNzQwogICAgICAgICAgICAgICAgIGN1ZURhdGEtPnNldEZvbnROYW1lKHZhbHVlU3RyaW5n
KTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICAgICAgaWYgKENGU3RyaW5nQ29tcGFyZShrZXksIGtDTVRleHRNYXJrdXBBdHRy
aWJ1dGVfRm9yZWdyb3VuZENvbG9yQVJHQiwgMCkgPT0ga0NGQ29tcGFyZUVxdWFsVG8pIHsKKyAg
ICAgICAgICAgICAgICBDRkFycmF5UmVmIGFycmF5VmFsdWUgPSBzdGF0aWNfY2FzdDxDRkFycmF5
UmVmPih2YWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKENGR2V0VHlwZUlEKGFycmF5VmFsdWUp
ICE9IENGQXJyYXlHZXRUeXBlSUQoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgUkdCQTMyIGNvbG9yOworICAgICAgICAg
ICAgICAgIGlmICghbWFrZVJHQkEzMkZyb21BUkdCQ0ZBcnJheShhcnJheVZhbHVlLCBjb2xvcikp
CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGN1ZURhdGEt
PnNldEZvcmVncm91bmRDb2xvcihjb2xvcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGlmIChDRlN0cmluZ0NvbXBhcmUoa2V5LCBrQ01UZXh0TWFya3VwQXR0cmli
dXRlX0JhY2tncm91bmRDb2xvckFSR0IsIDApID09IGtDRkNvbXBhcmVFcXVhbFRvKSB7CisgICAg
ICAgICAgICAgICAgQ0ZBcnJheVJlZiBhcnJheVZhbHVlID0gc3RhdGljX2Nhc3Q8Q0ZBcnJheVJl
Zj4odmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChDRkdldFR5cGVJRChhcnJheVZhbHVlKSAh
PSBDRkFycmF5R2V0VHlwZUlEKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFJHQkEzMiBjb2xvcjsKKyAgICAgICAgICAg
ICAgICBpZiAoIW1ha2VSR0JBMzJGcm9tQVJHQkNGQXJyYXkoYXJyYXlWYWx1ZSwgY29sb3IpKQor
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBjdWVEYXRhLT5z
ZXRCYWNrZ3JvdW5kQ29sb3IoY29sb3IpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAg
ICAgICAgY29udGVudC5hcHBlbmQodGFnU3RhcnQpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQyMzQ3
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTMtMDItMDggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW01hY10gcmVzcGVjdCBpbi1iYW5kIGNhcHRpb24gY29sb3IKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTIwMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2st
aW4tYmFuZC1zdHlsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3RyYWNr
L3RyYWNrLWluLWJhbmQtc3R5bGUuaHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIG5ldyB0ZXN0LgorICAgICAgICAqIHBsYXRm
b3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9uczogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnM6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOiBEaXR0by4K
KwogMjAxMy0wMi0wOCAgR3JlZ2cgVGF2YXJlcyAgPGdtYW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIERpc2FibGUgQWxsIFdlYkdMIFRlc3RzIG9uIFdlYktpdCBmb3IgV2luZG93cwpJbmRleDog
TGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHls
ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9tZWRpYS90cmFjay90
cmFjay1pbi1iYW5kLXN0eWxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
NiBAQAorVGVzdCB0aGF0IHN0eWxlIHRvIGFsbCBjdWVzIGlzIGFwcGxpZWQgY29ycmVjdGx5Lgor
RVZFTlQoY2FucGxheXRocm91Z2gpCisKKyoqIENoZWNrIGluaXRpYWwgaW4tYmFuZCB0cmFjayBz
dGF0ZXMKK1JVTihpbmJhbmRUcmFjazEgPSB2aWRlby50ZXh0VHJhY2tzWzBdKQorRVhQRUNURUQg
KHZpZGVvLnRleHRUcmFja3MubGVuZ3RoID09ICcxJykgT0sKK0VYUEVDVEVEIChpbmJhbmRUcmFj
azEubGFuZ3VhZ2UgPT0gJ2VuJykgT0sKK0VYUEVDVEVEIChpbmJhbmRUcmFjazEua2luZCA9PSAn
Y2FwdGlvbnMnKSBPSworUlVOKHZpZGVvLnBsYXkoKSkKK0VWRU5UKHNlZWtlZCkKKworKiogVGVz
dCBjdXJyZW50IGN1ZSBjb2xvcnMKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZURpc3Bs
YXlFbGVtZW50KS5jb2xvciA9PSAncmdiKDI1NSwgMjU1LCAyNTUpJykgT0sKK0VYUEVDVEVEIChn
ZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmJhY2tncm91bmRDb2xvciA9PSAncmdiKDAsIDAsIDAp
JykgT0sKK0VORCBPRiBURVNUCisKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNr
LWluLWJhbmQtc3R5bGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PXV0Zi04IiAvPgorCisgICAgICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWZpbGUuanM+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPS4uL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWNvbnRyb2xzLmpzPjwvc2NyaXB0PgorCisgICAgICAg
IDxzY3JpcHQ+CisKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZWVrZWQoKQorICAgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+PGk+KiogVGVz
dCBjdXJyZW50IGN1ZSBjb2xvcnM8IiArICIvaT4iKTsKKworICAgICAgICAgICAgICAgICAgICBj
dWVEaXNwbGF5RWxlbWVudCA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnZGlzcGxh
eScsIDApOworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5
bGUoY3VlRGlzcGxheUVsZW1lbnQpLmNvbG9yIiwgInJnYigyNTUsIDI1NSwgMjU1KSIpOworCisg
ICAgICAgICAgICAgICAgICAgIGN1ZU5vZGUgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRl
bywgJ2FsbC1ub2RlcycpOworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENv
bXB1dGVkU3R5bGUoY3VlTm9kZSkuYmFja2dyb3VuZENvbG9yIiwgInJnYigwLCAwLCAwKSIpOwor
CisgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBmdW5jdGlvbiBjYW5wbGF5dGhyb3VnaCgpCisgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj48aT4qKiBDaGVjayBpbml0
aWFsIGluLWJhbmQgdHJhY2sgc3RhdGVzPCIgKyAiL2k+Iik7CisgICAgICAgICAgICAgICAgICAg
IHJ1bigiaW5iYW5kVHJhY2sxID0gdmlkZW8udGV4dFRyYWNrc1swXSIpOworICAgICAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3MubGVuZ3RoIiwgMSk7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiaW5iYW5kVHJhY2sxLmxhbmd1YWdlIiwgImVu
Iik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiaW5iYW5kVHJhY2sxLmtpbmQi
LCAiY2FwdGlvbnMiKTsKKyAgICAgICAgICAgICAgICAgICAgaW5iYW5kVHJhY2sxLm1vZGUgPSAn
c2hvd2luZyc7CisgICAgICAgICAgICAgICAgICAgIHJ1bigidmlkZW8ucGxheSgpIik7CisgICAg
ICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHZpZGVvLnBhdXNlKCk7IHZp
ZGVvLmN1cnJlbnRUaW1lID0gMC4zOyB9LCAxNTAwKTsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIGxvYWRlZCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCJUZXN0IHRoYXQgc3R5bGUgdG8gYWxsIGN1ZXMgaXMgYXBwbGllZCBj
b3JyZWN0bHkuIik7CisgICAgICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAg
ICAgICAgICAgIHZpZGVvLnNyYyA9ICcuLi9jb250ZW50L2NvdW50aW5nLWNhcHRpb25lZC5tb3Yn
OworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnc2Vla2VkJywgc2Vla2VkKTsKKyAgICAg
ICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ2NhbnBsYXl0aHJvdWdoJywgY2FucGxheXRocm91Z2gp
OworICAgICAgICAgICAgfQorCisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8
Ym9keSBvbmxvYWQ9ImxvYWRlZCgpIj4KKyAgICAgICAgPHZpZGVvIGNvbnRyb2xzID4KKyAgICAg
ICAgPC92aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE0MjM0NykKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcg
Y29weSkKQEAgLTQxODksNiArNDE4OSw3IEBAIHdlYmtpdC5vcmcvYi85NDAwMiBbIE1hYyBEZWJ1
ZyBdIGluc3BlY3QKICMgTm8gc3VwcG9ydCBmb3IgZXhwb3NpbmcgaW4tYmFuZCB0ZXh0IHRyYWNr
cwogd2Via2l0Lm9yZy9iLzEwMzc2NyAgWyBXaW4gTWFjIExpbnV4IF0gbWVkaWEvdHJhY2svdHJh
Y2staW4tYmFuZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTAzNzY3ICBbIFdpbiBNYWMg
TGludXggXSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWN1ZXMtYWRkZWQtb25jZS5odG1sIFsg
U2tpcCBdCit3ZWJraXQub3JnL2IvMTAzNzY3ICBbIFdpbiBNYWMgTGludXggXSBtZWRpYS90cmFj
ay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwgWyBTa2lwIF0KIAogIyBGbGFreSBvbiBXaW4gKHBl
cmhhcHMgZHVlIHRvIGxpZ2h0dHBkPykKIHdlYmtpdC5vcmcvYi8xMDQ0ODkgWyBXaW4gXSBodHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9y
ZXNvdXJjZV9hdHRyaWJ1dGVfb3JkZXIuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTQyMzQ3KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29w
eSkKQEAgLTE3MzMsNiArMTczMyw3IEBAIHdlYmtpdC5vcmcvYi82MTEzOCBodHRwL3Rlc3RzL3cz
Yy93ZWJwZXIKICMgTm8gc3VwcG9ydCBmb3IgZXhwb3NpbmcgaW4tYmFuZCB0ZXh0IHRyYWNrcwog
QnVnKEVGTCkgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC5odG1sIFsgU2tpcCBdCiBCdWcoRUZM
KSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWN1ZXMtYWRkZWQtb25jZS5odG1sIFsgU2tpcCBd
CitCdWcoRUZMKSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwgWyBTa2lwIF0K
IAogIyBBbGwgZGVidWcgYm90cyB0aW1lb3V0IChjcmFzaCkgb24gdGhpcyBvbmUKIHdlYmtpdC5v
cmcvYi81NjQ5NiBbIERlYnVnIF0gZmFzdC9qcy9hcnJheS1zb3J0LW1vZGlmeWluZy10b3N0cmlu
Zy5odG1sIFsgQ3Jhc2ggUGFzcyBdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTQyMzQ3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTQ3OCw2ICs0NzgsNyBAQCB3
ZWJraXQub3JnL2IvMTAzOTI2IG1lZGlhL3RyYWNrL29wZXJhL3RyCiAjIE5vIHN1cHBvcnQgZm9y
IGV4cG9zaW5nIGluLWJhbmQgdGV4dCB0cmFja3MKIHdlYmtpdC5vcmcvYi8xMDM3NzEgbWVkaWEv
dHJhY2svdHJhY2staW4tYmFuZC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTAzNzcx
IG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNlLmh0bWwgWyBUaW1lb3V0
IF0KK3dlYmtpdC5vcmcvYi8xMDM3NzEgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS5o
dG1sIFsgRmFpbHVyZSBdCiAKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVu
ZCBvZiBFeHBlY3RlZCBmYWlsdXJlcwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE0MjM0NykKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMjM4LDYgKzEyMzgsNyBA
QCBCdWcoamVybm9ibGUpIFsgTW91bnRhaW5MaW9uIExpb24gU25vd0xlCiAjIE1vdW50YWluIExp
b24gYW5kIHByaW9yIGRvIG5vdCBhbGxvdyBhY2Nlc3MgdG8gaW4tYmFuZCB0ZXh0IHRyYWNrcwog
d2Via2l0Lm9yZy9iLzEwMzY2MyBbIE1vdW50YWluTGlvbiBMaW9uIFNub3dMZW9wYXJkIF0gbWVk
aWEvdHJhY2svdHJhY2staW4tYmFuZC5odG1sCiB3ZWJraXQub3JnL2IvMTAzNjYzIFsgTW91bnRh
aW5MaW9uIExpb24gU25vd0xlb3BhcmQgXSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWN1ZXMt
YWRkZWQtb25jZS5odG1sCit3ZWJraXQub3JnL2IvMTAzNjYzIFsgTW91bnRhaW5MaW9uIExpb24g
U25vd0xlb3BhcmQgXSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwKIAogd2Vi
a2l0Lm9yZy9iLzEwNDEwNCBmYXN0L292ZXJmbG93L3Njcm9sbGJhci1jbGljay1yZXRhaW5zLWZv
Y3VzLmh0bWwgWyBGYWlsdXJlIF0KIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVz
dEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0
RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxNDIzNDcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0yNTU3LDYgKzI1NTcsNyBAQCB3
ZWJraXQub3JnL2IvMTA4MjU3IGNvbXBvc2l0aW5nL292ZXJmbG93CiAjIE5vIHN1cHBvcnQgZm9y
IGV4cG9zaW5nIGluLWJhbmQgdGV4dCB0cmFja3MKIHdlYmtpdC5vcmcvYi8xMDM3NjkgbWVkaWEv
dHJhY2svdHJhY2staW4tYmFuZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTAzNzY5IG1l
ZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNlLmh0bWwgWyBTa2lwIF0KK3dl
YmtpdC5vcmcvYi8xMDM3NjkgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS5odG1sIFsg
U2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xMDQxNTAgZmFzdC9tZWRpYS9pbXBsaWNpdC1tZWRpYS1h
bGwuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTQyMzQ3KQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTI1MDAsNiAr
MjUwMCw3IEBAIGZhc3QvanMva2RlL0FycmF5Lmh0bWwKICMgTm8gc3VwcG9ydCBmb3IgZXhwb3Np
bmcgaW4tYmFuZCB0ZXh0IHRyYWNrcwogd2Via2l0Lm9yZy9iLzEwMzc3MCBtZWRpYS90cmFjay90
cmFjay1pbi1iYW5kLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMDM3NzAgbWVkaWEvdHJh
Y2svdHJhY2staW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UuaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzEwMzc3MCBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwgWyBTa2lwIF0K
IAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTcwMjYKIGZhc3Qv
ZXZlbnRzL2tleWRvd24tbGVmdHJpZ2h0LWtleXMuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187406</attachid>
            <date>2013-02-08 21:16:30 -0800</date>
            <delta_ts>2013-02-08 21:57:07 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_11.txt</filename>
            <type>text/plain</type>
            <size>23922</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjM0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDEzLTAyLTA4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIHJlc3BlY3Qg
aW4tYmFuZCBjYXB0aW9uIGNvbG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDkyMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwK
KworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBodG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJh
bmRUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUpOiBTZXQgY3VlIGNvbG9ycyBpZiBuZWNlc3Nhcnku
CisKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dFRyYWNrQ3VlOjplbGVtZW50KTogTmV3LCBhY2Nlc3NvciBmb3IgdGhlIGN1ZSBlbGVt
ZW50IHNvIGl0IGNhbiBiZSBzdHlsZWQuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFj
a0N1ZUdlbmVyaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlR2VuZXJpY0Jv
eEVsZW1lbnQ6OmFwcGx5Q1NTUHJvcGVydGllcyk6IFNldCBjb250YWluZXIgYW5kIGN1ZSBiYWNr
Z3JvdW5kIAorICAgICAgICAgICAgY29sb3IgaWYgbmVjZXNzYXJ5LgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dFRyYWNrQ3VlR2VuZXJpYzo6b3BlcmF0b3I9PSk6IENvbXBhcmUgY3VlIGNvbG9ycy4K
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRUcmFja0N1ZUdlbmVyaWM6OmZvcmVncm91bmRDb2xvcik6IEFkZCBjb2xvciBh
Y2Nlc3NvcnMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVHZW5lcmljOjpzZXRGb3Jl
Z3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlR2VuZXJpYzo6YmFj
a2dyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUdlbmVyaWM6OnNl
dEJhY2tncm91bmRDb2xvcik6CisKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5j
ZXNNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpy
ZWdpc3RlckZvckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MpOiBBbHdheXMKKyAg
ICAgICAgICAgIHJlZ2VuZXJhdGUgb3ZlcnJpZGUgQ1NTIHdoZW4gYW4gZWxlbWVudCByZWdpc3Rl
cnMgZm9yIGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5j
ZXNNYWM6OmNhcHRpb25zV2luZG93Q1NTKTogRHJpdmUgYnkgZml4IG9mICJ3aW5kb3cgY29sb3Ii
IHBhZGRpbmcuCisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpj
YXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZSk6IExvZyB0aGUgc3R5bGVzaGVldCBnZW5lcmF0ZWQK
KyAgICAgICAgICAgIGZvciBlYXNpZXIgZGVidWdnaW5nLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6R2VuZXJpY0N1ZURhdGE6OmZvcmVncm91bmRDb2xvcik6IEFkZCBjb2xvciBnZXR0ZXJzL3Nl
dHRlcnMuCisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YTo6c2V0Rm9yZWdyb3VuZENv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhOjpiYWNrZ3JvdW5kQ29sb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGE6OnNldEJhY2tncm91bmRDb2xvcik6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYWtlUkdCQTMyRnJvbUFSR0JD
RkFycmF5KTogSW5pdGlhbGl6ZSBhIFJHQkEzMiBmcm9tIGEgQ0ZBcnJheSBvZiBjb2xvciB2YWx1
ZXMuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNz
Q3VlQXR0cmlidXRlcyk6IFByb2Nlc3MgY3VlIGNvbG9ycy4KKwogMjAxMy0wMi0wOCAgRGVhbiBK
YWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgU25hcHNob3R0ZWQgcGx1Zy1pbiBz
aG91bGQgdXNlIHNoYWRvdyByb290CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDIzMzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTQ0NjksNyArNDQ2OSw3IEBACiAJCUE4RUE3Q0IyMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1M
UGFyYWdyYXBoRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEVBN0NBNDBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTFBhcmFncmFwaEVsZW1l
bnQuY3BwICovOyB9OwogCQlBOEVBN0NCMzBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTEhSRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVB
N0NBNTBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTEhSRWxlbWVudC5jcHAgKi87IH07CiAJCUE4RUE3
Q0I1MEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MUGFyYWdyYXBoRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFQTdDQTcwQTE5MkI5QzAwQThF
RjVGIC8qIEhUTUxQYXJhZ3JhcGhFbGVtZW50LmggKi87IH07Ci0JCUE4RUE3Q0I3MEExOTJCOUMw
MEE4RUY1RiAvKiBIVE1MRGl2RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThFQTdDQTkwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxEaXZFbGVt
ZW50LmggKi87IH07CisJCUE4RUE3Q0I3MEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MRGl2RWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFQTdD
QTkwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxEaXZFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQThFQTdDQjgwQTE5MkI5QzAwQThFRjVG
IC8qIEhUTUxIZWFkaW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThFQTdDQUEwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxIZWFkaW5nRWxl
bWVudC5oICovOyB9OwogCQlBOEVBN0QyQjBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVB
N0QyMzBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJQThFQTdEMkMwQTE5Mzg1NTAwQThFRjVGIC8qIEhU
TUxNYXBFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEVBN0QyNDBBMTkzODU1MDBBOEVGNUYgLyogSFRNTE1hcEVsZW1lbnQuaCAqLzsgfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAJ
KHJldmlzaW9uIDE0MjMzNCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4
dFRyYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDYgKzEyNywxMSBAQCB2b2lkIEluYmFu
ZFRleHRUcmFjazo6YWRkR2VuZXJpY0N1ZShJbmJhCiAgICAgICAgIGN1ZS0+c2V0TGluZShscm91
bmQoY3VlRGF0YS0+bGluZSgpKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgaWYgKGN1ZURhdGEt
PnNpemUoKSA+IDApCiAgICAgICAgIGN1ZS0+c2V0U2l6ZShscm91bmQoY3VlRGF0YS0+c2l6ZSgp
KSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgaWYgKGN1ZURhdGEtPmJhY2tncm91bmRDb2xvcigp
LmlzVmFsaWQoKSkKKyAgICAgICAgY3VlLT5zZXRCYWNrZ3JvdW5kQ29sb3IoY3VlRGF0YS0+YmFj
a2dyb3VuZENvbG9yKCkucmdiKCkpOworICAgIGlmIChjdWVEYXRhLT5mb3JlZ3JvdW5kQ29sb3Io
KS5pc1ZhbGlkKCkpCisgICAgICAgIGN1ZS0+c2V0Rm9yZWdyb3VuZENvbG9yKGN1ZURhdGEtPmZv
cmVncm91bmRDb2xvcigpLnJnYigpKTsKKwogICAgIGlmIChjdWVEYXRhLT5hbGlnbigpID09IEdl
bmVyaWNDdWVEYXRhOjpTdGFydCkKICAgICAgICAgY3VlLT5zZXRBbGlnbihBU0NJSUxpdGVyYWwo
InN0YXJ0IiksIElHTk9SRV9FWENFUFRJT04pOwogICAgIGVsc2UgaWYgKGN1ZURhdGEtPmFsaWdu
KCkgPT0gR2VuZXJpY0N1ZURhdGE6Ok1pZGRsZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuaAkocmV2aXNpb24gMTQyMzM0KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBA
QAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisj
aW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlRleHRUcmFjay5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBAIC00Myw3
ICs0NCw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7
Ci1jbGFzcyBIVE1MRGl2RWxlbWVudDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBj
bGFzcyBUZXh0VHJhY2s7CiBjbGFzcyBUZXh0VHJhY2tDdWU7CkBAIC0xNDEsNiArMTQxLDggQEAg
cHVibGljOgogICAgIHZvaWQgc2V0SXNBY3RpdmUoYm9vbCk7CiAKICAgICBQYXNzUmVmUHRyPFRl
eHRUcmFja0N1ZUJveD4gZ2V0RGlzcGxheVRyZWUoY29uc3QgSW50U2l6ZSYgdmlkZW9TaXplKTsK
KyAgICBQYXNzUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
bV9hbGxEb2N1bWVudE5vZGVzOyB9CisKICAgICB2b2lkIHVwZGF0ZURpc3BsYXlUcmVlKGZsb2F0
KTsKICAgICB2b2lkIHJlbW92ZURpc3BsYXlUcmVlKCk7CiAgICAgdm9pZCBtYXJrRnV0dXJlQW5k
UGFzdE5vZGVzKENvbnRhaW5lck5vZGUqLCBkb3VibGUsIGRvdWJsZSk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHAJKHJldmlz
aW9uIDE0MjMzNCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2Vu
ZXJpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDYgKzgwLDEyIEBAIHZvaWQgVGV4dFRyYWNr
Q3VlR2VuZXJpY0JveEVsZW1lbnQ6OmFwcGwKICAgICAgICAgICAgIHNldElubGluZVN0eWxlUHJv
cGVydHkoQ1NTUHJvcGVydHlIZWlnaHQsIHNpemUsICBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BF
UkNFTlRBR0UpOwogICAgIH0KIAorICAgIGlmIChjdWUtPmZvcmVncm91bmRDb2xvcigpLmlzVmFs
aWQoKSkKKyAgICAgICAgc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUNvbG9yLCBj
dWUtPmZvcmVncm91bmRDb2xvcigpLnNlcmlhbGl6ZWQoKSk7CisgICAgCisgICAgaWYgKGN1ZS0+
YmFja2dyb3VuZENvbG9yKCkuaXNWYWxpZCgpKQorICAgICAgICBjdWUtPmVsZW1lbnQoKS0+c2V0
SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgY3VlLT5iYWNr
Z3JvdW5kQ29sb3IoKS5zZXJpYWxpemVkKCkpOworCiAgICAgaWYgKGN1ZS0+Z2V0V3JpdGluZ0Rp
cmVjdGlvbigpID09IFRleHRUcmFja0N1ZTo6SG9yaXpvbnRhbCkKICAgICAgICAgc2V0SW5saW5l
U3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUhlaWdodCwgQ1NTVmFsdWVBdXRvKTsKICAgICBlbHNl
CkBAIC0xNDIsNiArMTQ4LDEwIEBAIGJvb2wgVGV4dFRyYWNrQ3VlR2VuZXJpYzo6b3BlcmF0b3I9
PShjb24KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChtX2ZvbnROYW1lICE9IG90aGVy
LT5mb250TmFtZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKG1fZm9yZWdyb3Vu
ZENvbG9yICE9IG90aGVyLT5mb3JlZ3JvdW5kQ29sb3IoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGlmIChtX2JhY2tncm91bmRDb2xvciAhPSBvdGhlci0+YmFja2dyb3VuZENvbG9yKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBUZXh0VHJhY2tDdWU6Om9wZXJh
dG9yPT0oY3VlKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlR2VuZXJpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlR2VuZXJpYy5oCShyZXZpc2lvbiAxNDIzMzQpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyAr
MjgsNyBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiSFRNTEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIlRleHRUcmFja0N1ZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTYyLDYgKzYyLDEyIEBAIHB1YmxpYzoKICAg
ICBTdHJpbmcgZm9udE5hbWUoKSBjb25zdCB7IHJldHVybiBtX2ZvbnROYW1lOyB9CiAgICAgdm9p
ZCBzZXRGb250TmFtZShTdHJpbmcgbmFtZSkgeyBtX2ZvbnROYW1lID0gbmFtZTsgfQogCisgICAg
Q29sb3IgZm9yZWdyb3VuZENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9mb3JlZ3JvdW5kQ29sb3I7
IH0KKyAgICB2b2lkIHNldEZvcmVncm91bmRDb2xvcihSR0JBMzIgY29sb3IpIHsgbV9mb3JlZ3Jv
dW5kQ29sb3Iuc2V0UkdCKGNvbG9yKTsgfQorICAgIAorICAgIENvbG9yIGJhY2tncm91bmRDb2xv
cigpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZENvbG9yOyB9CisgICAgdm9pZCBzZXRCYWNr
Z3JvdW5kQ29sb3IoUkdCQTMyIGNvbG9yKSB7IG1fYmFja2dyb3VuZENvbG9yLnNldFJHQihjb2xv
cik7IH0KKwogICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRleHRUcmFja0N1ZSYp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFRleHRU
cmFja0N1ZSYgY3VlKSBjb25zdCBPVkVSUklERQogICAgIHsKQEAgLTczLDYgKzc5LDggQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBUZXh0VHJhY2tDdWVHZW5lcmljKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQsIGNvbnN0IFN0cmluZyYpOwogICAgIAor
ICAgIENvbG9yIG1fZm9yZWdyb3VuZENvbG9yOworICAgIENvbG9yIG1fYmFja2dyb3VuZENvbG9y
OwogICAgIGRvdWJsZSBtX2Jhc2VGb250U2l6ZVJlbGF0aXZlVG9WaWRlb0hlaWdodDsKICAgICBk
b3VibGUgbV9mb250U2l6ZU11bHRpcGxpZXI7CiAgICAgU3RyaW5nIG1fZm9udE5hbWU7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1t
CShyZXZpc2lvbiAxNDIzMzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2LDkgKzM2LDcgQEAKICNpbXBvcnQg
IktVUkwuaCIKICNpbXBvcnQgIkxhbmd1YWdlLmgiCiAjaW1wb3J0ICJMb2NhbGl6ZWRTdHJpbmdz
LmgiCi0jaWYgTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAotI2ltcG9ydCAi
TWVkaWFBY2Nlc3NpYmlsaXR5L01lZGlhQWNjZXNzaWJpbGl0eS5oIgotI2VuZGlmCisjaW1wb3J0
ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJQYWdlR3JvdXAuaCIKICNpbXBvcnQgIlNvZnRMaW5raW5n
LmgiCiAjaW1wb3J0ICJUZXh0VHJhY2tDdWUuaCIKQEAgLTQ3LDYgKzQ1LDEwIEBACiAjaW1wb3J0
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKICNpZiBNQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDkwCisjaW1wb3J0ICJNZWRpYUFjY2Vzc2liaWxpdHkvTWVkaWFBY2Nlc3Np
YmlsaXR5LmgiCisjZW5kaWYKKworI2lmIE1BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwOTAKIAogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChNZWRpYUFjY2Vzc2liaWxpdHkp
CiAKQEAgLTExNCwxMyArMTE2LDEzIEBAIHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6
cmVnaXN0ZXIKIAogICAgIGlmICgha01BWENhcHRpb25BcHBlYXJhbmNlU2V0dGluZ3NDaGFuZ2Vk
Tm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICBpZiAoIW1fbGlzdGVu
aW5nRm9yUHJlZmVyZW5jZUNoYW5nZXMpIHsKICAgICAgICAgbV9saXN0ZW5pbmdGb3JQcmVmZXJl
bmNlQ2hhbmdlcyA9IHRydWU7CiAgICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2
ZXIgKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0TG9jYWxDZW50ZXIoKSwgdGhpcywgdXNlckNhcHRp
b25QcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb25DYWxsYmFjaywga01BWENhcHRpb25BcHBl
YXJhbmNlU2V0dGluZ3NDaGFuZ2VkTm90aWZpY2F0aW9uLCBOVUxMLCBDRk5vdGlmaWNhdGlvblN1
c3BlbnNpb25CZWhhdmlvckNvYWxlc2NlKTsKLSAgICAgICAgdXBkYXRlQ2FwdGlvblN0eWxlU2hl
ZXRPdmVyaWRlKCk7CiAgICAgfQogICAgIAorICAgIHVwZGF0ZUNhcHRpb25TdHlsZVNoZWV0T3Zl
cmlkZSgpOwogICAgIG1fY2FwdGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnMuYWRkKGxpc3Rl
bmVyKTsKIH0KIApAQCAtMTQ4LDEwICsxNTAsNyBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJl
bmNlc01hYzo6Y2FwdGlvCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIu
YXBwZW5kKHdpbmRvd1N0eWxlKTsKICAgICBidWlsZGVyLmFwcGVuZChnZXRQcm9wZXJ0eU5hbWVT
dHJpbmcoQ1NTUHJvcGVydHlQYWRkaW5nKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIjogLjJlbSIp
OwotICAgIGlmIChiZWhhdmlvciA9PSBrTUFDYXB0aW9uQXBwZWFyYW5jZUJlaGF2aW9yVXNlVmFs
dWUpCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIgIWltcG9ydGFudCIpOwotICAgIGJ1aWxkZXIu
YXBwZW5kKCc7Jyk7CisgICAgYnVpbGRlci5hcHBlbmQoIjogLjRlbSAhaW1wb3J0YW50OyIpOwog
ICAgIAogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CkBAIC0zNjgsNiArMzY3LDgg
QEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmNhcHRpbwogICAgICAgICBjYXB0
aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoJ30nKTsKICAgICB9CiAKKyAgICBMT0coTWVk
aWEsICJDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlk
ZVNldHRpbmcgc3l0bGUgdG86XG4lcyIsIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LnRvU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7CisKICAgICByZXR1cm4gY2FwdGlvbnNPdmVycmlkZVN0eWxl
U2hlZXQudG9TdHJpbmcoKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQu
aAkocmV2aXNpb24gMTQyMzM0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsy
Niw3IEBACiAjaWZuZGVmIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnRfaAogI2RlZmluZSBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50X2gKIAorI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKQEAgLTg5LDcgKzkwLDEzIEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSByZWxhdGl2ZUZvbnRT
aXplKCkgY29uc3QgeyByZXR1cm4gbV9yZWxhdGl2ZUZvbnRTaXplOyB9CiAgICAgdm9pZCBzZXRS
ZWxhdGl2ZUZvbnRTaXplKGRvdWJsZSByZWxhdGl2ZUZvbnRTaXplKSB7IG1fcmVsYXRpdmVGb250
U2l6ZSA9IHJlbGF0aXZlRm9udFNpemU7IH0KLSAgICAKKworICAgIENvbG9yIGZvcmVncm91bmRD
b2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fZm9yZWdyb3VuZENvbG9yOyB9CisgICAgdm9pZCBzZXRG
b3JlZ3JvdW5kQ29sb3IoUkdCQTMyIGNvbG9yKSB7IG1fZm9yZWdyb3VuZENvbG9yLnNldFJHQihj
b2xvcik7IH0KKworICAgIENvbG9yIGJhY2tncm91bmRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1f
YmFja2dyb3VuZENvbG9yOyB9CisgICAgdm9pZCBzZXRCYWNrZ3JvdW5kQ29sb3IoUkdCQTMyIGNv
bG9yKSB7IG1fYmFja2dyb3VuZENvbG9yLnNldFJHQihjb2xvcik7IH0KKwogcHJpdmF0ZToKICAg
ICBkb3VibGUgbV9zdGFydFRpbWU7CiAgICAgZG91YmxlIG1fZW5kVGltZTsKQEAgLTEwMiw2ICsx
MDksOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2ZvbnROYW1lOwogICAgIGRvdWJsZSBtX2Jh
c2VGb250U2l6ZTsKICAgICBkb3VibGUgbV9yZWxhdGl2ZUZvbnRTaXplOworICAgIENvbG9yIG1f
Zm9yZWdyb3VuZENvbG9yOworICAgIENvbG9yIG1fYmFja2dyb3VuZENvbG9yOwogfTsKIAogY2xh
c3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCShyZXZpc2lvbiAxNDIzMzQpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDggQEAgU09G
VF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQ29yZU1lZGlhLCBrQwogU09GVF9MSU5LX1BPSU5URVJf
T1BUSU9OQUwoQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQXR0cmlidXRlX0Jhc2VGb250U2l6ZVBl
cmNlbnRhZ2VSZWxhdGl2ZVRvVmlkZW9IZWlnaHQsIENGU3RyaW5nUmVmKQogU09GVF9MSU5LX1BP
SU5URVJfT1BUSU9OQUwoQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQXR0cmlidXRlX1JlbGF0aXZl
Rm9udFNpemUsIENGU3RyaW5nUmVmKQogU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQ29yZU1l
ZGlhLCBrQ01UZXh0TWFya3VwQXR0cmlidXRlX0ZvbnRGYW1pbHlOYW1lLCBDRlN0cmluZ1JlZikK
K1NPRlRfTElOS19QT0lOVEVSX09QVElPTkFMKENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEF0dHJp
YnV0ZV9Gb3JlZ3JvdW5kQ29sb3JBUkdCLCBDRlN0cmluZ1JlZikKK1NPRlRfTElOS19QT0lOVEVS
X09QVElPTkFMKENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEF0dHJpYnV0ZV9CYWNrZ3JvdW5kQ29s
b3JBUkdCLCBDRlN0cmluZ1JlZikKIAogI2RlZmluZSBrQ01UZXh0TWFya3VwQXR0cmlidXRlX0Fs
aWdubWVudCBnZXRrQ01UZXh0TWFya3VwQXR0cmlidXRlX0FsaWdubWVudCgpCiAjZGVmaW5lIGtD
TVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX1N0YXJ0IGdldGtDTVRleHRNYXJrdXBBbGlnbm1lbnRU
eXBlX1N0YXJ0KCkKQEAgLTc0LDYgKzc2LDggQEAgU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwo
Q29yZU1lZGlhLCBrQwogI2RlZmluZSBrQ01UZXh0TWFya3VwQXR0cmlidXRlX0Jhc2VGb250U2l6
ZVBlcmNlbnRhZ2VSZWxhdGl2ZVRvVmlkZW9IZWlnaHQgZ2V0a0NNVGV4dE1hcmt1cEF0dHJpYnV0
ZV9CYXNlRm9udFNpemVQZXJjZW50YWdlUmVsYXRpdmVUb1ZpZGVvSGVpZ2h0KCkKICNkZWZpbmUg
a0NNVGV4dE1hcmt1cEF0dHJpYnV0ZV9SZWxhdGl2ZUZvbnRTaXplIGdldGtDTVRleHRNYXJrdXBB
dHRyaWJ1dGVfUmVsYXRpdmVGb250U2l6ZSgpCiAjZGVmaW5lIGtDTVRleHRNYXJrdXBBdHRyaWJ1
dGVfRm9udEZhbWlseU5hbWUgZ2V0a0NNVGV4dE1hcmt1cEF0dHJpYnV0ZV9Gb250RmFtaWx5TmFt
ZSgpCisjZGVmaW5lIGtDTVRleHRNYXJrdXBBdHRyaWJ1dGVfRm9yZWdyb3VuZENvbG9yQVJHQiBn
ZXRrQ01UZXh0TWFya3VwQXR0cmlidXRlX0ZvcmVncm91bmRDb2xvckFSR0IoKQorI2RlZmluZSBr
Q01UZXh0TWFya3VwQXR0cmlidXRlX0JhY2tncm91bmRDb2xvckFSR0IgZ2V0a0NNVGV4dE1hcmt1
cEF0dHJpYnV0ZV9CYWNrZ3JvdW5kQ29sb3JBUkdCKCkKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
IApAQCAtOTIsNiArOTYsMjYgQEAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6fkluYmFuZFRl
eHRUcgogICAgIGRpc2Nvbm5lY3QoKTsKIH0KIAorc3RhdGljIGJvb2wgbWFrZVJHQkEzMkZyb21B
UkdCQ0ZBcnJheShDRkFycmF5UmVmIGNvbG9yQXJyYXksIFJHQkEzMiYgY29sb3IpCit7CisgICAg
aWYgKENGQXJyYXlHZXRDb3VudChjb2xvckFycmF5KSA8IDQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGZsb2F0IGNvbXBvbmVudEFycmF5WzRdOworICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgNDsgaSsrKSB7CisgICAgICAgIENGTnVtYmVyUmVmIHZhbHVlID0gc3RhdGljX2Nhc3Q8Q0ZO
dW1iZXJSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoY29sb3JBcnJheSwgaSkpOworICAgICAg
ICBpZiAoQ0ZHZXRUeXBlSUQodmFsdWUpICE9IENGTnVtYmVyR2V0VHlwZUlEKCkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgZmxvYXQgY29tcG9uZW50OworICAgICAgICBD
Rk51bWJlckdldFZhbHVlKHZhbHVlLCBrQ0ZOdW1iZXJGbG9hdFR5cGUsICZjb21wb25lbnQpOwor
ICAgICAgICBjb21wb25lbnRBcnJheVtpXSA9IGNvbXBvbmVudDsKKyAgICB9CisKKyAgICBjb2xv
ciA9IG1ha2VSR0JBMzJGcm9tRmxvYXRzKGNvbXBvbmVudEFycmF5WzFdICogMjU1LCBjb21wb25l
bnRBcnJheVsyXSAqIDI1NSwgY29tcG9uZW50QXJyYXlbM10gKiAyNTUsIGNvbXBvbmVudEFycmF5
WzBdICogMjU1KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZGOjpwcm9jZXNzQ3VlQXR0cmlidXRlcyhDRkF0dHJpYnV0ZWRTdHJpbmdSZWYgYXR0
cmlidXRlZFN0cmluZywgR2VuZXJpY0N1ZURhdGEqIGN1ZURhdGEpCiB7CiAgICAgLy8gU29tZSBv
ZiB0aGUgYXR0cmlidXRlcyB3ZSB0cmFuc2xhdGUgaW50byBwZXItY3VlIFdlYlZUVCBzZXR0aW5n
cyBhcmUgYXJlIHJlcGVhdGVkIG9uIGVhY2ggcGFydCBvZiBhbiBhdHRyaWJ1dGVkIHN0cmluZyBz
byBvbmx5CkBAIC0yNjcsNiArMjkxLDI4IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Rjo6cHJvY2Vzc0MKICAgICAgICAgICAgICAgICBjdWVEYXRhLT5zZXRGb250TmFtZSh2YWx1ZVN0
cmluZyk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGlmIChDRlN0cmluZ0NvbXBhcmUoa2V5LCBrQ01UZXh0TWFya3Vw
QXR0cmlidXRlX0ZvcmVncm91bmRDb2xvckFSR0IsIDApID09IGtDRkNvbXBhcmVFcXVhbFRvKSB7
CisgICAgICAgICAgICAgICAgQ0ZBcnJheVJlZiBhcnJheVZhbHVlID0gc3RhdGljX2Nhc3Q8Q0ZB
cnJheVJlZj4odmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChDRkdldFR5cGVJRChhcnJheVZh
bHVlKSAhPSBDRkFycmF5R2V0VHlwZUlEKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFJHQkEzMiBjb2xvcjsKKyAgICAg
ICAgICAgICAgICBpZiAoIW1ha2VSR0JBMzJGcm9tQVJHQkNGQXJyYXkoYXJyYXlWYWx1ZSwgY29s
b3IpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBjdWVE
YXRhLT5zZXRGb3JlZ3JvdW5kQ29sb3IoY29sb3IpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgCisgICAgICAgICAgICBpZiAoQ0ZTdHJpbmdDb21wYXJlKGtleSwga0NNVGV4dE1hcmt1cEF0
dHJpYnV0ZV9CYWNrZ3JvdW5kQ29sb3JBUkdCLCAwKSA9PSBrQ0ZDb21wYXJlRXF1YWxUbykgewor
ICAgICAgICAgICAgICAgIENGQXJyYXlSZWYgYXJyYXlWYWx1ZSA9IHN0YXRpY19jYXN0PENGQXJy
YXlSZWY+KHZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAoQ0ZHZXRUeXBlSUQoYXJyYXlWYWx1
ZSkgIT0gQ0ZBcnJheUdldFR5cGVJRCgpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBSR0JBMzIgY29sb3I7CisgICAgICAg
ICAgICAgICAgaWYgKCFtYWtlUkdCQTMyRnJvbUFSR0JDRkFycmF5KGFycmF5VmFsdWUsIGNvbG9y
KSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgY3VlRGF0
YS0+c2V0QmFja2dyb3VuZENvbG9yKGNvbG9yKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQog
CiAgICAgICAgIGNvbnRlbnQuYXBwZW5kKHRhZ1N0YXJ0KTsKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0
MjM0NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIwIEBACisyMDEzLTAyLTA4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgorCisgICAgICAgIFtNYWNdIHJlc3BlY3QgaW4tYmFuZCBjYXB0aW9uIGNvbG9yCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyMDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL3Ry
YWNrLWluLWJhbmQtc3R5bGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS90
cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWw6IEFkZGVkLgorCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczogU2tpcCBuZXcgdGVzdC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnM6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRp
b25zOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczogRGl0
dG8uCisKIDIwMTMtMDItMDggIEdyZWdnIFRhdmFyZXMgIDxnbWFuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBEaXNhYmxlIEFsbCBXZWJHTCBUZXN0cyBvbiBXZWJLaXQgZm9yIFdpbmRvd3MKSW5k
ZXg6IExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQt
c3R5bGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdHJhY2staW4tYmFuZC1zdHlsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTYgQEAKK1Rlc3QgdGhhdCBzdHlsZSB0byBhbGwgY3VlcyBpcyBhcHBsaWVkIGNvcnJlY3Rs
eS4KK0VWRU5UKGNhbnBsYXl0aHJvdWdoKQorCisqKiBDaGVjayBpbml0aWFsIGluLWJhbmQgdHJh
Y2sgc3RhdGVzCitSVU4oaW5iYW5kVHJhY2sxID0gdmlkZW8udGV4dFRyYWNrc1swXSkKK0VYUEVD
VEVEICh2aWRlby50ZXh0VHJhY2tzLmxlbmd0aCA9PSAnMScpIE9LCitFWFBFQ1RFRCAoaW5iYW5k
VHJhY2sxLmxhbmd1YWdlID09ICdlbicpIE9LCitFWFBFQ1RFRCAoaW5iYW5kVHJhY2sxLmtpbmQg
PT0gJ2NhcHRpb25zJykgT0sKK1JVTih2aWRlby5wbGF5KCkpCitFVkVOVChzZWVrZWQpCisKKyoq
IFRlc3QgY3VycmVudCBjdWUgY29sb3JzCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVE
aXNwbGF5RWxlbWVudCkuY29sb3IgPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScpIE9LCitFWFBFQ1RF
RCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5iYWNrZ3JvdW5kQ29sb3IgPT0gJ3JnYigwLCAw
LCAwKScpIE9LCitFTkQgT0YgVEVTVAorCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS90cmFjay90
cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEv
dHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD11dGYtOCIgLz4KKworICAgICAgICA8c2NyaXB0IHNyYz0uLi9tZWRpYS1maWxlLmpzPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0uLi92aWRlby10ZXN0LmpzPjwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0IHNyYz0uLi9tZWRpYS1jb250cm9scy5qcz48L3NjcmlwdD4KKworICAg
ICAgICA8c2NyaXB0PgorCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gc2Vla2VkKCkKKyAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPjxpPioq
IFRlc3QgY3VycmVudCBjdWUgY29sb3JzPCIgKyAiL2k+Iik7CisKKyAgICAgICAgICAgICAgICAg
ICAgY3VlRGlzcGxheUVsZW1lbnQgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2Rp
c3BsYXknLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRl
ZFN0eWxlKGN1ZURpc3BsYXlFbGVtZW50KS5jb2xvciIsICJyZ2IoMjU1LCAyNTUsIDI1NSkiKTsK
KworICAgICAgICAgICAgICAgICAgICBjdWVOb2RlID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQo
dmlkZW8sICdhbGwtbm9kZXMnKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJn
ZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmJhY2tncm91bmRDb2xvciIsICJyZ2IoMCwgMCwgMCki
KTsKKworICAgICAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2FucGxheXRocm91Z2goKQorICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+PGk+KiogQ2hlY2sg
aW5pdGlhbCBpbi1iYW5kIHRyYWNrIHN0YXRlczwiICsgIi9pPiIpOworICAgICAgICAgICAgICAg
ICAgICBydW4oImluYmFuZFRyYWNrMSA9IHZpZGVvLnRleHRUcmFja3NbMF0iKTsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0VHJhY2tzLmxlbmd0aCIsIDEpOwor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImluYmFuZFRyYWNrMS5sYW5ndWFnZSIs
ICJlbiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImluYmFuZFRyYWNrMS5r
aW5kIiwgImNhcHRpb25zIik7CisgICAgICAgICAgICAgICAgICAgIGluYmFuZFRyYWNrMS5tb2Rl
ID0gJ3Nob3dpbmcnOworICAgICAgICAgICAgICAgICAgICBydW4oInZpZGVvLnBsYXkoKSIpOwor
ICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB2aWRlby5wYXVzZSgp
OyB2aWRlby5jdXJyZW50VGltZSA9IDAuMzsgfSwgMTUwMCk7CisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiBsb2FkZWQoKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIGNvbnNvbGVXcml0ZSgiVGVzdCB0aGF0IHN0eWxlIHRvIGFsbCBjdWVzIGlzIGFwcGxp
ZWQgY29ycmVjdGx5LiIpOworICAgICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAg
ICAgICAgICAgICAgICB2aWRlby5zcmMgPSAnLi4vY29udGVudC9jb3VudGluZy1jYXB0aW9uZWQu
bW92JzsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ3NlZWtlZCcsIHNlZWtlZCk7Cisg
ICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGNhbnBsYXl0aHJv
dWdoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHkgb25sb2FkPSJsb2FkZWQoKSI+CisgICAgICAgIDx2aWRlbyBjb250cm9scyA+Cisg
ICAgICAgIDwvdmlkZW8+CisgICAgPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxNDIzNDcp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MTg5LDYgKzQxODksNyBAQCB3ZWJraXQub3JnL2IvOTQwMDIgWyBNYWMg
RGVidWcgXSBpbnNwZWN0CiAjIE5vIHN1cHBvcnQgZm9yIGV4cG9zaW5nIGluLWJhbmQgdGV4dCB0
cmFja3MKIHdlYmtpdC5vcmcvYi8xMDM3NjcgIFsgV2luIE1hYyBMaW51eCBdIG1lZGlhL3RyYWNr
L3RyYWNrLWluLWJhbmQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEwMzc2NyAgWyBXaW4g
TWFjIExpbnV4IF0gbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UuaHRt
bCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEwMzc2NyAgWyBXaW4gTWFjIExpbnV4IF0gbWVkaWEv
dHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS5odG1sIFsgU2tpcCBdCiAKICMgRmxha3kgb24gV2lu
IChwZXJoYXBzIGR1ZSB0byBsaWdodHRwZD8pCiB3ZWJraXQub3JnL2IvMTA0NDg5IFsgV2luIF0g
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL3Jlc291cmNlLXRpbWluZy9odG1sL3Rl
c3RfcmVzb3VyY2VfYXR0cmlidXRlX29yZGVyLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE0MjM0
NykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzMzLDYgKzE3MzMsNyBAQCB3ZWJraXQub3JnL2IvNjExMzggaHR0cC90ZXN0
cy93M2Mvd2VicGVyCiAjIE5vIHN1cHBvcnQgZm9yIGV4cG9zaW5nIGluLWJhbmQgdGV4dCB0cmFj
a3MKIEJ1ZyhFRkwpIG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQuaHRtbCBbIFNraXAgXQogQnVn
KEVGTCkgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UuaHRtbCBbIFNr
aXAgXQorQnVnKEVGTCkgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS5odG1sIFsgU2tp
cCBdCiAKICMgQWxsIGRlYnVnIGJvdHMgdGltZW91dCAoY3Jhc2gpIG9uIHRoaXMgb25lCiB3ZWJr
aXQub3JnL2IvNTY0OTYgWyBEZWJ1ZyBdIGZhc3QvanMvYXJyYXktc29ydC1tb2RpZnlpbmctdG9z
dHJpbmcuaHRtbCBbIENyYXNoIFBhc3MgXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE0MjM0NykKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC00NzgsNiArNDc4LDcg
QEAgd2Via2l0Lm9yZy9iLzEwMzkyNiBtZWRpYS90cmFjay9vcGVyYS90cgogIyBObyBzdXBwb3J0
IGZvciBleHBvc2luZyBpbi1iYW5kIHRleHQgdHJhY2tzCiB3ZWJraXQub3JnL2IvMTAzNzcxIG1l
ZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEw
Mzc3MSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWN1ZXMtYWRkZWQtb25jZS5odG1sIFsgVGlt
ZW91dCBdCit3ZWJraXQub3JnL2IvMTAzNzcxIG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5
bGUuaHRtbCBbIEZhaWx1cmUgXQogCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwog
IyBFbmQgb2YgRXhwZWN0ZWQgZmFpbHVyZXMKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxNDIzNDcpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTIzOCw2ICsxMjM4
LDcgQEAgQnVnKGplcm5vYmxlKSBbIE1vdW50YWluTGlvbiBMaW9uIFNub3dMZQogIyBNb3VudGFp
biBMaW9uIGFuZCBwcmlvciBkbyBub3QgYWxsb3cgYWNjZXNzIHRvIGluLWJhbmQgdGV4dCB0cmFj
a3MKIHdlYmtpdC5vcmcvYi8xMDM2NjMgWyBNb3VudGFpbkxpb24gTGlvbiBTbm93TGVvcGFyZCBd
IG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQuaHRtbAogd2Via2l0Lm9yZy9iLzEwMzY2MyBbIE1v
dW50YWluTGlvbiBMaW9uIFNub3dMZW9wYXJkIF0gbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1j
dWVzLWFkZGVkLW9uY2UuaHRtbAord2Via2l0Lm9yZy9iLzEwMzY2MyBbIE1vdW50YWluTGlvbiBM
aW9uIFNub3dMZW9wYXJkIF0gbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS5odG1sCiAK
IHdlYmtpdC5vcmcvYi8xMDQxMDQgZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlu
cy1mb2N1cy5odG1sIFsgRmFpbHVyZSBdCiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
VGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTQyMzQ3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMjU1Nyw2ICsyNTU3LDcg
QEAgd2Via2l0Lm9yZy9iLzEwODI1NyBjb21wb3NpdGluZy9vdmVyZmxvdwogIyBObyBzdXBwb3J0
IGZvciBleHBvc2luZyBpbi1iYW5kIHRleHQgdHJhY2tzCiB3ZWJraXQub3JnL2IvMTAzNzY5IG1l
ZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEwMzc2
OSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWN1ZXMtYWRkZWQtb25jZS5odG1sIFsgU2tpcCBd
Cit3ZWJraXQub3JnL2IvMTAzNzY5IG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUuaHRt
bCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMTA0MTUwIGZhc3QvbWVkaWEvaW1wbGljaXQtbWVk
aWEtYWxsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIApJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE0MjM0NykKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0yNTAw
LDYgKzI1MDAsNyBAQCBmYXN0L2pzL2tkZS9BcnJheS5odG1sCiAjIE5vIHN1cHBvcnQgZm9yIGV4
cG9zaW5nIGluLWJhbmQgdGV4dCB0cmFja3MKIHdlYmtpdC5vcmcvYi8xMDM3NzAgbWVkaWEvdHJh
Y2svdHJhY2staW4tYmFuZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTAzNzcwIG1lZGlh
L3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNlLmh0bWwgWyBTa2lwIF0KK3dlYmtp
dC5vcmcvYi8xMDM3NzAgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS5odG1sIFsgU2tp
cCBdCiAKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MDI2CiBm
YXN0L2V2ZW50cy9rZXlkb3duLWxlZnRyaWdodC1rZXlzLmh0bWwK
</data>

          </attachment>
      

    </bug>

</bugzilla>