<?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>127641</bug_id>
          
          <creation_ts>2014-01-25 21:24:47 -0800</creation_ts>
          <short_desc>Start cleaning up iOS upstreaming #ifs in platform/graphics</short_desc>
          <delta_ts>2015-02-02 18:05:25 -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>Platform</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>reyndersbrian</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>972131</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-25 21:24:47 -0800</bug_when>
    <thetext>I saw some low-hanging fruit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972176</commentid>
    <comment_count>1</comment_count>
      <attachid>222267</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-26 02:39:32 -0800</bug_when>
    <thetext>Created attachment 222267
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972313</commentid>
    <comment_count>2</comment_count>
      <attachid>222298</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-26 20:20:57 -0800</bug_when>
    <thetext>Created attachment 222298
reduce scope, fix build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972342</commentid>
    <comment_count>3</comment_count>
      <attachid>222298</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-26 23:11:41 -0800</bug_when>
    <thetext>Comment on attachment 222298
reduce scope, fix build

Clearing flags on attachment: 222298

Committed r162827: &lt;http://trac.webkit.org/changeset/162827&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972343</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-26 23:11:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222267</attachid>
            <date>2014-01-26 02:39:32 -0800</date>
            <delta_ts>2014-01-26 20:20:57 -0800</delta_ts>
            <desc>patch</desc>
            <filename>clean.diff</filename>
            <type>text/plain</type>
            <size>23245</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1YzRmYzRmLi5kNWU5OWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEg
QEAKKzIwMTQtMDEtMjUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgU3RhcnQgY2xlYW5pbmcgdXAgaU9TIHVwc3RyZWFtaW5nICNpZnMgaW4gcGxhdGZv
cm0vZ3JhcGhpY3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9tYWMvQ29sb3JNYWMuaDoKKyAgICAgICAgVXNlIFVTRShBUFBLSVQpIGluc3Rl
YWQgb2YgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSBmb3IgTlNJbWFnZS9nZXROU0lt
YWdlKCkuCisgICAgICAgIFVzZSBVU0UoQ0cpIGluc3RlYWQgb2YgUExBVEZPUk0oTUFDKSBmb3Ig
Z2V0VGlmZlJlcHJlc2VudGF0aW9uKCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OmxhYmVsKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdh
Y3lBVkZPYmpDOjpsYWJlbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNz
ZXRGb3JVUkwpOgorICAgICAgICBSZW1vdmUgc29tZSBjb2RlIHRoYXQgd2FzIG9ubHkgdXNlZCBv
biBPUyBYIG9uIExpb24gb3IgYmVsb3cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9CaXRtYXBJbWFnZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpnZXRU
SUZGUmVwcmVzZW50YXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9JbWFn
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjppbnZhbGlkYXRlUGxhdGZv
cm1EYXRhKToKKyAgICAgICAgTW92ZSBnZXRUSUZGUmVwcmVzZW50YXRpb24gdG8gQml0bWFwSW1h
Z2VDRyBpbnN0ZWFkIG9mIEltYWdlTWFjLCBzaW5jZQorICAgICAgICBpdCBpcyBDRy1zcGVjaWZp
YyBhbmQgbm90IE1hYy1zcGVjaWZpYy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6cGxhdGZvcm1Jbml0KToKKyAgICAgICAgVG9UIFdlYktpdCBkb2Vzbid0IGJ1aWxkIG9uIExp
b24gb3IgZWFybGllciBhbnltb3JlLCBzbyB0aGlzIGNvZGUgY2FuIGFsd2F5cyBydW4uCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvckNHLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFBvaW50Q0cuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NnL0Zsb2F0UmVjdENHLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9GbG9hdFNpemVDRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhZGll
bnRDRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50UG9pbnRDRy5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW50UmVjdENHLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9QYXRoQ0cuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5D
Ry5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwOgorICAgICAgICBVc2UgQ29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oIGluc3Rl
YWQgb2YgQXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmgKKyAgICAgICAg
ZXZlbiBvbiBNYWMsIHNvIHdlIGNhbiBzaGFyZSB0aGUgaW5jbHVkZS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NnL0ludFNpemVDRy5jcHA6CisgICAgICAgIFJlbW92ZSBhIHJhbmRv
bSBjb21tZW50IG9mIGEgc3R5bGUgd2UgZG9uJ3QgdGVuZCB0byB1c2UgaW4gV2ViS2l0LAorICAg
ICAgICBhbmQgZnJvbSBhIGZpbGUgbm90IGxhcmdlIGVub3VnaCB0byBuZWVkIGl0LgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpzZXRGb250KToKKyAgICAgICAgUmVt
b3ZlIHNvbWUgbW9yZSBhbHdheXMtdHJ1ZSAjaWZzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1dlYkxheWVyLm1tOgorICAgICAgICBNb3ZlIGEgI2lmJ2QgaW5jbHVkZSBvdXQg
dG8gaXRzIG93biBibG9jayBhcyBwZXIgdGhlIHN0eWxlIGd1aWRlLgorCiAyMDE0LTAxLTIzICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBKYXZh
U2NyaXB0Q2FsbEZyYW1lIGFuZCBTY3JpcHREZWJ1Z1NlcnZlciBpbnRvIEphdmFTY3JpcHRDb3Jl
IGZvciBpbnNwZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5oCmluZGV4IDY1MjE4OGYuLjMwMDFhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtMzYsOSArMzYsMTAgQEAKIAogI2lm
IFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaWYgIVBMQVRGT1JN
KElPUykKKyNlbmRpZgorCisjaWYgVVNFKEFQUEtJVCkKIE9CSkNfQ0xBU1MgTlNJbWFnZTsKLSNl
bmRpZiAvLyBQTEFURk9STShJT1MpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTE1
NiwxNSArMTU3LDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCiAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNl
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZU5vcm1hbCkgb3ZlcnJpZGU7
CiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gQWNjZXNzb3JzIGZvciBuYXRpdmUgaW1hZ2Ug
Zm9ybWF0cy4KLSNpZiAhUExBVEZPUk0oSU9TKQorCisjaWYgVVNFKEFQUEtJVCkKICAgICB2aXJ0
dWFsIE5TSW1hZ2UqIGdldE5TSW1hZ2UoKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZpcnR1YWwg
Q0ZEYXRhUmVmIGdldFRJRkZSZXByZXNlbnRhdGlvbigpIG92ZXJyaWRlOwotI2VuZGlmCiAKICNp
ZiBVU0UoQ0cpCisgICAgdmlydHVhbCBDRkRhdGFSZWYgZ2V0VElGRlJlcHJlc2VudGF0aW9uKCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBDR0ltYWdlUmVmIGdldENHSW1hZ2VSZWYoKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIENHSW1hZ2VSZWYgZ2V0Rmlyc3RDR0ltYWdlUmVmT2ZTaXplKGNvbnN0
IEludFNpemUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFJldGFpblB0cjxDRkFycmF5UmVmPiBn
ZXRDR0ltYWdlQXJyYXkoKSBvdmVycmlkZTsKQEAgLTMxMywxMCArMzEzLDEwIEBAIHByaXZhdGU6
CiAgICAgaW50IG1fcmVwZXRpdGlvbnNDb21wbGV0ZTsgIC8vIEhvdyBtYW55IHJlcGV0aXRpb25z
IHdlJ3ZlIGZpbmlzaGVkLgogICAgIGRvdWJsZSBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZTsgIC8v
IFRoZSBzeXN0ZW0gdGltZSBhdCB3aGljaCB3ZSBob3BlIHRvIHNlZSB0aGUgbmV4dCBjYWxsIHRv
IHN0YXJ0QW5pbWF0aW9uKCkuCiAKLSNpZiBQTEFURk9STShNQUMpCi0jaWYgIVBMQVRGT1JNKElP
UykKKyNpZiBVU0UoQVBQS0lUKQogICAgIG11dGFibGUgUmV0YWluUHRyPE5TSW1hZ2U+IG1fbnNJ
bWFnZTsgLy8gQSBjYWNoZWQgTlNJbWFnZSBvZiBmcmFtZSAwLiBPbmx5IGJ1aWx0IGxhemlseSBp
ZiBzb21lb25lIGFjdHVhbGx5IHF1ZXJpZXMgZm9yIG9uZS4KICNlbmRpZgorI2lmIFVTRShDRykK
ICAgICBtdXRhYmxlIFJldGFpblB0cjxDRkRhdGFSZWY+IG1fdGlmZlJlcDsgLy8gQ2FjaGVkIFRJ
RkYgcmVwIGZvciBmcmFtZSAwLiAgT25seSBidWlsdCBsYXppbHkgaWYgc29tZW9uZSBxdWVyaWVz
IGZvciBvbmUuCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVB
VkZPYmpDSW1wbC5tbQppbmRleCA5ZTQ1NWI0Li4xM2ZmM2M1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZP
YmpDSW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbQpAQCAtMTE1LDExICsxMTUsNyBAQCBB
dG9taWNTdHJpbmcgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6bGFiZWwoKSBjb25zdAogICAg
ICAgICByZXR1cm4gZW1wdHlBdG9tOwogCiAgICAgLy8gSWYgcG9zc2libGUsIHJldHVybiBhIHRp
dGxlIGluIG9uZSBvZiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZXMuCi0jaWYgUExBVEZP
Uk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICBO
U0FycmF5ICp0aXRsZXNGb3JQcmVmZXJyZWRMYW5ndWFnZXMgPSBbQVZNZXRhZGF0YUl0ZW0gbWV0
YWRhdGFJdGVtc0Zyb21BcnJheTp0aXRsZXMgZmlsdGVyZWRBbmRTb3J0ZWRBY2NvcmRpbmdUb1By
ZWZlcnJlZExhbmd1YWdlczpbTlNMb2NhbGUgcHJlZmVycmVkTGFuZ3VhZ2VzXV07Ci0jZWxzZQot
ICAgIE5TQXJyYXkgKnRpdGxlc0ZvclByZWZlcnJlZExhbmd1YWdlcyA9IFtBVk1ldGFkYXRhSXRl
bSBtZXRhZGF0YUl0ZW1zRnJvbUFycmF5OnRpdGxlcyB3aXRoTG9jYWxlOltOU0xvY2FsZSBjdXJy
ZW50TG9jYWxlXV07Ci0jZW5kaWYKICAgICBpZiAoW3RpdGxlc0ZvclByZWZlcnJlZExhbmd1YWdl
cyBjb3VudF0pCiAgICAgICAgIHJldHVybiBbW3RpdGxlc0ZvclByZWZlcnJlZExhbmd1YWdlcyBv
YmplY3RBdEluZGV4OjBdIHN0cmluZ1ZhbHVlXTsKICAgICByZXR1cm4gW1t0aXRsZXMgb2JqZWN0
QXRJbmRleDowXSBzdHJpbmdWYWx1ZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVn
YWN5QVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLm1tCmluZGV4IGE4
ZGY1NWEuLjkyZDE2MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLm1tCkBAIC0xMDQsMTIgKzEw
NCw4IEBAIEF0b21pY1N0cmluZyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQzo6
bGFiZWwoKSBjb25zdAogCiAgICAgTlNBcnJheSAqdGl0bGVzID0gW0FWTWV0YWRhdGFJdGVtIG1l
dGFkYXRhSXRlbXNGcm9tQXJyYXk6W1ttX3BsYXllckl0ZW1UcmFjayBhc3NldFRyYWNrXSBjb21t
b25NZXRhZGF0YV0gd2l0aEtleTpBVk1ldGFkYXRhQ29tbW9uS2V5VGl0bGUga2V5U3BhY2U6QVZN
ZXRhZGF0YUtleVNwYWNlQ29tbW9uXTsKICAgICBpZiAoW3RpdGxlcyBjb3VudF0pIHsKLSNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICAgICAgLy8gSWYgcG9z
c2libGUsIHJldHVybiBhIHRpdGxlIGluIG9uZSBvZiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5n
dWFnZXMuCiAgICAgICAgIE5TQXJyYXkgKnRpdGxlc0ZvclByZWZlcnJlZExhbmd1YWdlcyA9IFtB
Vk1ldGFkYXRhSXRlbSBtZXRhZGF0YUl0ZW1zRnJvbUFycmF5OnRpdGxlcyBmaWx0ZXJlZEFuZFNv
cnRlZEFjY29yZGluZ1RvUHJlZmVycmVkTGFuZ3VhZ2VzOltOU0xvY2FsZSBwcmVmZXJyZWRMYW5n
dWFnZXNdXTsKLSNlbHNlCi0gICAgICAgICBOU0FycmF5ICp0aXRsZXNGb3JQcmVmZXJyZWRMYW5n
dWFnZXMgPSBbQVZNZXRhZGF0YUl0ZW0gbWV0YWRhdGFJdGVtc0Zyb21BcnJheTp0aXRsZXMgd2l0
aExvY2FsZTpbTlNMb2NhbGUgY3VycmVudExvY2FsZV1dOwotI2VuZGlmCiAgICAgICAgIGlmIChb
dGl0bGVzRm9yUHJlZmVycmVkTGFuZ3VhZ2VzIGNvdW50XSkKICAgICAgICAgICAgIHRpdGxlID0g
W1t0aXRsZXNGb3JQcmVmZXJyZWRMYW5ndWFnZXMgb2JqZWN0QXRJbmRleDowXSBzdHJpbmdWYWx1
ZV07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGYzOGUyMGIuLjI1Zjg3MjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNDc2LDcgKzQ3Niw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBTdHJpbmcm
IHVybCkKIAogICAgIFtvcHRpb25zLmdldCgpIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0
aEludDpBVkFzc2V0UmVmZXJlbmNlUmVzdHJpY3Rpb25Gb3JiaWRSZW1vdGVSZWZlcmVuY2VUb0xv
Y2FsIHwgQVZBc3NldFJlZmVyZW5jZVJlc3RyaWN0aW9uRm9yYmlkTG9jYWxSZWZlcmVuY2VUb1Jl
bW90ZV0gZm9yS2V5OkFWVVJMQXNzZXRSZWZlcmVuY2VSZXN0cmljdGlvbnNLZXldOwogCi0jaWYg
UExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAK
ICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gaGVhZGVyRmllbGRzID0gYWRvcHRO
UyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKIAogICAgIFN0cmluZyByZWZl
cnJlciA9IHBsYXllcigpLT5yZWZlcnJlcigpOwpAQCAtNDg5LDcgKzQ4OCw2IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTChjb25z
dCBTdHJpbmcmIHVybCkKIAogICAgIGlmIChbaGVhZGVyRmllbGRzLmdldCgpIGNvdW50XSkKICAg
ICAgICAgW29wdGlvbnMuZ2V0KCkgc2V0T2JqZWN0OmhlYWRlckZpZWxkcy5nZXQoKSBmb3JLZXk6
QCJBVlVSTEFzc2V0SFRUUEhlYWRlckZpZWxkc0tleSJdOwotI2VuZGlmCiAKICAgICBOU1VSTCAq
Y29jb2FVUkwgPSBVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpOwogICAgIG1fYXZBc3NldCA9IGFk
b3B0TlMoW1tBVlVSTEFzc2V0IGFsbG9jXSBpbml0V2l0aFVSTDpjb2NvYVVSTCBvcHRpb25zOm9w
dGlvbnMuZ2V0KCldKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0JpdG1hcEltYWdlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvQml0bWFwSW1hZ2VDRy5jcHAKaW5kZXggYzgzMTAxOC4uN2Y3ZWFjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQml0bWFwSW1hZ2VDRy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQml0bWFwSW1hZ2VDRy5j
cHAKQEAgLTMyLDEyICszMiwyNCBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAj
aW5jbHVkZSAiSW1hZ2VPYnNlcnZlci5oIgogI2luY2x1ZGUgIlN1YmltYWdlQ2FjaGVXaXRoVGlt
ZXIuaCIKLSNpZiAhUExBVEZPUk0oSU9TKQorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwor
I2lmIFVTRShBUFBLSVQpCiAjaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlv
blNlcnZpY2VzLmg+Ci0jZWxzZQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCisjaW5jbHVk
ZSAiU29mdExpbmtpbmcuaCIKKwogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0NvbnRleHRQcml2
YXRlLmg+CisjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgorI2luY2x1ZGUg
PEltYWdlSU8vSW1hZ2VJTy5oPgorI2luY2x1ZGUgPE1vYmlsZUNvcmVTZXJ2aWNlcy9Nb2JpbGVD
b3JlU2VydmljZXMuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SSyhNb2JpbGVDb3JlU2VydmljZXMp
CitTT0ZUX0xJTktfQ09OU1RBTlQoTW9iaWxlQ29yZVNlcnZpY2VzLCBrVVRUeXBlVElGRiwgQ0ZT
dHJpbmdSZWYpCisjZGVmaW5lIGtVVFR5cGVUSUZGIGdldGtVVFR5cGVUSUZGKCkKICNlbmRpZgot
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRl
ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCkBAIC0yNzAsNiArMjgyLDQzIEBAIFBhc3NOYXRp
dmVJbWFnZVB0ciBCaXRtYXBJbWFnZTo6Y29weVVuc2NhbGVkRnJhbWVBdEluZGV4KHNpemVfdCBp
bmRleCkKIH0KICNlbmRpZgogCitDRkRhdGFSZWYgQml0bWFwSW1hZ2U6OmdldFRJRkZSZXByZXNl
bnRhdGlvbigpCit7CisgICAgaWYgKG1fdGlmZlJlcCkKKyAgICAgICAgcmV0dXJuIG1fdGlmZlJl
cC5nZXQoKTsKKworICAgIHVuc2lnbmVkIG51bUZyYW1lcyA9IGZyYW1lQ291bnQoKTsKKworICAg
IC8vIElmIG51bUZyYW1lcyBpcyB6ZXJvLCB3ZSBrbm93IGZvciBjZXJ0YWluIHRoaXMgaW1hZ2Ug
ZG9lc24ndCBoYXZlIHZhbGlkIGRhdGEKKyAgICAvLyBFdmVuIHRob3VnaCB0aGUgY2FsbCB0byBD
R0ltYWdlRGVzdGluYXRpb25DcmVhdGVXaXRoRGF0YSB3aWxsIGZhaWwgYW5kIHdlJ2xsIGhhbmRs
ZSBpdCBncmFjZWZ1bGx5LAorICAgIC8vIGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcyB0aGF0IGNh
bGwgd2lsbCBzcGFtIHRoZSBjb25zb2xlIHdpdGggYW4gZXJyb3IgbWVzc2FnZQorICAgIGlmICgh
bnVtRnJhbWVzKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFZlY3RvcjxDR0ltYWdlUmVmPiBp
bWFnZXM7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUZyYW1lczsgKytpKSB7Cisg
ICAgICAgIENHSW1hZ2VSZWYgY2dJbWFnZSA9IGZyYW1lQXRJbmRleChpKTsKKyAgICAgICAgaWYg
KGNnSW1hZ2UpCisgICAgICAgICAgICBpbWFnZXMuYXBwZW5kKGNnSW1hZ2UpOworICAgIH0KKwor
ICAgIHVuc2lnbmVkIG51bVZhbGlkRnJhbWVzID0gaW1hZ2VzLnNpemUoKTsKKworICAgIFJldGFp
blB0cjxDRk11dGFibGVEYXRhUmVmPiBkYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGVNdXRhYmxl
KDAsIDApKTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZURlc3RpbmF0aW9uUmVmPiBkZXN0aW5hdGlv
biA9IGFkb3B0Q0YoQ0dJbWFnZURlc3RpbmF0aW9uQ3JlYXRlV2l0aERhdGEoZGF0YS5nZXQoKSwg
a1VUVHlwZVRJRkYsIG51bVZhbGlkRnJhbWVzLCAwKSk7CisKKyAgICBpZiAoIWRlc3RpbmF0aW9u
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1W
YWxpZEZyYW1lczsgKytpKQorICAgICAgICBDR0ltYWdlRGVzdGluYXRpb25BZGRJbWFnZShkZXN0
aW5hdGlvbi5nZXQoKSwgaW1hZ2VzW2ldLCAwKTsKKyAgICAKKyAgICBDR0ltYWdlRGVzdGluYXRp
b25GaW5hbGl6ZShkZXN0aW5hdGlvbi5nZXQoKSk7CisgICAgCisgICAgbV90aWZmUmVwID0gZGF0
YTsKKyAgICByZXR1cm4gbV90aWZmUmVwLmdldCgpOworfQorCiB9CiAKICNlbmRpZiAvLyBVU0Uo
Q0cpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xv
ckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3Bw
CmluZGV4IDkyMzY2ZTIuLmIxMWRiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwCkBAIC0zMSwxMyArMzEsOSBAQAogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dENHLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+Ci0jaWYgIVBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDxBcHBsaWNh
dGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KLSNlbHNlCiAjaW5jbHVkZSA8Q29y
ZUdyYXBoaWNzL0NHQ29sb3JUcmFuc2Zvcm0uaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29y
ZUdyYXBoaWNzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotI2VuZGlmIC8vICFQ
TEFURk9STShJT1MpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRmxvYXRQb2ludENHLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0UG9pbnRDRy5jcHAKaW5kZXggMjUwZWQ1
MC4uZDI2OTMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvRmxvYXRQb2ludENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9GbG9hdFBvaW50Q0cuY3BwCkBAIC0yOSwxMSArMjksNyBAQAogCiAjaWYgVVNFKENHKQog
Ci0jaWYgIVBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxp
Y2F0aW9uU2VydmljZXMuaD4KLSNlbHNlCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFw
aGljcy5oPgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRmxvYXRSZWN0Q0cuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRmxvYXRSZWN0Q0cuY3BwCmluZGV4IDhhMGE1
M2MuLjMzY2EzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0Zsb2F0UmVjdENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9GbG9hdFJlY3RDRy5jcHAKQEAgLTI5LDExICsyOSw3IEBACiAKICNpZiBVU0UoQ0cpCiAK
LSNpZiAhUExBVEZPUk0oSU9TKQotI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGlj
YXRpb25TZXJ2aWNlcy5oPgotI2Vsc2UKICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBo
aWNzLmg+Ci0jZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNpemVDRy5jcHAKaW5kZXggNGYxZTEw
OC4uNDEyNmU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvRmxvYXRTaXplQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0Zsb2F0U2l6ZUNHLmNwcApAQCAtMjksMTEgKzI5LDcgQEAKIAogI2lmIFVTRShDRykKIAot
I2lmICFQTEFURk9STShJT1MpCi0jaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNh
dGlvblNlcnZpY2VzLmg+Ci0jZWxzZQogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhp
Y3MuaD4KLSNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYWRpZW50Q0cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhZGllbnRDRy5jcHAKaW5kZXggMzg3MTBhMS4u
ZjljZWQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
R3JhZGllbnRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
R3JhZGllbnRDRy5jcHAKQEAgLTI4LDExICsyOCw3IEBACiAjaW5jbHVkZSAiR3JhZGllbnQuaCIK
IAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENHLmgiCi0jaWYgIVBMQVRGT1JNKElPUykKLSNp
bmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KLSNlbHNl
CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgotI2VuZGlmCiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5j
cHAKaW5kZXggNjQyYzJmMC4uZjExZGI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtMTAxNywx
MCArMTAxNyw4IEBAIHN0YXRpYyB2b2lkIGFwcGx5U2hhZG93T2Zmc2V0V29ya2Fyb3VuZElmTmVl
ZGVkKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwKICAgICBpZiAoY29udGV4dC5pc0Fj
Y2VsZXJhdGVkQ29udGV4dCgpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICBpZiAod2tDR0NvbnRleHREcmF3c1dpdGhD
b3JyZWN0U2hhZG93T2Zmc2V0cyhjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKSkKICAgICAgICAg
cmV0dXJuOwotI2VuZGlmCiAKICAgICAvLyBXb3JrIGFyb3VuZCA8cmRhcjovL3Byb2JsZW0vNTUz
OTM4OD4gYnkgZW5zdXJpbmcgdGhhdCB0aGUgb2Zmc2V0cyB3aWxsIGdldCB0cnVuY2F0ZWQKICAg
ICAvLyB0byB0aGUgZGVzaXJlZCBpbnRlZ2VyLiBBbHNvIHNlZTogPHJkYXI6Ly9wcm9ibGVtLzEw
MDU2Mjc3PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHLmNwcAppbmRleCA2MjVhZjQ5Li5mOWY0OTQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcApAQCAt
MzQsMTIgKzM0LDggQEAKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJNSU1FVHlw
ZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSA8bWF0aC5oPgotI2lmICFQTEFURk9STShJT1MpCi0jaW5j
bHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+Ci0jZWxzZQog
I2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KICNpbmNsdWRlIDxJbWFnZUlP
L0ltYWdlSU8uaD4KLSNlbmRpZgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVk
ZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKaW5k
ZXggNDk1ZDY2Mi4uZTI0Yzc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VDRy5jcHAKQEAgLTMyLDExICszMiw3IEBACiAjaW5jbHVkZSAiRmxvYXRS
ZWN0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbmNsdWRlICJJbWFnZU9i
c2VydmVyLmgiCi0jaWYgIVBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZp
Y2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KLSNlbHNlCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNz
L0NvcmVHcmFwaGljcy5oPgotI2VuZGlmCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiAj
aWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW50UG9pbnRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbnRQb2ludENHLmNwcAppbmRleCBiZDA0NTc0Li5kZjAzYzdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbnRQb2ludENHLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbnRQb2ludENHLmNwcApAQCAtMjgs
MTEgKzI4LDcgQEAKIAogI2lmIFVTRShDRykKIAotI2lmICFQTEFURk9STShJT1MpCi0jaW5jbHVk
ZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+Ci0jZWxzZQogI2lu
Y2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KLSNlbmRpZgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ludFJlY3RDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bnRSZWN0Q0cuY3BwCmluZGV4IGQxZjdiMmUuLjAyNDljY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ludFJlY3RDRy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50UmVjdENHLmNwcApAQCAtMjgsMTEgKzI4LDcg
QEAKIAogI2lmIFVTRShDRykKIAotI2lmICFQTEFURk9STShJT1MpCi0jaW5jbHVkZSA8QXBwbGlj
YXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+Ci0jZWxzZQogI2luY2x1ZGUgPENv
cmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KLSNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ludFNp
emVDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbnRTaXplQ0cu
Y3BwCmluZGV4IGU1ZDBiODIuLjQ1MGE5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ludFNpemVDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW50U2l6ZUNHLmNwcApAQCAtMjgsMTEgKzI4LDcgQEAKIAogI2lm
IFVTRShDRykKIAotI2lmICFQTEFURk9STShJT1MpCi0jaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2
aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+Ci0jZWxzZQogI2luY2x1ZGUgPENvcmVHcmFwaGlj
cy9Db3JlR3JhcGhpY3MuaD4KLSNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwCmluZGV4IDMzYmQ4
OTEuLjU5N2ZkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL1BhdGhDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
UGF0aENHLmNwcApAQCAtMzQsMTIgKzM0LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiU3Ryb2tlU3R5bGVBcHBsaWVyLmgi
Ci0jaWYgIVBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxp
Y2F0aW9uU2VydmljZXMuaD4KLSNlbHNlCi0jaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHUGF0aFBy
aXZhdGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+Ci0jZW5kaWYK
ICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTMyNSw5ICszMjAsNiBAQCBGbG9h
dFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0CiAgICAgcmV0dXJuIENHUGF0aEdldEN1
cnJlbnRQb2ludChtX3BhdGgpOwogfQogCi0vLyBNQVJLOiAtCi0vLyBNQVJLOiBQYXRoIE1hbmFn
ZW1lbnQKLQogc3RydWN0IFBhdGhBcHBsaWVySW5mbyB7CiAgICAgdm9pZCogaW5mbzsKICAgICBQ
YXRoQXBwbGllckZ1bmN0aW9uIGZ1bmN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0dGVybkNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5DRy5jcHAKaW5kZXggMGMwODA0OC4uMTgwNjUwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0dGVybkNHLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3Bw
CkBAIC0zMCwxMSArMzAsNyBAQAogI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogCi0jaWYgIVBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDxB
cHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KLSNlbHNlCiAjaW5jbHVk
ZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgotI2VuZGlmCiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2Nv
YS5tbQppbmRleCA3Yjc2MzJhLi5lOWE5MmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29h
Lm1tCkBAIC03OSw5ICs3OSw3IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEo
Q1RGb250UmVmIGN0Rm9udCwgZmxvYXQgc2l6ZSwgYm9vbCBpc1ByaW50ZXJGCiAgICAgewogICAg
ICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyB0cmFpdHMgPSBDVEZvbnRHZXRTeW1ib2xpY1RyYWl0
cyh0b0NURm9udFJlZihtX2ZvbnQpKTsKICAgICAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IHRy
YWl0cyAmIGtDVEZvbnRDb2xvckdseXBoc1RyYWl0OwotI2lmIFBMQVRGT1JNKElPUykgfHwgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgICAgIG1faXNDb21wb3Np
dGVGb250UmVmZXJlbmNlID0gdHJhaXRzICYga0NURm9udENvbXBvc2l0ZVRyYWl0OwotI2VuZGlm
CiAgICAgfQogCiAgICAgaWYgKG1fZm9udCkKQEAgLTE5NCw5ICsxOTIsNyBAQCB2b2lkIEZvbnRQ
bGF0Zm9ybURhdGE6OnNldEZvbnQoTlNGb250ICpmb250KQogICAgIHsKICAgICAgICAgQ1RGb250
U3ltYm9saWNUcmFpdHMgdHJhaXRzID0gQ1RGb250R2V0U3ltYm9saWNUcmFpdHModG9DVEZvbnRS
ZWYobV9mb250KSk7CiAgICAgICAgIG1faXNDb2xvckJpdG1hcEZvbnQgPSB0cmFpdHMgJiBrQ1RG
b250Q29sb3JHbHlwaHNUcmFpdDsKLSNpZiBQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgICAgICBtX2lzQ29tcG9zaXRlRm9udFJlZmVy
ZW5jZSA9IHRyYWl0cyAmIGtDVEZvbnRDb21wb3NpdGVUcmFpdDsKLSNlbmRpZgogICAgIH0KICAg
ICBtX0NURm9udCA9IDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29sb3JNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Db2xvck1hYy5oCmluZGV4IDAxM2MxZTUuLjRlOGIxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5oCkBAIC0zMSwxMyArMzEsMTMg
QEAKIAogI2luY2x1ZGUgIkNvbG9yLmgiCiAKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFVTRShB
UFBLSVQpCiBPQkpDX0NMQVNTIE5TQ29sb3I7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIAotI2lmICFQTEFURk9STShJT1MpCisjaWYgVVNFKEFQUEtJVCkKICAgICAvLyBUaGVz
ZSBmdW5jdGlvbnMgYXNzdW1lIE5TQ29sb3JzIGFyZSBpbiBEZXZpY2VSR0IgY29sb3JzcGFjZQog
ICAgIENvbG9yIGNvbG9yRnJvbU5TQ29sb3IoTlNDb2xvciAqKTsKICAgICBOU0NvbG9yICpuc0Nv
bG9yKGNvbnN0IENvbG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKaW5kZXggMzc2
ZTBkMS4uNzVjNGU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcApAQCAtMjMsMTEg
KzIzLDcgQEAKIAogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJTaGFy
ZWRCdWZmZXIuaCIKLSNpZiAhUExBVEZPUk0oSU9TKQotI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2Vy
dmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgotI2Vsc2UKICNpbmNsdWRlIDxDb3JlR3JhcGhp
Y3MvQ29yZUdyYXBoaWNzLmg+Ci0jZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSW1hZ2VNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSW1hZ2VNYWMubW0KaW5kZXgg
MTIwNDU4Yy4uMDQ0OWMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9JbWFnZU1hYy5tbQpAQCAtMzcsMTggKzM3LDYgQEAKIEBpbXBsZW1lbnRhdGlvbiBX
ZWJDb3JlQnVuZGxlRmluZGVyCiBAZW5kCiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW1wb3J0ICJT
b2Z0TGlua2luZy5oIgotCi0jaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+Ci0j
aW1wb3J0IDxJbWFnZUlPL0ltYWdlSU8uaD4KLSNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9N
b2JpbGVDb3JlU2VydmljZXMuaD4KLQotU09GVF9MSU5LX0ZSQU1FV09SSyhNb2JpbGVDb3JlU2Vy
dmljZXMpCi1TT0ZUX0xJTktfQ09OU1RBTlQoTW9iaWxlQ29yZVNlcnZpY2VzLCBrVVRUeXBlVElG
RiwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtVVFR5cGVUSUZGIGdldGtVVFR5cGVUSUZGKCkKLSNl
bmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgQml0bWFwSW1hZ2U6OmludmFsaWRh
dGVQbGF0Zm9ybURhdGEoKQpAQCAtNTYsNyArNDQsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjppbnZh
bGlkYXRlUGxhdGZvcm1EYXRhKCkKICAgICBpZiAobV9mcmFtZXMuc2l6ZSgpICE9IDEpCiAgICAg
ICAgIHJldHVybjsKIAotI2lmICFQTEFURk9STShJT1MpCisjaWYgVVNFKEFQUEtJVCkKICAgICBt
X25zSW1hZ2UgPSAwOwogI2VuZGlmCiAgICAgbV90aWZmUmVwID0gMDsKQEAgLTgwLDQ0ICs2OCw3
IEBAIFBhc3NSZWZQdHI8SW1hZ2U+IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBj
aGFyICpuYW1lKQogICAgIHJldHVybiBJbWFnZTo6bnVsbEltYWdlKCk7CiB9CiAKLUNGRGF0YVJl
ZiBCaXRtYXBJbWFnZTo6Z2V0VElGRlJlcHJlc2VudGF0aW9uKCkKLXsKLSAgICBpZiAobV90aWZm
UmVwKQotICAgICAgICByZXR1cm4gbV90aWZmUmVwLmdldCgpOwotICAgIAotICAgIHVuc2lnbmVk
IG51bUZyYW1lcyA9IGZyYW1lQ291bnQoKTsKLSAgICAKLSAgICAvLyBJZiBudW1GcmFtZXMgaXMg
emVybywgd2Uga25vdyBmb3IgY2VydGFpbiB0aGlzIGltYWdlIGRvZXNuJ3QgaGF2ZSB2YWxpZCBk
YXRhCi0gICAgLy8gRXZlbiB0aG91Z2ggdGhlIGNhbGwgdG8gQ0dJbWFnZURlc3RpbmF0aW9uQ3Jl
YXRlV2l0aERhdGEgd2lsbCBmYWlsIGFuZCB3ZSdsbCBoYW5kbGUgaXQgZ3JhY2VmdWxseSwKLSAg
ICAvLyBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMgdGhhdCBjYWxsIHdpbGwgc3BhbSB0aGUgY29u
c29sZSB3aXRoIGFuIGVycm9yIG1lc3NhZ2UKLSAgICBpZiAoIW51bUZyYW1lcykKLSAgICAgICAg
cmV0dXJuIDA7Ci0KLSAgICBWZWN0b3I8Q0dJbWFnZVJlZj4gaW1hZ2VzOwotICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBudW1GcmFtZXM7ICsraSApIHsKLSAgICAgICAgQ0dJbWFnZVJlZiBj
Z0ltYWdlID0gZnJhbWVBdEluZGV4KGkpOwotICAgICAgICBpZiAoY2dJbWFnZSkKLSAgICAgICAg
ICAgIGltYWdlcy5hcHBlbmQoY2dJbWFnZSk7Ci0gICAgfQotCi0gICAgdW5zaWduZWQgbnVtVmFs
aWRGcmFtZXMgPSBpbWFnZXMuc2l6ZSgpOwotICAgIAotICAgIFJldGFpblB0cjxDRk11dGFibGVE
YXRhUmVmPiBkYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGVNdXRhYmxlKDAsIDApKTsKLSAgICBS
ZXRhaW5QdHI8Q0dJbWFnZURlc3RpbmF0aW9uUmVmPiBkZXN0aW5hdGlvbiA9IGFkb3B0Q0YoQ0dJ
bWFnZURlc3RpbmF0aW9uQ3JlYXRlV2l0aERhdGEoZGF0YS5nZXQoKSwga1VUVHlwZVRJRkYsIG51
bVZhbGlkRnJhbWVzLCAwKSk7Ci0KLSAgICBpZiAoIWRlc3RpbmF0aW9uKQotICAgICAgICByZXR1
cm4gMDsKLSAgICAKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtVmFsaWRGcmFtZXM7
ICsraSkKLSAgICAgICAgQ0dJbWFnZURlc3RpbmF0aW9uQWRkSW1hZ2UoZGVzdGluYXRpb24uZ2V0
KCksIGltYWdlc1tpXSwgMCk7Ci0KLSAgICBDR0ltYWdlRGVzdGluYXRpb25GaW5hbGl6ZShkZXN0
aW5hdGlvbi5nZXQoKSk7Ci0KLSAgICBtX3RpZmZSZXAgPSBkYXRhOwotICAgIHJldHVybiBtX3Rp
ZmZSZXAuZ2V0KCk7Ci19Ci0KLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFVTRShBUFBLSVQpCiBO
U0ltYWdlKiBCaXRtYXBJbWFnZTo6Z2V0TlNJbWFnZSgpCiB7CiAgICAgaWYgKG1fbnNJbWFnZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXll
ci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQpp
bmRleCBhOTI0Y2RmLi5kOTlkZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tCkBAIC0zMiw5ICszMiw2IEBACiAjaW1wb3J0ICJHcmFw
aGljc0NvbnRleHQuaCIKICNpbXBvcnQgIkdyYXBoaWNzTGF5ZXJDQS5oIgogI2ltcG9ydCAiUGxh
dGZvcm1DQUxheWVyLmgiCi0jaWYgIVBMQVRGT1JNKElPUykKLSNpbXBvcnQgIlRoZW1lTWFjLmgi
Ci0jZW5kaWYKICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogCiAjaWYgUExBVEZP
Uk0oSU9TKQpAQCAtNDMsNiArNDAsMTAgQEAKICNpbXBvcnQgIldlYkNvcmVUaHJlYWQuaCIKICNl
bmRpZgogCisjaWYgIVBMQVRGT1JNKElPUykKKyNpbXBvcnQgIlRoZW1lTWFjLmgiCisjZW5kaWYK
KwogQGludGVyZmFjZSBDQUxheWVyKFdlYkNvcmVDQUxheWVyUHJpdmF0ZSkKIC0gKHZvaWQpcmVs
b2FkVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGg7CiBAZW5kCg==
</data>
<flag name="review"
          id="246244"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222298</attachid>
            <date>2014-01-26 20:20:57 -0800</date>
            <delta_ts>2014-01-26 23:11:41 -0800</delta_ts>
            <desc>reduce scope, fix build</desc>
            <filename>clean.diff</filename>
            <type>text/plain</type>
            <size>20180</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3ZDc0Yzc5Li4yMmY0MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIg
QEAKKzIwMTQtMDEtMjYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgU3RhcnQgY2xlYW5pbmcgdXAgaU9TIHVwc3RyZWFtaW5nICNpZnMgaW4gcGxhdGZv
cm0vZ3JhcGhpY3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9Db2xvck1hYy5oOgorICAgICAgICBVc2UgVVNFKEFQUEtJVCkgaW5zdGVhZCBv
ZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpIGZvciBOU0ltYWdlL2dldE5TSW1hZ2Uo
KS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJp
dmF0ZUFWRk9iakNJbXBsLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZP
YmpDSW1wbDo6bGFiZWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakM6OmxhYmVsKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6CisgICAgICAgIFJl
bW92ZSBzb21lIGNvZGUgdGhhdCB3YXMgb25seSB1c2VkIG9uIE9TIFggb24gTGlvbiBvciBiZWxv
dy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1Jbml0KToKKyAg
ICAgICAgVG9UIFdlYktpdCBkb2Vzbid0IGJ1aWxkIG9uIExpb24gb3IgZWFybGllciBhbnltb3Jl
LCBzbyB0aGlzIGNvZGUgY2FuIGFsd2F5cyBydW4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jZy9GbG9hdFBvaW50Q0cuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0Zsb2F0UmVjdENHLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNp
emVDRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhZGllbnRDRy5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW50UG9pbnRDRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW50UmVjdENHLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRo
Q0cuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5DRy5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3Bw
OgorICAgICAgICBVc2UgQ29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oIGluc3RlYWQgb2YgQXBw
bGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmgKKyAgICAgICAgZXZlbiBvbiBN
YWMsIHNvIHdlIGNhbiBzaGFyZSB0aGUgaW5jbHVkZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NnL0ludFNpemVDRy5jcHA6CisgICAgICAgIFJlbW92ZSBhIHJhbmRvbSBjb21tZW50
IG9mIGEgc3R5bGUgd2UgZG9uJ3QgdGVuZCB0byB1c2UgaW4gV2ViS2l0LAorICAgICAgICBhbmQg
ZnJvbSBhIGZpbGUgbm90IGxhcmdlIGVub3VnaCB0byBuZWVkIGl0LgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpzZXRGb250KToKKyAgICAgICAgUmVtb3ZlIHNvbWUg
bW9yZSBhbHdheXMtdHJ1ZSAjaWZzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L1dlYkxheWVyLm1tOgorICAgICAgICBNb3ZlIGEgI2lmJ2QgaW5jbHVkZSBvdXQgdG8gaXRzIG93
biBibG9jayBhcyBwZXIgdGhlIHN0eWxlIGd1aWRlLgorCiAyMDE0LTAxLTI2ICBCZW5qYW1pbiBQ
b3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIERPTVN0cmluZ01h
cCBhIHR5cGVkZWYgb2YgRGF0YXNldERPTVN0cmluZ01hcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggNjUyMTg4Zi4uYzIxNjFiNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC0z
Niw5ICszNiwxMCBAQAogCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KLSNpZiAhUExBVEZPUk0oSU9TKQorI2VuZGlmCisKKyNpZiBVU0UoQVBQS0lUKQogT0JK
Q19DTEFTUyBOU0ltYWdlOwotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oV0lOKQpAQCAtMTU2LDExICsxNTcsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKICAgICAgICAgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3Np
dGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgQmxlbmRNb2RlID0gQmxlbmRN
b2RlTm9ybWFsKSBvdmVycmlkZTsKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBBY2Nlc3Nv
cnMgZm9yIG5hdGl2ZSBpbWFnZSBmb3JtYXRzLgotI2lmICFQTEFURk9STShJT1MpCisKKyNpZiBV
U0UoQVBQS0lUKQogICAgIHZpcnR1YWwgTlNJbWFnZSogZ2V0TlNJbWFnZSgpIG92ZXJyaWRlOwog
I2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCBDRkRhdGFSZWYgZ2V0VElG
RlJlcHJlc2VudGF0aW9uKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIApAQCAtMzEzLDEwICszMTYsMTAg
QEAgcHJpdmF0ZToKICAgICBpbnQgbV9yZXBldGl0aW9uc0NvbXBsZXRlOyAgLy8gSG93IG1hbnkg
cmVwZXRpdGlvbnMgd2UndmUgZmluaXNoZWQuCiAgICAgZG91YmxlIG1fZGVzaXJlZEZyYW1lU3Rh
cnRUaW1lOyAgLy8gVGhlIHN5c3RlbSB0aW1lIGF0IHdoaWNoIHdlIGhvcGUgdG8gc2VlIHRoZSBu
ZXh0IGNhbGwgdG8gc3RhcnRBbmltYXRpb24oKS4KIAotI2lmIFBMQVRGT1JNKE1BQykKLSNpZiAh
UExBVEZPUk0oSU9TKQorI2lmIFVTRShBUFBLSVQpCiAgICAgbXV0YWJsZSBSZXRhaW5QdHI8TlNJ
bWFnZT4gbV9uc0ltYWdlOyAvLyBBIGNhY2hlZCBOU0ltYWdlIG9mIGZyYW1lIDAuIE9ubHkgYnVp
bHQgbGF6aWx5IGlmIHNvbWVvbmUgYWN0dWFsbHkgcXVlcmllcyBmb3Igb25lLgogI2VuZGlmCisj
aWYgVVNFKENHKQogICAgIG11dGFibGUgUmV0YWluUHRyPENGRGF0YVJlZj4gbV90aWZmUmVwOyAv
LyBDYWNoZWQgVElGRiByZXAgZm9yIGZyYW1lIDAuICBPbmx5IGJ1aWx0IGxhemlseSBpZiBzb21l
b25lIHF1ZXJpZXMgZm9yIG9uZS4KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2UuaAppbmRleCBmOGQ2MWM5Li4yNTFmNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTE0MSwxMCArMTQxLDE0IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgUGFzc05hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1l
KCkgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlv
bkZvckN1cnJlbnRGcmFtZSgpIHsgcmV0dXJuIEltYWdlT3JpZW50YXRpb24oKTsgfQotICAgIAot
I2lmIFBMQVRGT1JNKE1BQykKKwogICAgIC8vIEFjY2Vzc29ycyBmb3IgbmF0aXZlIGltYWdlIGZv
cm1hdHMuCisKKyNpZiBVU0UoQVBQS0lUKQogICAgIHZpcnR1YWwgTlNJbWFnZSogZ2V0TlNJbWFn
ZSgpIHsgcmV0dXJuIDA7IH0KKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1
YWwgQ0ZEYXRhUmVmIGdldFRJRkZSZXByZXNlbnRhdGlvbigpIHsgcmV0dXJuIDA7IH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tCmlu
ZGV4IDllNDU1YjQuLjEzZmYzYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJp
dmF0ZUFWRk9iakNJbXBsLm1tCkBAIC0xMTUsMTEgKzExNSw3IEBAIEF0b21pY1N0cmluZyBBVlRy
YWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpsYWJlbCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBlbXB0
eUF0b207CiAKICAgICAvLyBJZiBwb3NzaWJsZSwgcmV0dXJuIGEgdGl0bGUgaW4gb25lIG9mIHRo
ZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlcy4KLSNpZiBQTEFURk9STShJT1MpIHx8IF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIE5TQXJyYXkgKnRpdGxlc0Zv
clByZWZlcnJlZExhbmd1YWdlcyA9IFtBVk1ldGFkYXRhSXRlbSBtZXRhZGF0YUl0ZW1zRnJvbUFy
cmF5OnRpdGxlcyBmaWx0ZXJlZEFuZFNvcnRlZEFjY29yZGluZ1RvUHJlZmVycmVkTGFuZ3VhZ2Vz
OltOU0xvY2FsZSBwcmVmZXJyZWRMYW5ndWFnZXNdXTsKLSNlbHNlCi0gICAgTlNBcnJheSAqdGl0
bGVzRm9yUHJlZmVycmVkTGFuZ3VhZ2VzID0gW0FWTWV0YWRhdGFJdGVtIG1ldGFkYXRhSXRlbXNG
cm9tQXJyYXk6dGl0bGVzIHdpdGhMb2NhbGU6W05TTG9jYWxlIGN1cnJlbnRMb2NhbGVdXTsKLSNl
bmRpZgogICAgIGlmIChbdGl0bGVzRm9yUHJlZmVycmVkTGFuZ3VhZ2VzIGNvdW50XSkKICAgICAg
ICAgcmV0dXJuIFtbdGl0bGVzRm9yUHJlZmVycmVkTGFuZ3VhZ2VzIG9iamVjdEF0SW5kZXg6MF0g
c3RyaW5nVmFsdWVdOwogICAgIHJldHVybiBbW3RpdGxlcyBvYmplY3RBdEluZGV4OjBdIHN0cmlu
Z1ZhbHVlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMubW0KaW5kZXggYThkZjU1YS4uOTJkMTYyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMubW0KQEAgLTEwNCwxMiArMTA0LDggQEAgQXRvbWljU3Ry
aW5nIEluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDOjpsYWJlbCgpIGNvbnN0CiAK
ICAgICBOU0FycmF5ICp0aXRsZXMgPSBbQVZNZXRhZGF0YUl0ZW0gbWV0YWRhdGFJdGVtc0Zyb21B
cnJheTpbW21fcGxheWVySXRlbVRyYWNrIGFzc2V0VHJhY2tdIGNvbW1vbk1ldGFkYXRhXSB3aXRo
S2V5OkFWTWV0YWRhdGFDb21tb25LZXlUaXRsZSBrZXlTcGFjZTpBVk1ldGFkYXRhS2V5U3BhY2VD
b21tb25dOwogICAgIGlmIChbdGl0bGVzIGNvdW50XSkgewotI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgICAgICAvLyBJZiBwb3NzaWJsZSwgcmV0dXJuIGEg
dGl0bGUgaW4gb25lIG9mIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlcy4KICAgICAgICAg
TlNBcnJheSAqdGl0bGVzRm9yUHJlZmVycmVkTGFuZ3VhZ2VzID0gW0FWTWV0YWRhdGFJdGVtIG1l
dGFkYXRhSXRlbXNGcm9tQXJyYXk6dGl0bGVzIGZpbHRlcmVkQW5kU29ydGVkQWNjb3JkaW5nVG9Q
cmVmZXJyZWRMYW5ndWFnZXM6W05TTG9jYWxlIHByZWZlcnJlZExhbmd1YWdlc11dOwotI2Vsc2UK
LSAgICAgICAgIE5TQXJyYXkgKnRpdGxlc0ZvclByZWZlcnJlZExhbmd1YWdlcyA9IFtBVk1ldGFk
YXRhSXRlbSBtZXRhZGF0YUl0ZW1zRnJvbUFycmF5OnRpdGxlcyB3aXRoTG9jYWxlOltOU0xvY2Fs
ZSBjdXJyZW50TG9jYWxlXV07Ci0jZW5kaWYKICAgICAgICAgaWYgKFt0aXRsZXNGb3JQcmVmZXJy
ZWRMYW5ndWFnZXMgY291bnRdKQogICAgICAgICAgICAgdGl0bGUgPSBbW3RpdGxlc0ZvclByZWZl
cnJlZExhbmd1YWdlcyBvYmplY3RBdEluZGV4OjBdIHN0cmluZ1ZhbHVlXTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KaW5kZXggZjM4ZTIwYi4uMjVmODcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCkBAIC00NzYsNyArNDc2LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKQogCiAgICAgW29w
dGlvbnMuZ2V0KCkgc2V0T2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoSW50OkFWQXNzZXRSZWZl
cmVuY2VSZXN0cmljdGlvbkZvcmJpZFJlbW90ZVJlZmVyZW5jZVRvTG9jYWwgfCBBVkFzc2V0UmVm
ZXJlbmNlUmVzdHJpY3Rpb25Gb3JiaWRMb2NhbFJlZmVyZW5jZVRvUmVtb3RlXSBmb3JLZXk6QVZV
UkxBc3NldFJlZmVyZW5jZVJlc3RyaWN0aW9uc0tleV07CiAKLSNpZiBQTEFURk9STShJT1MpIHx8
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIFJldGFpblB0cjxO
U011dGFibGVEaWN0aW9uYXJ5PiBoZWFkZXJGaWVsZHMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGlj
dGlvbmFyeSBhbGxvY10gaW5pdF0pOwogCiAgICAgU3RyaW5nIHJlZmVycmVyID0gcGxheWVyKCkt
PnJlZmVycmVyKCk7CkBAIC00ODksNyArNDg4LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKQog
CiAgICAgaWYgKFtoZWFkZXJGaWVsZHMuZ2V0KCkgY291bnRdKQogICAgICAgICBbb3B0aW9ucy5n
ZXQoKSBzZXRPYmplY3Q6aGVhZGVyRmllbGRzLmdldCgpIGZvcktleTpAIkFWVVJMQXNzZXRIVFRQ
SGVhZGVyRmllbGRzS2V5Il07Ci0jZW5kaWYKIAogICAgIE5TVVJMICpjb2NvYVVSTCA9IFVSTChQ
YXJzZWRVUkxTdHJpbmcsIHVybCk7CiAgICAgbV9hdkFzc2V0ID0gYWRvcHROUyhbW0FWVVJMQXNz
ZXQgYWxsb2NdIGluaXRXaXRoVVJMOmNvY29hVVJMIG9wdGlvbnM6b3B0aW9ucy5nZXQoKV0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQml0bWFwSW1h
Z2VDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9CaXRtYXBJbWFn
ZUNHLmNwcAppbmRleCBjZWJjMTVlLi41NDM0NDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9CaXRtYXBJbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9CaXRtYXBJbWFnZUNHLmNwcApAQCAtMzIsMTIgKzMy
LDExIEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbmNsdWRlICJJbWFnZU9i
c2VydmVyLmgiCiAjaW5jbHVkZSAiU3ViaW1hZ2VDYWNoZVdpdGhUaW1lci5oIgotI2lmICFQTEFU
Rk9STShJT1MpCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgVVNFKEFQUEtJVCkK
ICNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KLSNl
bHNlCi0jaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQ29udGV4dFByaXZhdGUuaD4KICNlbmRpZgot
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRl
ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFBvaW50Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvRmxvYXRQb2ludENHLmNwcAppbmRleCAyNTBlZDUwLi5kMjY5MzE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFBv
aW50Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0
UG9pbnRDRy5jcHAKQEAgLTI5LDExICsyOSw3IEBACiAKICNpZiBVU0UoQ0cpCiAKLSNpZiAhUExB
VEZPUk0oSU9TKQotI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2
aWNlcy5oPgotI2Vsc2UKICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+Ci0j
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFJlY3RDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFJlY3RDRy5jcHAKaW5kZXggOGEwYTUzYy4uMzNjYTM4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRmxvYXRS
ZWN0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0
UmVjdENHLmNwcApAQCAtMjksMTEgKzI5LDcgQEAKIAogI2lmIFVTRShDRykKIAotI2lmICFQTEFU
Rk9STShJT1MpCi0jaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZp
Y2VzLmg+Ci0jZWxzZQogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KLSNl
bmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0U2l6ZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0Zsb2F0U2l6ZUNHLmNwcAppbmRleCA0ZjFlMTA4Li40MTI2ZTkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9GbG9hdFNp
emVDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvRmxvYXRT
aXplQ0cuY3BwCkBAIC0yOSwxMSArMjksNyBAQAogCiAjaWYgVVNFKENHKQogCi0jaWYgIVBMQVRG
T1JNKElPUykKLSNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2Vydmlj
ZXMuaD4KLSNlbHNlCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgotI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhZGllbnRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9HcmFkaWVudENHLmNwcAppbmRleCAzODcxMGExLi5mOWNlZDk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFkaWVudENH
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFkaWVudENH
LmNwcApAQCAtMjgsMTEgKzI4LDcgQEAKICNpbmNsdWRlICJHcmFkaWVudC5oIgogCiAjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKLSNpZiAhUExBVEZPUk0oSU9TKQotI2luY2x1ZGUgPEFw
cGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgotI2Vsc2UKICNpbmNsdWRl
IDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+Ci0jZW5kaWYKICNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCA2
NDJjMmYwLi5mMTFkYjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0xMDE3LDEwICsxMDE3LDgg
QEAgc3RhdGljIHZvaWQgYXBwbHlTaGFkb3dPZmZzZXRXb3JrYXJvdW5kSWZOZWVkZWQoY29uc3Qg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LAogICAgIGlmIChjb250ZXh0LmlzQWNjZWxlcmF0ZWRD
b250ZXh0KCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA4MAogICAgIGlmICh3a0NHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFk
b3dPZmZzZXRzKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpKQogICAgICAgICByZXR1cm47Ci0j
ZW5kaWYKIAogICAgIC8vIFdvcmsgYXJvdW5kIDxyZGFyOi8vcHJvYmxlbS81NTM5Mzg4PiBieSBl
bnN1cmluZyB0aGF0IHRoZSBvZmZzZXRzIHdpbGwgZ2V0IHRydW5jYXRlZAogICAgIC8vIHRvIHRo
ZSBkZXNpcmVkIGludGVnZXIuIEFsc28gc2VlOiA8cmRhcjovL3Byb2JsZW0vMTAwNTYyNzc+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0cuY3BwCmluZGV4IDYyNWFmNDkuLmY5ZjQ5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC0zNCwxMiArMzQs
OCBAQAogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnku
aCIKICNpbmNsdWRlIDxtYXRoLmg+Ci0jaWYgIVBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDxBcHBs
aWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KLSNlbHNlCiAjaW5jbHVkZSA8
Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgogI2luY2x1ZGUgPEltYWdlSU8vSW1hZ2VJTy5o
PgotI2VuZGlmCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ2hl
Y2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcAppbmRleCA0OTVkNjYy
Li5lMjRjNzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUNHLmNwcApAQCAtMzIsMTEgKzMyLDcgQEAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIK
LSNpZiAhUExBVEZPUk0oSU9TKQotI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGlj
YXRpb25TZXJ2aWNlcy5oPgotI2Vsc2UKICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBo
aWNzLmg+Ci0jZW5kaWYKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKICNpZiBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bnRQb2ludENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ludFBv
aW50Q0cuY3BwCmluZGV4IGJkMDQ1NzQuLmRmMDNjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ludFBvaW50Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ludFBvaW50Q0cuY3BwCkBAIC0yOCwxMSArMjgsNyBA
QAogCiAjaWYgVVNFKENHKQogCi0jaWYgIVBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDxBcHBsaWNh
dGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KLSNlbHNlCiAjaW5jbHVkZSA8Q29y
ZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50UmVj
dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ludFJlY3RDRy5j
cHAKaW5kZXggZDFmN2IyZS4uMDI0OWNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW50UmVjdENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbnRSZWN0Q0cuY3BwCkBAIC0yOCwxMSArMjgsNyBAQAogCiAjaWYg
VVNFKENHKQogCi0jaWYgIVBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZp
Y2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KLSNlbHNlCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNz
L0NvcmVHcmFwaGljcy5oPgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW50U2l6ZUNHLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ludFNpemVDRy5jcHAKaW5kZXgg
ZTVkMGI4Mi4uNDUwYTk0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW50U2l6ZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbnRTaXplQ0cuY3BwCkBAIC0yOCwxMSArMjgsNyBAQAogCiAjaWYgVVNFKENHKQog
Ci0jaWYgIVBMQVRGT1JNKElPUykKLSNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxp
Y2F0aW9uU2VydmljZXMuaD4KLSNlbHNlCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFw
aGljcy5oPgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAKaW5kZXggMzNiZDg5MS4uNTk3ZmRl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENH
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3Bw
CkBAIC0zNCwxMiArMzQsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1
ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJTdHJva2VTdHlsZUFwcGxpZXIuaCIKLSNpZiAhUExB
VEZPUk0oSU9TKQotI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2
aWNlcy5oPgotI2Vsc2UKLSNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dQYXRoUHJpdmF0ZS5oPgog
I2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KLSNlbmRpZgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzI1LDkgKzMyMCw2IEBAIEZsb2F0UG9pbnQgUGF0
aDo6Y3VycmVudFBvaW50KCkgY29uc3QKICAgICByZXR1cm4gQ0dQYXRoR2V0Q3VycmVudFBvaW50
KG1fcGF0aCk7CiB9CiAKLS8vIE1BUks6IC0KLS8vIE1BUks6IFBhdGggTWFuYWdlbWVudAotCiBz
dHJ1Y3QgUGF0aEFwcGxpZXJJbmZvIHsKICAgICB2b2lkKiBpbmZvOwogICAgIFBhdGhBcHBsaWVy
RnVuY3Rpb24gZnVuY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUGF0dGVybkNHLmNwcAppbmRleCAwYzA4MDQ4Li4xODA2NTA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5DRy5jcHAKQEAgLTMwLDEx
ICszMCw3IEBACiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCiAKLSNpZiAhUExBVEZPUk0oSU9TKQotI2luY2x1ZGUgPEFwcGxpY2F0aW9u
U2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgotI2Vsc2UKICNpbmNsdWRlIDxDb3JlR3Jh
cGhpY3MvQ29yZUdyYXBoaWNzLmg+Ci0jZW5kaWYKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCmluZGV4
IDdiNzYzMmEuLmU5YTkyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KQEAgLTc5
LDkgKzc5LDcgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYg
Y3RGb250LCBmbG9hdCBzaXplLCBib29sIGlzUHJpbnRlckYKICAgICB7CiAgICAgICAgIENURm9u
dFN5bWJvbGljVHJhaXRzIHRyYWl0cyA9IENURm9udEdldFN5bWJvbGljVHJhaXRzKHRvQ1RGb250
UmVmKG1fZm9udCkpOwogICAgICAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gdHJhaXRzICYga0NU
Rm9udENvbG9yR2x5cGhzVHJhaXQ7Ci0jaWYgUExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICAgICAgbV9pc0NvbXBvc2l0ZUZvbnRSZWZl
cmVuY2UgPSB0cmFpdHMgJiBrQ1RGb250Q29tcG9zaXRlVHJhaXQ7Ci0jZW5kaWYKICAgICB9CiAK
ICAgICBpZiAobV9mb250KQpAQCAtMTk0LDkgKzE5Miw3IEBAIHZvaWQgRm9udFBsYXRmb3JtRGF0
YTo6c2V0Rm9udChOU0ZvbnQgKmZvbnQpCiAgICAgewogICAgICAgICBDVEZvbnRTeW1ib2xpY1Ry
YWl0cyB0cmFpdHMgPSBDVEZvbnRHZXRTeW1ib2xpY1RyYWl0cyh0b0NURm9udFJlZihtX2ZvbnQp
KTsKICAgICAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IHRyYWl0cyAmIGtDVEZvbnRDb2xvckds
eXBoc1RyYWl0OwotI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDgwCiAgICAgICAgIG1faXNDb21wb3NpdGVGb250UmVmZXJlbmNlID0gdHJh
aXRzICYga0NURm9udENvbXBvc2l0ZVRyYWl0OwotI2VuZGlmCiAgICAgfQogICAgIG1fQ1RGb250
ID0gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Db2xvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbG9y
TWFjLmgKaW5kZXggMDEzYzFlNS4uNGU4YjFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0NvbG9yTWFjLmgKQEAgLTMxLDEzICszMSwxMyBAQAogCiAjaW5j
bHVkZSAiQ29sb3IuaCIKIAotI2lmICFQTEFURk9STShJT1MpCisjaWYgVVNFKEFQUEtJVCkKIE9C
SkNfQ0xBU1MgTlNDb2xvcjsKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCi0j
aWYgIVBMQVRGT1JNKElPUykKKyNpZiBVU0UoQVBQS0lUKQogICAgIC8vIFRoZXNlIGZ1bmN0aW9u
cyBhc3N1bWUgTlNDb2xvcnMgYXJlIGluIERldmljZVJHQiBjb2xvcnNwYWNlCiAgICAgQ29sb3Ig
Y29sb3JGcm9tTlNDb2xvcihOU0NvbG9yICopOwogICAgIE5TQ29sb3IgKm5zQ29sb3IoY29uc3Qg
Q29sb3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRleCAzNzZlMGQxLi43NWM0
ZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC0yMywxMSArMjMsNyBAQAog
CiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgotI2lmICFQTEFURk9STShJT1MpCi0jaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBs
aWNhdGlvblNlcnZpY2VzLmg+Ci0jZWxzZQogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3Jh
cGhpY3MuaD4KLSNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JbWFnZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JbWFnZU1hYy5tbQppbmRleCAxMjA0NThjLi43
M2UxYmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lt
YWdlTWFjLm1tCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmludmFsaWRhdGVQ
bGF0Zm9ybURhdGEoKQogICAgIGlmIChtX2ZyYW1lcy5zaXplKCkgIT0gMSkKICAgICAgICAgcmV0
dXJuOwogCi0jaWYgIVBMQVRGT1JNKElPUykKKyNpZiBVU0UoQVBQS0lUKQogICAgIG1fbnNJbWFn
ZSA9IDA7CiAjZW5kaWYKICAgICBtX3RpZmZSZXAgPSAwOwpAQCAtODQsOSArODQsOSBAQCBDRkRh
dGFSZWYgQml0bWFwSW1hZ2U6OmdldFRJRkZSZXByZXNlbnRhdGlvbigpCiB7CiAgICAgaWYgKG1f
dGlmZlJlcCkKICAgICAgICAgcmV0dXJuIG1fdGlmZlJlcC5nZXQoKTsKLSAgICAKKwogICAgIHVu
c2lnbmVkIG51bUZyYW1lcyA9IGZyYW1lQ291bnQoKTsKLSAgICAKKwogICAgIC8vIElmIG51bUZy
YW1lcyBpcyB6ZXJvLCB3ZSBrbm93IGZvciBjZXJ0YWluIHRoaXMgaW1hZ2UgZG9lc24ndCBoYXZl
IHZhbGlkIGRhdGEKICAgICAvLyBFdmVuIHRob3VnaCB0aGUgY2FsbCB0byBDR0ltYWdlRGVzdGlu
YXRpb25DcmVhdGVXaXRoRGF0YSB3aWxsIGZhaWwgYW5kIHdlJ2xsIGhhbmRsZSBpdCBncmFjZWZ1
bGx5LAogICAgIC8vIGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcyB0aGF0IGNhbGwgd2lsbCBzcGFt
IHRoZSBjb25zb2xlIHdpdGggYW4gZXJyb3IgbWVzc2FnZQpAQCAtMTAxLDEzICsxMDEsMTMgQEAg
Q0ZEYXRhUmVmIEJpdG1hcEltYWdlOjpnZXRUSUZGUmVwcmVzZW50YXRpb24oKQogICAgIH0KIAog
ICAgIHVuc2lnbmVkIG51bVZhbGlkRnJhbWVzID0gaW1hZ2VzLnNpemUoKTsKLSAgICAKKwogICAg
IFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiBkYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGVN
dXRhYmxlKDAsIDApKTsKICAgICBSZXRhaW5QdHI8Q0dJbWFnZURlc3RpbmF0aW9uUmVmPiBkZXN0
aW5hdGlvbiA9IGFkb3B0Q0YoQ0dJbWFnZURlc3RpbmF0aW9uQ3JlYXRlV2l0aERhdGEoZGF0YS5n
ZXQoKSwga1VUVHlwZVRJRkYsIG51bVZhbGlkRnJhbWVzLCAwKSk7CiAKICAgICBpZiAoIWRlc3Rp
bmF0aW9uKQogICAgICAgICByZXR1cm4gMDsKLSAgICAKKwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBudW1WYWxpZEZyYW1lczsgKytpKQogICAgICAgICBDR0ltYWdlRGVzdGluYXRpb25B
ZGRJbWFnZShkZXN0aW5hdGlvbi5nZXQoKSwgaW1hZ2VzW2ldLCAwKTsKIApAQCAtMTE3LDcgKzEx
Nyw3IEBAIENGRGF0YVJlZiBCaXRtYXBJbWFnZTo6Z2V0VElGRlJlcHJlc2VudGF0aW9uKCkKICAg
ICByZXR1cm4gbV90aWZmUmVwLmdldCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKElPUykKKyNpZiBV
U0UoQVBQS0lUKQogTlNJbWFnZSogQml0bWFwSW1hZ2U6OmdldE5TSW1hZ2UoKQogewogICAgIGlm
IChtX25zSW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvV2ViTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
V2ViTGF5ZXIubW0KaW5kZXggYTkyNGNkZi4uZDk5ZGYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQpAQCAtMzIsOSArMzIsNiBAQAog
I2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJHcmFwaGljc0xheWVyQ0EuaCIK
ICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllci5oIgotI2lmICFQTEFURk9STShJT1MpCi0jaW1wb3J0
ICJUaGVtZU1hYy5oIgotI2VuZGlmCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4K
IAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTQzLDYgKzQwLDEwIEBACiAjaW1wb3J0ICJXZWJDb3Jl
VGhyZWFkLmgiCiAjZW5kaWYKIAorI2lmICFQTEFURk9STShJT1MpCisjaW1wb3J0ICJUaGVtZU1h
Yy5oIgorI2VuZGlmCisKIEBpbnRlcmZhY2UgQ0FMYXllcihXZWJDb3JlQ0FMYXllclByaXZhdGUp
CiAtICh2b2lkKXJlbG9hZFZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoOwogQGVu
ZAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>