<?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>76827</bug_id>
          
          <creation_ts>2012-01-23 07:11:59 -0800</creation_ts>
          <short_desc>Eliminate CSSElementStyleDeclaration subclasses</short_desc>
          <delta_ts>2012-02-03 09:38:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>77745</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>macpherson</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>540530</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-01-23 07:11:59 -0800</bug_when>
    <thetext>CSSInlineStyleDeclaration and FontFaceStyleDeclaration serve no purpose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540571</commentid>
    <comment_count>1</comment_count>
      <attachid>123564</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-01-23 08:41:32 -0800</bug_when>
    <thetext>Created attachment 123564
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540575</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-23 08:44:11 -0800</bug_when>
    <thetext>Attachment 123564 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/css/CSSElementStyleDeclaration.h:40:  The parameter name &quot;element&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 12 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>540576</commentid>
    <comment_count>3</comment_count>
      <attachid>123564</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-01-23 08:46:34 -0800</bug_when>
    <thetext>Comment on attachment 123564
patch

Oh god make it go away. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540580</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-01-23 08:49:56 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/105630</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540589</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-01-23 09:03:09 -0800</bug_when>
    <thetext>It broke the (Qt) build:

../../../../Source/WebCore/css/CSSElementStyleDeclaration.cpp: In static member function ‘static WTF::PassRefPtr&lt;WebCore::CSSElementStyleDeclaration&gt; WebCore::CSSElementStyleDeclaration::createForSVGFontFaceElement(WebCore::SVGFontFaceElement*)’:
../../../../Source/WebCore/css/CSSElementStyleDeclaration.cpp:36: error: no matching function for call to ‘WebCore::CSSElementStyleDeclaration::CSSElementStyleDeclaration(WebCore::SVGFontFaceElement*&amp;, bool)’
../../../../Source/WebCore/css/CSSElementStyleDeclaration.h:48: note: candidates are: WebCore::CSSElementStyleDeclaration::CSSElementStyleDeclaration(WebCore::StyledElement*, bool)
../../../../Source/WebCore/css/CSSElementStyleDeclaration.h:37: note:                 WebCore::CSSElementStyleDeclaration::CSSElementStyleDeclaration(const WebCore::CSSElementStyleDeclaration&amp;)

Could you guys fix it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540593</commentid>
    <comment_count>6</comment_count>
      <attachid>123564</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-23 09:10:43 -0800</bug_when>
    <thetext>Comment on attachment 123564
patch

Attachment 123564 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11284675</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540615</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-01-23 09:43:10 -0800</bug_when>
    <thetext>Fixed SVG_FONTS=0 build in http://trac.webkit.org/changeset/105632</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123564</attachid>
            <date>2012-01-23 08:41:32 -0800</date>
            <delta_ts>2012-01-23 09:10:43 -0800</delta_ts>
            <desc>patch</desc>
            <filename>kill-elementstyledeclaration-subclasses-2.patch</filename>
            <type>text/plain</type>
            <size>25039</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTYyNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTAxLTIzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBFbGltaW5hdGUgQ1NTRWxlbWVu
dFN0eWxlRGVjbGFyYXRpb24gc3ViY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDU1NJbmxpbmVTdHlsZURlY2xhcmF0aW9uIGFuZCBGb250RmFj
ZVN0eWxlRGVjbGFyYXRpb24gc2VydmUgbm8gcmVhbCBwdXJwb3NlLgorCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NT
U0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0VsZW1l
bnRTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGVGb3JTVkdGb250RmFjZUVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb246OnN0eWxlU2hlZXQpOgorICAg
ICAgICAqIGNzcy9DU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZUlubGluZSk6CisgICAgICAgIChX
ZWJDb3JlOjp0b0NTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKToKKyAgICAgICAgKiBjc3MvQ1NT
SW5saW5lU3R5bGVEZWNsYXJhdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgICogZG9tL1N0eWxlZEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6Y3JlYXRlSW5saW5lU3R5bGVEZWNs
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmVuc3VyZUlubGluZVN0eWxlRGVj
bCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50Ojpjb3B5Tm9uQXR0cmlidXRlUHJv
cGVydGllcyk6CisgICAgICAgICogZG9tL1N0eWxlZEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlZEVsZW1lbnQ6OmlubGluZVN0eWxlRGVjbCk6CisgICAgICAgICogZWRpdGluZy9B
cHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFu
ZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
eVN0eWxlQ29tbWFuZDo6YWRkSW5saW5lU3R5bGVJZk5lZWRlZCk6CisgICAgICAgICogZWRpdGlu
Zy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUJ1
dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0aW9uVUkpOgorICAgICAgICAqIGh0bWwvVmFsaWRh
dGlvbk1lc3NhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0QnViYmxlUG9zaXRpb24p
OgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6c2V0UG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpyZXNldFBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6bWFrZU9wYXF1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6Om1ha2VUcmFuc3Bh
cmVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRyYWNrTGltaXRlckVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICog
c3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFj
ZUVsZW1lbnQ6OlNWR0ZvbnRGYWNlRWxlbWVudCk6CisKIDIwMTItMDEtMjMgIFBhdmVsIEZlbGRt
YW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGluc3Bl
Y3RvciBjbG9zZSBidXR0b24gaXMgbWlzc2luZyBpbiB0aGUgZG9jay10by1yaWdodCBtb2RlLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMDU2MjApCisrKyBT
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMzE3
LDcgKzEzMTcsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbmhlcml0ZWRWYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVl
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1ZS5oIFwKLQlTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW5saW5lU3R5bGVEZWNsYXJhdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NMaW5lQm94Q29udGFpblZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1
bGUuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTA1NjIwKQorKysgU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtMTUyNyw3ICsxNTI3LDYgQEAgSEVB
REVSUyArPSBcCiAgICAgY3NzL0NTU0ltcG9ydFJ1bGUuaCBcCiAgICAgY3NzL0NTU0luaGVyaXRl
ZFZhbHVlLmggXAogICAgIGNzcy9DU1NJbml0aWFsVmFsdWUuaCBcCi0gICAgY3NzL0NTU0lubGlu
ZVN0eWxlRGVjbGFyYXRpb24uaCBcCiAgICAgY3NzL0NTU01lZGlhUnVsZS5oIFwKICAgICBjc3Mv
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCBcCiAgICAgY3NzL0NTU09NVXRpbHMuaCBcCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMDU2MjApCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTQ5MSw3ICs0OTEsNiBAQAogICAgICAgICAg
ICAgJ2Nzcy9DU1NIZWxwZXIuaCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ltYWdlR2VuZXJhdG9y
VmFsdWUuaCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ltYWdlVmFsdWUuaCcsCi0gICAgICAgICAg
ICAnY3NzL0NTU0lubGluZVN0eWxlRGVjbGFyYXRpb24uaCcsCiAgICAgICAgICAgICAnY3NzL0NT
U0xpbmVCb3hDb250YWluVmFsdWUuaCcsCiAgICAgICAgICAgICAnY3NzL0NTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaCcsCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2
aXNpb24gMTA1NjIwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTMzNzU4LDEwICszMzc1OCw2IEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NJbmxpbmVTdHls
ZURlY2xhcmF0aW9uLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGNzc1xDU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcCIKIAkJCQk+CiAJCQkJPEZp
bGVDb25maWd1cmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMDU2MjApCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMw
MTQsNyArMzAxNCw2IEBACiAJCThDQURGMkFCMTM1QzdCMzYwMDlFRjQzRiAvKiBMZXZlbERCRGF0
YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhD
QURGMkE1MTM1QzdCMzYwMDlFRjQzRiAvKiBMZXZlbERCRGF0YWJhc2UuaCAqLzsgfTsKIAkJOENB
REYyQUQxMzVDN0IzNjAwOUVGNDNGIC8qIExldmVsREJJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOENBREYyQTcxMzVDN0IzNjAwOUVGNDNG
IC8qIExldmVsREJJdGVyYXRvci5oICovOyB9OwogCQk4Q0FERjJBRTEzNUM3QjM2MDA5RUY0M0Yg
LyogTGV2ZWxEQlNsaWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4Q0FERjJBODEzNUM3QjM2MDA5RUY0M0YgLyogTGV2ZWxEQlNsaWNlLmggKi87IH07
Ci0JCThDRjdEREU0MTQ3RUNGOTQwMDQxQTZGMiAvKiBDU1NJbmxpbmVTdHlsZURlY2xhcmF0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Q0Y3RERF
MTE0N0U0MzJEMDA0MUE2RjIgLyogQ1NTSW5saW5lU3R5bGVEZWNsYXJhdGlvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThGNjc1NjFCMTI4OEIx
N0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4RjY3NTYxOTEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThGQUM3
NzREMTE5ODcyQ0IwMDE1QUU5NCAvKiBKU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEY5MzREODQxMTg5RjFFRTAw
NTA4RDVEIC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAgKi87IH07CiAJCTkwMDE3NzQwMTJF
MDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3NzNEMTJFMDM0NzgwMDY0ODQ2
MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLzsgfTsKQEAgLTk4MzgsNyArOTgzNyw2
IEBACiAJCThDQURGMkE1MTM1QzdCMzYwMDlFRjQzRiAvKiBMZXZlbERCRGF0YWJhc2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGV2ZWxEQkRhdGFiYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCThDQURGMkE3MTM1QzdCMzYwMDlFRjQzRiAvKiBMZXZlbERC
SXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGV2ZWxEQkl0ZXJh
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThDQURGMkE4MTM1QzdCMzYwMDlF
RjQzRiAvKiBMZXZlbERCU2xpY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TGV2ZWxEQlNsaWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCThDRjdEREUxMTQ3
RTQzMkQwMDQxQTZGMiAvKiBDU1NJbmxpbmVTdHlsZURlY2xhcmF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0lubGluZVN0eWxlRGVjbGFyYXRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEY2NzU2MTkxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50
UXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRRdWV1ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RjkzNEQ4MzExODlGMUVFMDA1MDhENUQgLyog
SlNNYWluVGhyZWFkRXhlY1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
RjkzNEQ4NDExODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTkzMCw3ICsxOTkyOCw2IEBACiAJ
CQkJQTgwRTZDRDcwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmggKi8sCiAJ
CQkJQTgwRTZDRDgwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5jcHAgKi8sCiAJ
CQkJQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oICovLAotCQkJ
CThDRjdEREUxMTQ3RTQzMkQwMDQxQTZGMiAvKiBDU1NJbmxpbmVTdHlsZURlY2xhcmF0aW9uLmgg
Ki8sCiAJCQkJQkM3NzJFMTUxMzMxNjJDMjAwMUVDOUNFIC8qIENTU0xpbmVCb3hDb250YWluVmFs
dWUuY3BwICovLAogCQkJCUJDNzcyRTEyMTMzMTYyMEMwMDFFQzlDRSAvKiBDU1NMaW5lQm94Q29u
dGFpblZhbHVlLmggKi8sCiAJCQkJQTgwRTZDRDIwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU01lZGlh
UnVsZS5jcHAgKi8sCkBAIC0yMTIzNCw3ICsyMTIzMSw2IEBACiAJCQkJQTgwRTZDRjYwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU0ltcG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2RDAx
MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTgwRTZEMDgwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJOENGN0RERTQxNDdFQ0Y5NDAwNDFBNkYyIC8qIENTU0lubGluZVN0eWxlRGVj
bGFyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzcyRTEzMTMzMTYyMEMwMDFFQzlDRSAv
KiBDU1NMaW5lQm94Q29udGFpblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEM0QTgwOTA5
RDU2MzI3MDAwM0FDOEQgLyogQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4MEU2RDAzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NNZWRpYVJ1bGUuaCBp
biBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0VsZW1lbnRTdHlsZURl
Y2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRWxlbWVu
dFN0eWxlRGVjbGFyYXRpb24uY3BwCShyZXZpc2lvbiAxMDU2MjApCisrKyBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NiwxNSArMjYsMjUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NFbGVtZW50
U3R5bGVEZWNsYXJhdGlvbi5oIgogCisjaW5jbHVkZSAiU1ZHRm9udEZhY2VFbGVtZW50LmgiCiAj
aW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitQ
YXNzUmVmUHRyPENTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uPiBDU1NFbGVtZW50U3R5bGVEZWNs
YXJhdGlvbjo6Y3JlYXRlRm9yU1ZHRm9udEZhY2VFbGVtZW50KFNWR0ZvbnRGYWNlRWxlbWVudCog
ZWxlbWVudCkgCit7IAorICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTRWxlbWVudFN0eWxlRGVj
bGFyYXRpb24oZWxlbWVudCwgZmFsc2UpKTsgCit9CiAKIENTU1N0eWxlU2hlZXQqIENTU0VsZW1l
bnRTdHlsZURlY2xhcmF0aW9uOjpzdHlsZVNoZWV0KCkgY29uc3QKIHsKLSAgICBpZiAobV9lbGVt
ZW50ICYmIG1fZWxlbWVudC0+ZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIG1fZWxlbWVudC0+
ZG9jdW1lbnQoKS0+ZWxlbWVudFNoZWV0KCk7Ci0gICAgcmV0dXJuIDA7CisgICAgaWYgKCFtX2Vs
ZW1lbnQpCisgICAgICAgIHJldHVybiAwOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZWxl
bWVudC0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsK
KyAgICAvLyBJZiB0aGlzIGlzIG5vdCBhbiBpbmxpbmUgZGVjbGFyYXRpb24gdGhlbiBpdCBpcyBh
biBTVkcgZm9udCBmYWNlIGRlY2xhcmF0aW9uLgorICAgIHJldHVybiBtX2lzSW5saW5lU3R5bGVE
ZWNsYXJhdGlvbiA/IGRvY3VtZW50LT5lbGVtZW50U2hlZXQoKSA6IGRvY3VtZW50LT5tYXBwZWRF
bGVtZW50U2hlZXQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvY3NzL0NTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3NzL0NTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmgJKHJldmlzaW9u
IDEwNTYyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlv
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyMSArMjcsMjQgQEAKICNkZWZpbmUgQ1NTRWxlbWVu
dFN0eWxlRGVjbGFyYXRpb25faAogCiAjaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgU1ZHRm9udEZhY2VFbGVtZW50OwogY2xhc3MgU3R5bGVkRWxlbWVudDsKIAotLy8gQmFz
ZSBjbGFzcyBmb3IgQ1NTSW5saW5lU3R5bGVEZWNsYXJhdGlvbiBhbmQgRm9udEZhY2VTdHlsZURl
Y2xhcmF0aW9uIChTVkcpLgotCiBjbGFzcyBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbiA6IHB1
YmxpYyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8Q1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24+IGNyZWF0ZUlubGluZShTdHlsZWRF
bGVtZW50KiBlbGVtZW50KSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTRWxlbWVudFN0eWxlRGVj
bGFyYXRpb24oZWxlbWVudCwgdHJ1ZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTRWxl
bWVudFN0eWxlRGVjbGFyYXRpb24+IGNyZWF0ZUZvclNWR0ZvbnRGYWNlRWxlbWVudChTVkdGb250
RmFjZUVsZW1lbnQqIGVsZW1lbnQpOworCiAgICAgU3R5bGVkRWxlbWVudCogZWxlbWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fZWxlbWVudDsgfQogICAgIHZvaWQgY2xlYXJFbGVtZW50KCkgeyBtX2Vs
ZW1lbnQgPSAwOyB9CiAKICAgICB2aXJ0dWFsIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQoKSBj
b25zdDsKIAotcHJvdGVjdGVkOgorcHJpdmF0ZToKICAgICBDU1NFbGVtZW50U3R5bGVEZWNsYXJh
dGlvbihTdHlsZWRFbGVtZW50KiBlbGVtZW50LCBib29sIGlzSW5saW5lKQogICAgICAgICA6IENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uKCkKICAgICAgICAgLCBtX2VsZW1lbnQoZWxlbWVudCkK
QEAgLTU2LDYgKzU5LDEyIEBAIHByaXZhdGU6CiAgICAgU3R5bGVkRWxlbWVudCogbV9lbGVtZW50
OwogfTsKIAoraW5saW5lIENTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKiB0b0NTU0VsZW1lbnRT
dHlsZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBkZWNsKQoreworICAg
IEFTU0VSVCghZGVjbCB8fCBkZWNsLT5pc0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKCkpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbio+KGRlY2wpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBDU1NFbGVtZW50U3R5bGVE
ZWNsYXJhdGlvbl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5saW5lU3R5bGVEZWNs
YXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmxpbmVTdHls
ZURlY2xhcmF0aW9uLmgJKHJldmlzaW9uIDEwNTYyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbmxpbmVTdHlsZURlY2xhcmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCwgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQW5kcmVh
cyBLbGluZyAoa2xpbmdAd2Via2l0Lm9yZykKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENTU0lubGluZVN0eWxl
RGVjbGFyYXRpb25faAotI2RlZmluZSBDU1NJbmxpbmVTdHlsZURlY2xhcmF0aW9uX2gKLQotI2lu
Y2x1ZGUgIkNTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgQ1NTSW5saW5lU3R5bGVEZWNsYXJhdGlvbiA6IHB1YmxpYyBDU1NFbGVtZW50
U3R5bGVEZWNsYXJhdGlvbiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+Q1NTSW5saW5lU3R5bGVE
ZWNsYXJhdGlvbigpIHsgfQotCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTSW5saW5lU3R5bGVE
ZWNsYXJhdGlvbj4gY3JlYXRlKFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IENTU0lubGluZVN0eWxlRGVjbGFyYXRpb24oZWxlbWVudCkp
OwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBDU1NJbmxpbmVTdHlsZURlY2xhcmF0aW9uKFN0eWxl
ZEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgICAgIDogQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24o
ZWxlbWVudCwgLyogaXNJbmxpbmUgKi8gdHJ1ZSkKLSAgICB7Ci0gICAgfQotfTsKLQotaW5saW5l
IENTU0lubGluZVN0eWxlRGVjbGFyYXRpb24qIHRvQ1NTSW5saW5lU3R5bGVEZWNsYXJhdGlvbihD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZGVjbCkKLXsKLSAgICBBU1NFUlQoIWRlY2wgfHwg
ZGVjbC0+aXNJbmxpbmVTdHlsZURlY2xhcmF0aW9uKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDU1NJbmxpbmVTdHlsZURlY2xhcmF0aW9uKj4oZGVjbCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIENTU0lubGluZVN0eWxlRGVjbGFyYXRpb25faApJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3Bw
CShyZXZpc2lvbiAxMDU2MjApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw4ICsyMiw4IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCIKIAor
I2luY2x1ZGUgIkNTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTSW1h
Z2VWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU0lubGluZVN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNs
dWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eUxvbmdoYW5kLmgiCiAjaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgpAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGlmICghc19jdXJyZW50RGVjbC0+aXNJbmxpbmVTdHlsZURlY2xhcmF0aW9uKCkpCiAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgQ1NTSW5saW5lU3R5bGVEZWNsYXJhdGlvbiogaW5s
aW5lRGVjbCA9IHRvQ1NTSW5saW5lU3R5bGVEZWNsYXJhdGlvbihzX2N1cnJlbnREZWNsKTsKKyAg
ICAgICAgQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24qIGlubGluZURlY2wgPSB0b0NTU0VsZW1l
bnRTdHlsZURlY2xhcmF0aW9uKHNfY3VycmVudERlY2wpOwogICAgICAgICBpZiAoIWlubGluZURl
Y2wtPmVsZW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtOTcsNyArOTcsNyBAQCBw
dWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBDU1NJbmxp
bmVTdHlsZURlY2xhcmF0aW9uKiBpbmxpbmVEZWNsID0gdG9DU1NJbmxpbmVTdHlsZURlY2xhcmF0
aW9uKHNfY3VycmVudERlY2wpOworICAgICAgICBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbiog
aW5saW5lRGVjbCA9IHRvQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24oc19jdXJyZW50RGVjbCk7
CiAgICAgICAgIHNfY3VycmVudERlY2wgPSAwOwogICAgICAgICBzX3Nob3VsZE5vdGlmeUluc3Bl
Y3RvciA9IGZhbHNlOwogICAgICAgICBpZiAoaW5saW5lRGVjbC0+ZWxlbWVudCgpICYmIGlubGlu
ZURlY2wtPmVsZW1lbnQoKS0+ZG9jdW1lbnQoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9T
dHlsZWRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVk
RWxlbWVudC5jcHAJKHJldmlzaW9uIDEwNTYyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TdHls
ZWRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUg
IlN0eWxlZEVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgotI2luY2x1ZGUgIkNT
U0lubGluZVN0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJDU1NFbGVtZW50U3R5bGVEZWNs
YXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NT
dHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgpAQCAtMTMwLDcgKzEz
MCw3IEBAIFBhc3NSZWZQdHI8QXR0cmlidXRlPiBTdHlsZWRFbGVtZW50OjpjcmUKIHZvaWQgU3R5
bGVkRWxlbWVudDo6Y3JlYXRlSW5saW5lU3R5bGVEZWNsKCkKIHsKICAgICBBU1NFUlQoIW1faW5s
aW5lU3R5bGVEZWNsKTsKLSAgICBtX2lubGluZVN0eWxlRGVjbCA9IENTU0lubGluZVN0eWxlRGVj
bGFyYXRpb246OmNyZWF0ZSh0aGlzKTsKKyAgICBtX2lubGluZVN0eWxlRGVjbCA9IENTU0VsZW1l
bnRTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGVJbmxpbmUodGhpcyk7CiAgICAgbV9pbmxpbmVTdHls
ZURlY2wtPnNldFN0cmljdFBhcnNpbmcoaXNIVE1MRWxlbWVudCgpICYmICFkb2N1bWVudCgpLT5p
blF1aXJrc01vZGUoKSk7CiB9CiAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIFN0eWxlZEVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlCiAgICAgfQogfQogCi1DU1NJbmxpbmVTdHlsZURlY2xh
cmF0aW9uKiBTdHlsZWRFbGVtZW50OjplbnN1cmVJbmxpbmVTdHlsZURlY2woKQorQ1NTRWxlbWVu
dFN0eWxlRGVjbGFyYXRpb24qIFN0eWxlZEVsZW1lbnQ6OmVuc3VyZUlubGluZVN0eWxlRGVjbCgp
CiB7CiAgICAgaWYgKCFtX2lubGluZVN0eWxlRGVjbCkKICAgICAgICAgY3JlYXRlSW5saW5lU3R5
bGVEZWNsKCk7CkBAIC00MzEsNyArNDMxLDcgQEAgdm9pZCBTdHlsZWRFbGVtZW50Ojpjb3B5Tm9u
QXR0cmlidXRlUHJvcAogICAgIGlmICghc291cmNlLT5pbmxpbmVTdHlsZURlY2woKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgQ1NTSW5saW5lU3R5bGVEZWNsYXJhdGlvbiogaW5saW5lU3R5bGUg
PSBlbnN1cmVJbmxpbmVTdHlsZURlY2woKTsKKyAgICBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlv
biogaW5saW5lU3R5bGUgPSBlbnN1cmVJbmxpbmVTdHlsZURlY2woKTsKICAgICBpbmxpbmVTdHls
ZS0+Y29weVByb3BlcnRpZXNGcm9tKCpzb3VyY2UtPmlubGluZVN0eWxlRGVjbCgpKTsKICAgICBp
bmxpbmVTdHlsZS0+c2V0U3RyaWN0UGFyc2luZyhzb3VyY2UtPmlubGluZVN0eWxlRGVjbCgpLT51
c2VTdHJpY3RQYXJzaW5nKCkpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgJ
KHJldmlzaW9uIDEwNTYyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKICNpZm5kZWYgU3R5bGVkRWxlbWVudF9o
CiAjZGVmaW5lIFN0eWxlZEVsZW1lbnRfaAogCi0jaW5jbHVkZSAiQ1NTSW5saW5lU3R5bGVEZWNs
YXJhdGlvbi5oIgorI2luY2x1ZGUgIkNTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5j
bHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZUVudHJ5LmgiCiAKQEAg
LTU5LDggKzU5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRpdGlvbmFsQXR0cmli
dXRlU3R5bGVEZWNscyhWZWN0b3I8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qPiYpIHsgfQog
ICAgIHZvaWQgaW52YWxpZGF0ZVN0eWxlQXR0cmlidXRlKCk7CiAKLSAgICBDU1NJbmxpbmVTdHls
ZURlY2xhcmF0aW9uKiBpbmxpbmVTdHlsZURlY2woKSBjb25zdCB7IHJldHVybiBtX2lubGluZVN0
eWxlRGVjbC5nZXQoKTsgfQotICAgIENTU0lubGluZVN0eWxlRGVjbGFyYXRpb24qIGVuc3VyZUlu
bGluZVN0eWxlRGVjbCgpOworICAgIENTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKiBpbmxpbmVT
dHlsZURlY2woKSBjb25zdCB7IHJldHVybiBtX2lubGluZVN0eWxlRGVjbC5nZXQoKTsgfQorICAg
IENTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKiBlbnN1cmVJbmxpbmVTdHlsZURlY2woKTsKICAg
ICB2aXJ0dWFsIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKCkgT1ZFUlJJREU7CiAKICAgICBj
b25zdCBTcGFjZVNwbGl0U3RyaW5nJiBjbGFzc05hbWVzKCkgY29uc3Q7CkBAIC05Myw3ICs5Myw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXN0cm95SW5saW5lU3R5bGVEZWNsKCk7CiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVN0eWxlQXR0cmlidXRlKCkgY29uc3Q7CiAKLSAgICBSZWZQdHI8Q1NT
SW5saW5lU3R5bGVEZWNsYXJhdGlvbj4gbV9pbmxpbmVTdHlsZURlY2w7CisgICAgUmVmUHRyPENT
U0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uPiBtX2lubGluZVN0eWxlRGVjbDsKIH07CiAKIGlubGlu
ZSBjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBTdHlsZWRFbGVtZW50OjpjbGFzc05hbWVzKCkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3Bw
CShyZXZpc2lvbiAxMDU2MjApCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg1LDcgKzM4NSw3IEBAIHZvaWQgQXBwbHlT
dHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVGb24KICAgICAgICAgfQogICAgICAgICBsYXN0U3R5
bGVkTm9kZSA9IG5vZGU7CiAKLSAgICAgICAgQ1NTSW5saW5lU3R5bGVEZWNsYXJhdGlvbiogaW5s
aW5lU3R5bGVEZWNsID0gZWxlbWVudC0+ZW5zdXJlSW5saW5lU3R5bGVEZWNsKCk7CisgICAgICAg
IENTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKiBpbmxpbmVTdHlsZURlY2wgPSBlbGVtZW50LT5l
bnN1cmVJbmxpbmVTdHlsZURlY2woKTsKICAgICAgICAgZmxvYXQgY3VycmVudEZvbnRTaXplID0g
Y29tcHV0ZWRGb250U2l6ZShub2RlKTsKICAgICAgICAgZmxvYXQgZGVzaXJlZEZvbnRTaXplID0g
bWF4KE1pbmltdW1Gb250U2l6ZSwgc3RhcnRpbmdGb250U2l6ZXMuZ2V0KG5vZGUpICsgc3R5bGUt
PmZvbnRTaXplRGVsdGEoKSk7CiAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBpbmxp
bmVTdHlsZURlY2wtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlGb250U2l6ZSk7CkBA
IC0xMzc2LDcgKzEzNzYsNyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphZGRJbmxpbmVTdHls
ZUlmCiAKICAgICBpZiAoc3R5bGVDaGFuZ2UuY3NzU3R5bGUoKS5sZW5ndGgoKSkgewogICAgICAg
ICBpZiAoc3R5bGVDb250YWluZXIpIHsKLSAgICAgICAgICAgIGlmIChDU1NJbmxpbmVTdHlsZURl
Y2xhcmF0aW9uKiBleGlzdGluZ1N0eWxlID0gc3R5bGVDb250YWluZXItPmlubGluZVN0eWxlRGVj
bCgpKQorICAgICAgICAgICAgaWYgKENTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKiBleGlzdGlu
Z1N0eWxlID0gc3R5bGVDb250YWluZXItPmlubGluZVN0eWxlRGVjbCgpKQogICAgICAgICAgICAg
ICAgIHNldE5vZGVBdHRyaWJ1dGUoc3R5bGVDb250YWluZXIsIHN0eWxlQXR0ciwgZXhpc3RpbmdT
dHlsZS0+Y3NzVGV4dCgpICsgc3R5bGVDaGFuZ2UuY3NzU3R5bGUoKSk7CiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShzdHlsZUNvbnRhaW5lciwgc3R5
bGVBdHRyLCBzdHlsZUNoYW5nZS5jc3NTdHlsZSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gMTA1NjIw
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQgRGVsZXRlQnV0dG9uQ29udHJv
bGxlcjo6Y3JlYXRlRGVsZXQKICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGNvbnRhaW5lciA9
IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUobV90YXJnZXQtPmRvY3VtZW50KCkpOwogICAgIGNvbnRh
aW5lci0+c2V0SWRBdHRyaWJ1dGUoY29udGFpbmVyRWxlbWVudElkZW50aWZpZXIpOwogCi0gICAg
Q1NTSW5saW5lU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBjb250YWluZXItPmVuc3VyZUlubGlu
ZVN0eWxlRGVjbCgpOworICAgIENTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9IGNv
bnRhaW5lci0+ZW5zdXJlSW5saW5lU3R5bGVEZWNsKCk7CiAgICAgc3R5bGUtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWcsIENTU1ZhbHVlTm9uZSk7CiAgICAgc3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFsdWVOb25lKTsKICAg
ICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRVc2VyTW9kaWZ5LCBDU1NWYWx1
ZVJlYWRPbmx5KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2Uu
Y3BwCShyZXZpc2lvbiAxMDU2MjApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25N
ZXNzYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDcgKzExOSw3IEBAIHN0YXRpYyB2b2lk
IGFkanVzdEJ1YmJsZVBvc2l0aW9uKGNvbnN0IEwKICAgICAgICAgaG9zdFkgLT0gY29udGFpbmVy
TG9jYXRpb24ueSgpICsgY29udGFpbmVyLT5ib3JkZXJUb3AoKTsKICAgICB9CiAKLSAgICBDU1NJ
bmxpbmVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9IGJ1YmJsZS0+ZW5zdXJlSW5saW5lU3R5bGVE
ZWNsKCk7CisgICAgQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24qIHN0eWxlID0gYnViYmxlLT5l
bnN1cmVJbmxpbmVTdHlsZURlY2woKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVy
dHlUb3AsIGhvc3RZICsgaG9zdFJlY3QuaGVpZ2h0KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
UFgpOwogICAgIC8vIFRoZSAnbGVmdCcgdmFsdWUgb2YgOjotd2Via2l0LXZhbGlkYXRpb24tYnVi
YmxlLWFycm93LgogICAgIGNvbnN0IGludCBidWJibGVBcnJvd1RvcE9mZnNldCA9IDMyOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1l
bnRzLmNwcAkocmV2aXNpb24gMTA1NjIwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sRWxlbWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNyArMTc1LDcg
QEAgdm9pZCBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmVuZERyYWcoKQogCiB2b2lkIE1lZGlh
Q29udHJvbFBhbmVsRWxlbWVudDo6c2V0UG9zaXRpb24oY29uc3QgTGF5b3V0UG9pbnQmIHBvc2l0
aW9uKQogewotICAgIENTU0lubGluZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlID0gZW5zdXJlSW5s
aW5lU3R5bGVEZWNsKCk7CisgICAgQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24qIHN0eWxlID0g
ZW5zdXJlSW5saW5lU3R5bGVEZWNsKCk7CiAKICAgICBkb3VibGUgbGVmdCA9IHBvc2l0aW9uLngo
KTsKICAgICBkb3VibGUgdG9wID0gcG9zaXRpb24ueSgpOwpAQCAtMTkzLDcgKzE5Myw3IEBAIHZv
aWQgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpzZXRQb3NpdGkKIAogdm9pZCBNZWRpYUNvbnRy
b2xQYW5lbEVsZW1lbnQ6OnJlc2V0UG9zaXRpb24oKQogewotICAgIENTU0lubGluZVN0eWxlRGVj
bGFyYXRpb24qIHN0eWxlID0gZW5zdXJlSW5saW5lU3R5bGVEZWNsKCk7CisgICAgQ1NTRWxlbWVu
dFN0eWxlRGVjbGFyYXRpb24qIHN0eWxlID0gZW5zdXJlSW5saW5lU3R5bGVEZWNsKCk7CiAKICAg
ICBzdHlsZS0+cmVtb3ZlUHJvcGVydHkoQ1NTUHJvcGVydHlMZWZ0KTsKICAgICBzdHlsZS0+cmVt
b3ZlUHJvcGVydHkoQ1NTUHJvcGVydHlUb3ApOwpAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgTWVk
aWFDb250cm9sUGFuZWxFbGVtZW50OjptYWtlT3BhcXUKIAogICAgIGRvdWJsZSBkdXJhdGlvbiA9
IGRvY3VtZW50KCktPnBhZ2UoKSA/IGRvY3VtZW50KCktPnBhZ2UoKS0+dGhlbWUoKS0+bWVkaWFD
b250cm9sc0ZhZGVJbkR1cmF0aW9uKCkgOiAwOwogCi0gICAgQ1NTSW5saW5lU3R5bGVEZWNsYXJh
dGlvbiogc3R5bGUgPSBlbnN1cmVJbmxpbmVTdHlsZURlY2woKTsKKyAgICBDU1NFbGVtZW50U3R5
bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBlbnN1cmVJbmxpbmVTdHlsZURlY2woKTsKICAgICBzdHls
ZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uUHJvcGVydHksIENTU1By
b3BlcnR5T3BhY2l0eSk7CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0
VHJhbnNpdGlvbkR1cmF0aW9uLCBkdXJhdGlvbiwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TKTsK
ICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlPcGFjaXR5LCAxLjAsIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKQEAgLTIyNCw3ICsyMjQsNyBAQCB2b2lkIE1lZGlhQ29u
dHJvbFBhbmVsRWxlbWVudDo6bWFrZVRyYW5zCiAgICAgaWYgKCFtX29wYXF1ZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgQ1NTSW5saW5lU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBlbnN1cmVJ
bmxpbmVTdHlsZURlY2woKTsKKyAgICBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbiogc3R5bGUg
PSBlbnN1cmVJbmxpbmVTdHlsZURlY2woKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJv
cGVydHlXZWJraXRUcmFuc2l0aW9uUHJvcGVydHksIENTU1Byb3BlcnR5T3BhY2l0eSk7CiAgICAg
c3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uLCBk
b2N1bWVudCgpLT5wYWdlKCktPnRoZW1lKCktPm1lZGlhQ29udHJvbHNGYWRlT3V0RHVyYXRpb24o
KSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NT
UHJvcGVydHlPcGFjaXR5LCAwLjAsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50
LmNwcAkocmV2aXNpb24gMTA1NjIwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzM0LDcgKzMzNCw3IEBAIFBh
c3NSZWZQdHI8VHJhY2tMaW1pdGVyRWxlbWVudD4gVHJhY2tMaW0KIHsKICAgICBSZWZQdHI8VHJh
Y2tMaW1pdGVyRWxlbWVudD4gZWxlbWVudCA9IGFkb3B0UmVmKG5ldyBUcmFja0xpbWl0ZXJFbGVt
ZW50KGRvY3VtZW50KSk7CiAKLSAgICBDU1NJbmxpbmVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9
IGVsZW1lbnQtPmVuc3VyZUlubGluZVN0eWxlRGVjbCgpOworICAgIENTU0VsZW1lbnRTdHlsZURl
Y2xhcmF0aW9uKiBzdHlsZSA9IGVsZW1lbnQtPmVuc3VyZUlubGluZVN0eWxlRGVjbCgpOwogICAg
IHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVZpc2liaWxpdHksIENTU1ZhbHVlSGlkZGVu
KTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlQb3NpdGlvbiwgQ1NTVmFsdWVT
dGF0aWMpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNw
cAkocmV2aXNpb24gMTA1NjIwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDM3ICs0NiwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKIAotLy8gRklYTUU6IFRoaXMgY2xh
c3MgaXMgbmVlZGVkIGJlY2F1c2UgQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24gbm9ybWFsbHkg
cmVzb2x2ZXMKLS8vICAgICAgICB0aGUgcGFyZW50U3R5bGVTaGVldCgpIHRvIGl0cyBkb2N1bWVu
dCdzIGVsZW1lbnRTaGVldCgpLiBGb3IgU1ZHIGZvbnQtZmFjZQotLy8gICAgICAgIGVsZW1lbnRz
IGhvd2V2ZXIsIHdlIHdhbnQgdGhlIG1hcHBlZEVsZW1lbnRTaGVldCgpLgotLy8gICAgICAgIFdp
dGggdGhlIHBsYW5uZWQgcmVmYWN0b3JpbmcgdG8gZGVjb3VwbGUgV2ViS2l0J3MgaW50ZXJuYWwg
Q1NTIHN0cnVjdHVyZXMKLS8vICAgICAgICBmcm9tIHRoZSBDU1NPTSwgdGhlIG5lZWQgZm9yIHBh
cmVudCBzdHlsZSBzaGVldCBwb2ludGVycywgYW5kIHRodXMgYWxzbyB0aGlzCi0vLyAgICAgICAg
Y2xhc3MsIGdvZXMgYXdheS4KLWNsYXNzIEZvbnRGYWNlU3R5bGVEZWNsYXJhdGlvbiA6IHB1Ymxp
YyBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8Rm9udEZhY2VTdHlsZURlY2xhcmF0aW9uPiBjcmVhdGUoU1ZHRm9udEZhY2VFbGVtZW50
KiBlbGVtZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb250RmFjZVN0
eWxlRGVjbGFyYXRpb24oZWxlbWVudCkpOwotICAgIH0KLQotICAgIHZpcnR1YWwgfkZvbnRGYWNl
U3R5bGVEZWNsYXJhdGlvbigpIHsgfQotCi0gICAgdmlydHVhbCBDU1NTdHlsZVNoZWV0KiBzdHls
ZVNoZWV0KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBlbGVtZW50KCktPmRvY3VtZW50
KCkgPyBlbGVtZW50KCktPmRvY3VtZW50KCktPm1hcHBlZEVsZW1lbnRTaGVldCgpIDogMDsKLSAg
ICB9Ci0KLXByaXZhdGU6Ci0gICAgRm9udEZhY2VTdHlsZURlY2xhcmF0aW9uKFNWR0ZvbnRGYWNl
RWxlbWVudCogZWxlbWVudCkKLSAgICAgICAgOiBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbihl
bGVtZW50LCAvKiBpc0lubGluZSAqLyBmYWxzZSkKLSAgICB7Ci0gICAgfQotfTsKLQogaW5saW5l
IFNWR0ZvbnRGYWNlRWxlbWVudDo6U1ZHRm9udEZhY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpCiAgICAgLCBtX2ZvbnRGYWNlUnVsZShDU1NGb250RmFjZVJ1bGU6OmNyZWF0
ZSgpKQotICAgICwgbV9zdHlsZURlY2xhcmF0aW9uKEZvbnRGYWNlU3R5bGVEZWNsYXJhdGlvbjo6
Y3JlYXRlKHRoaXMpKQorICAgICwgbV9zdHlsZURlY2xhcmF0aW9uKENTU0VsZW1lbnRTdHlsZURl
Y2xhcmF0aW9uOjpjcmVhdGVGb3JTVkdGb250RmFjZSh0aGlzKSkKIHsKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShmb250X2ZhY2VUYWcpKTsKICAgICBtX3N0eWxlRGVjbGFyYXRpb24tPnNldFN0cmlj
dFBhcnNpbmcodHJ1ZSk7Cg==
</data>
<flag name="review"
          id="124633"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="124636"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
      

    </bug>

</bugzilla>