<?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>41491</bug_id>
          
          <creation_ts>2010-07-01 15:31:18 -0700</creation_ts>
          <short_desc>WebKit2: Add first stab at back/forward list API</short_desc>
          <delta_ts>2010-07-01 15:58:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>245595</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-01 15:31:18 -0700</bug_when>
    <thetext>Add first stab at back/forward list API for WebKit2.  Let&apos;s get this party started.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245597</commentid>
    <comment_count>1</comment_count>
      <attachid>60299</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-01 15:33:49 -0700</bug_when>
    <thetext>Created attachment 60299
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245623</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-01 15:58:45 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/62307.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60299</attachid>
            <date>2010-07-01 15:33:49 -0700</date>
            <delta_ts>2010-07-01 15:38:39 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bf.diff</filename>
            <type>text/plain</type>
            <size>40997</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjMwNCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMTAtMDctMDEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE0OTEKKyAgICAgICAgQWRkIGZpcnN0
IHN0YWIgYXQgYmFjay9mb3J3YXJkIGxpc3QgQVBJLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJk
TGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJk
TGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExp
c3RJdGVtLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQmFja0Zvcndh
cmRMaXN0SXRlbS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tCYXNlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKIDIwMTAtMDctMDEgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5k
ZXJzIENhcmxzc29uLgpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0
SXRlbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRM
aXN0SXRlbS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9y
d2FyZExpc3RJdGVtLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViQmFja0ZvcndhcmRMaXN0SXRl
bTo6V2ViQmFja0ZvcndhcmRMaXN0SXRlbShjb25zdCBTdHJpbmcmIG9yaWdpbmFsVVJMLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKKyAgICA6IG1fb3JpZ2luYWxVUkwo
b3JpZ2luYWxVUkwpCisgICAgLCBtX3VybCh1cmwpCisgICAgLCBtX3RpdGxlKHRpdGxlKQorewor
fQorCitXZWJCYWNrRm9yd2FyZExpc3RJdGVtOjp+V2ViQmFja0ZvcndhcmRMaXN0SXRlbSgpCit7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0uaAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvVUlQcm9jZXNz
L1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViQmFja0ZvcndhcmRMaXN0SXRlbV9oCisjZGVmaW5lIFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW1faAorCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmlu
Zy5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xh
c3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJCYWNrRm9y
d2FyZExpc3RJdGVtPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBvcmlnaW5hbFVSTCwg
Y29uc3QgV2ViQ29yZTo6U3RyaW5nJiB1cmwsIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgdGl0bGUp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0ob3JpZ2luYWxVUkwsIHVybCwgdGl0bGUpKTsKKyAgICB9CisgICAgfldlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0oKTsKKworICAgIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgb3JpZ2luYWxVUkwoKSBj
b25zdCB7IHJldHVybiBtX29yaWdpbmFsVVJMOyB9CisgICAgY29uc3QgV2ViQ29yZTo6U3RyaW5n
JiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQorICAgIGNvbnN0IFdlYkNvcmU6OlN0cmlu
ZyYgdGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3RpdGxlOyB9CisKK3ByaXZhdGU6CisgICAgV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbShjb25zdCBXZWJDb3JlOjpTdHJpbmcmIG9yaWdpbmFsVVJMLCBj
b25zdCBXZWJDb3JlOjpTdHJpbmcmIHVybCwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiB0aXRsZSk7
CisKKyAgICBXZWJDb3JlOjpTdHJpbmcgbV9vcmlnaW5hbFVSTDsKKyAgICBXZWJDb3JlOjpTdHJp
bmcgbV91cmw7CisgICAgV2ViQ29yZTo6U3RyaW5nIG1fdGl0bGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW1faApJbmRleDog
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV2Vi
QmFja0ZvcndhcmRMaXN0UHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBOb0N1cnJlbnRJdGVtSW5kZXggPSBVSU5UX01BWDsKKworV2ViQmFja0Zv
cndhcmRMaXN0UHJveHk6OldlYkJhY2tGb3J3YXJkTGlzdFByb3h5KFdlYlBhZ2VQcm94eSogcGFn
ZSkKKyAgICA6IG1fcGFnZShwYWdlKQorICAgICwgbV9jdXJyZW50KE5vQ3VycmVudEl0ZW1JbmRl
eCkKK3sKK30KKworV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6On5XZWJCYWNrRm9yd2FyZExpc3RQ
cm94eSgpCit7Cit9CisKK1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIFdlYkJhY2tGb3J3YXJkTGlz
dFByb3h5OjpjdXJyZW50SXRlbSgpCit7CisgICAgaWYgKG1fY3VycmVudCAhPSBOb0N1cnJlbnRJ
dGVtSW5kZXgpCisgICAgICAgIHJldHVybiBtX2VudHJpZXNbbV9jdXJyZW50XS5nZXQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKworV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogV2ViQmFja0ZvcndhcmRM
aXN0UHJveHk6OmJhY2tJdGVtKCkKK3sKKyAgICBpZiAobV9jdXJyZW50ICYmIG1fY3VycmVudCAh
PSBOb0N1cnJlbnRJdGVtSW5kZXgpCisgICAgICAgIHJldHVybiBtX2VudHJpZXNbbV9jdXJyZW50
IC0gMV0uZ2V0KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0q
IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Ojpmb3J3YXJkSXRlbSgpCit7CisgICAgaWYgKG1fZW50
cmllcy5zaXplKCkgJiYgbV9jdXJyZW50IDwgbV9lbnRyaWVzLnNpemUoKSAtIDEpCisgICAgICAg
IHJldHVybiBtX2VudHJpZXNbbV9jdXJyZW50ICsgMV0uZ2V0KCk7CisgICAgcmV0dXJuIDA7Cit9
CisKK3Vuc2lnbmVkIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpiYWNrTGlzdENvdW50KCkKK3sK
KyAgICByZXR1cm4gbV9jdXJyZW50ID09IE5vQ3VycmVudEl0ZW1JbmRleCA/IDAgOiBtX2N1cnJl
bnQ7Cit9CisKK3Vuc2lnbmVkIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Ojpmb3J3YXJkTGlzdENv
dW50KCkKK3sKKyAgICByZXR1cm4gbV9jdXJyZW50ID09IE5vQ3VycmVudEl0ZW1JbmRleCA/IDAg
OiBtX2VudHJpZXMuc2l6ZSgpIC0gKG1fY3VycmVudCArIDEpOworfQorCitCYWNrRm9yd2FyZExp
c3RJdGVtVmVjdG9yIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpiYWNrTGlzdFdpdGhMaW1pdCh1
bnNpZ25lZCBsaW1pdCkKK3sKKyAgICBCYWNrRm9yd2FyZExpc3RJdGVtVmVjdG9yIGxpc3Q7Cisg
ICAgdW5zaWduZWQgc2l6ZSA9IHN0ZDo6bWluKGJhY2tMaXN0Q291bnQoKSwgbGltaXQpOworICAg
IGlmICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIGxpc3Q7CisKKyAgICBsaXN0LnJlc2l6ZShzaXpl
KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGQ6Om1heChtX2N1cnJlbnQgLSBsaW1pdCwgMFUp
LCBqID0gMDsgaSA8IG1fY3VycmVudDsgKytpLCArK2opCisgICAgICAgIGxpc3Rbal0gPSBtX2Vu
dHJpZXNbaV07CisKKyAgICByZXR1cm4gbGlzdDsKK30KKworQmFja0ZvcndhcmRMaXN0SXRlbVZl
Y3RvciBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Zm9yd2FyZExpc3RXaXRoTGltaXQodW5zaWdu
ZWQgbGltaXQpCit7CisgICAgQmFja0ZvcndhcmRMaXN0SXRlbVZlY3RvciBsaXN0OworICAgIHVu
c2lnbmVkIHNpemUgPSBzdGQ6Om1pbihmb3J3YXJkTGlzdENvdW50KCksIGxpbWl0KTsKKyAgICBp
ZiAoIXNpemUpCisgICAgICAgIHJldHVybiBsaXN0OworCisgICAgbGlzdC5yZXNpemUoc2l6ZSk7
CisgICAgdW5zaWduZWQgbGFzdCA9IHN0ZDo6bWluKG1fY3VycmVudCArIGxpbWl0LCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4obV9lbnRyaWVzLnNpemUoKSAtIDEpKTsKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSBtX2N1cnJlbnQgKyAxLCBqID0gMDsgaSA8PSBsYXN0OyArK2ksICsraikKKyAgICAgICAg
bGlzdFtqXSA9IG1fZW50cmllc1tpXTsKKworICAgIHJldHVybiBsaXN0OworfQorCisvLyBJbW11
dGFibGVBcnJheTo6SW1tdXRhYmxlQXJyYXlDYWxsYmFjayBbZm9yIFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW1dIGNhbGxiYWNrcworCitzdGF0aWMgdm9pZCB3ZWJCYWNrRm9yd2FyZExpc3RJdGVtUmVm
KGNvbnN0IHZvaWQqIGl0ZW0pCit7CisgICAgc3RhdGljX2Nhc3Q8V2ViQmFja0ZvcndhcmRMaXN0
SXRlbSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGl0ZW0pKS0+cmVmKCk7Cit9CisKK3N0YXRpYyB2b2lk
IHdlYkJhY2tGb3J3YXJkTGlzdEl0ZW1EZXJlZihjb25zdCB2b2lkKiBpdGVtKQoreworICAgIHN0
YXRpY19jYXN0PFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qPihjb25zdF9jYXN0PHZvaWQqPihpdGVt
KSktPmRlcmVmKCk7Cit9CisKK1Bhc3NSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IFdlYkJhY2tGb3J3
YXJkTGlzdFByb3h5OjpiYWNrTGlzdEFzSW1tdXRhYmxlQXJyYXlXaXRoTGltaXQodW5zaWduZWQg
bGltaXQpCit7CisgICAgdW5zaWduZWQgc2l6ZSA9IHN0ZDo6bWluKGJhY2tMaXN0Q291bnQoKSwg
bGltaXQpOworICAgIGlmICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIEltbXV0YWJsZUFycmF5Ojpj
cmVhdGUoKTsKKworICAgIHZvaWQqKiBhcnJheSA9IG5ldyB2b2lkKltzaXplXTsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBzdGQ6Om1heChtX2N1cnJlbnQgLSBsaW1pdCwgMFUpLCBqID0gMDsgaSA8
IG1fY3VycmVudDsgKytpLCArK2opIHsKKyAgICAgICAgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSog
aXRlbSA9IG1fZW50cmllc1tpXS5nZXQoKTsKKyAgICAgICAgaXRlbS0+cmVmKCk7CisgICAgICAg
IGFycmF5W2pdID0gaXRlbTsKKyAgICB9CisKKyAgICBJbW11dGFibGVBcnJheTo6SW1tdXRhYmxl
QXJyYXlDYWxsYmFja3MgY2FsbGJhY2tzID0geworICAgICAgICB3ZWJCYWNrRm9yd2FyZExpc3RJ
dGVtUmVmLAorICAgICAgICB3ZWJCYWNrRm9yd2FyZExpc3RJdGVtRGVyZWYKKyAgICB9OworICAg
IHJldHVybiBJbW11dGFibGVBcnJheTo6YWRvcHQoYXJyYXksIHNpemUsICZjYWxsYmFja3MpOwor
fQorCitQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6
Zm9yd2FyZExpc3RBc0ltbXV0YWJsZUFycmF5V2l0aExpbWl0KHVuc2lnbmVkIGxpbWl0KQorewor
ICAgIHVuc2lnbmVkIHNpemUgPSBzdGQ6Om1pbihmb3J3YXJkTGlzdENvdW50KCksIGxpbWl0KTsK
KyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybiBJbW11dGFibGVBcnJheTo6Y3JlYXRlKCk7
CisKKyAgICB2b2lkKiogYXJyYXkgPSBuZXcgdm9pZCpbc2l6ZV07CisgICAgdW5zaWduZWQgbGFz
dCA9IHN0ZDo6bWluKG1fY3VycmVudCArIGxpbWl0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9l
bnRyaWVzLnNpemUoKSAtIDEpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2N1cnJlbnQgKyAx
LCBqID0gMDsgaSA8PSBsYXN0OyArK2ksICsraikgeworICAgICAgICBXZWJCYWNrRm9yd2FyZExp
c3RJdGVtKiBpdGVtID0gbV9lbnRyaWVzW2ldLmdldCgpOworICAgICAgICBpdGVtLT5yZWYoKTsK
KyAgICAgICAgYXJyYXlbal0gPSBpdGVtOworICAgIH0KKworICAgIEltbXV0YWJsZUFycmF5OjpJ
bW11dGFibGVBcnJheUNhbGxiYWNrcyBjYWxsYmFja3MgPSB7CisgICAgICAgIHdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW1SZWYsCisgICAgICAgIHdlYkJhY2tGb3J3YXJkTGlzdEl0ZW1EZXJlZgorICAg
IH07CisgICAgcmV0dXJuIEltbXV0YWJsZUFycmF5OjphZG9wdChhcnJheSwgc2l6ZSwgJmNhbGxi
YWNrcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQmFja0ZvcndhcmRMaXN0UHJveHlfaAor
I2RlZmluZSBXZWJCYWNrRm9yd2FyZExpc3RQcm94eV9oCisKKyNpbmNsdWRlICJJbW11dGFibGVB
cnJheS5oIgorI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0+ID4gQmFja0ZvcndhcmRMaXN0SXRlbVZlY3RvcjsKKworLyoKKyAq
ICAgICAgICAgIEN1cnJlbnQKKyAqICAgfC0tLS0tLS0tLSotLS0tLS0tLS0tLS0tLXwgRW50cmll
cworICogICAgICBCYWNrICAgICAgICBGb3J3YXJkCisgKi8KKworY2xhc3MgV2ViQmFja0Zvcndh
cmRMaXN0UHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJCYWNrRm9yd2FyZExpc3RQcm94eT4g
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5
PiBjcmVhdGUoV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJCYWNrRm9yd2FyZExpc3RQcm94eShwYWdlKSk7CisgICAgfQorICAgIH5XZWJC
YWNrRm9yd2FyZExpc3RQcm94eSgpOworCisgICAgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogY3Vy
cmVudEl0ZW0oKTsKKyAgICBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBiYWNrSXRlbSgpOworICAg
IFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGZvcndhcmRJdGVtKCk7CisKKyAgICB1bnNpZ25lZCBi
YWNrTGlzdENvdW50KCk7CisgICAgdW5zaWduZWQgZm9yd2FyZExpc3RDb3VudCgpOworCisgICAg
QmFja0ZvcndhcmRMaXN0SXRlbVZlY3RvciBiYWNrTGlzdFdpdGhMaW1pdCh1bnNpZ25lZCBsaW1p
dCk7CisgICAgQmFja0ZvcndhcmRMaXN0SXRlbVZlY3RvciBmb3J3YXJkTGlzdFdpdGhMaW1pdCh1
bnNpZ25lZCBsaW1pdCk7CisKKyAgICBQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBiYWNrTGlz
dEFzSW1tdXRhYmxlQXJyYXlXaXRoTGltaXQodW5zaWduZWQgbGltaXQpOworICAgIFBhc3NSZWZQ
dHI8SW1tdXRhYmxlQXJyYXk+IGZvcndhcmRMaXN0QXNJbW11dGFibGVBcnJheVdpdGhMaW1pdCh1
bnNpZ25lZCBsaW1pdCk7CisKK3ByaXZhdGU6CisgICAgV2ViQmFja0ZvcndhcmRMaXN0UHJveHko
V2ViUGFnZVByb3h5Kik7CisKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKKyAgICBCYWNrRm9y
d2FyZExpc3RJdGVtVmVjdG9yIG1fZW50cmllczsKKyAgICB1bnNpZ25lZCBtX2N1cnJlbnQ7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkJhY2tGb3J3YXJkTGlz
dFByb3h5X2gKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gNjIz
MDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1
ZGUgIk1lc3NhZ2VJRC5oIgogI2luY2x1ZGUgIlBhZ2VDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJC
YWNrRm9yd2FyZExpc3RQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgpAQCAtNjcs
NiArNjgsNyBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShXZWJQYWdlTmFtZXNwCiAgICAg
LCBtX2VzdGltYXRlZFByb2dyZXNzKDAuMCkKICAgICAsIG1fY2FuR29CYWNrKGZhbHNlKQogICAg
ICwgbV9jYW5Hb0ZvcndhcmQoZmFsc2UpCisgICAgLCBtX2JhY2tGb3J3YXJkTGlzdChXZWJCYWNr
Rm9yd2FyZExpc3RQcm94eTo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV92YWxpZCh0cnVlKQogICAg
ICwgbV9jbG9zZWQoZmFsc2UpCiAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCkluZGV4OiBXZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gNjIzMDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNiArNjAsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgRHJhd2luZ0FyZWFQcm94eTsKIGNsYXNzIFBhZ2VDbGllbnQ7Citj
bGFzcyBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTsKIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7CiBj
bGFzcyBXZWJNb3VzZUV2ZW50OwogY2xhc3MgV2ViUGFnZU5hbWVzcGFjZTsKQEAgLTgyLDYgKzgz
LDggQEAgcHVibGljOgogCiAgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEoKSB7IHJl
dHVybiBtX2RyYXdpbmdBcmVhLmdldCgpOyB9CiAKKyAgICBXZWJCYWNrRm9yd2FyZExpc3RQcm94
eSogYmFja0ZvcndhcmRMaXN0KCkgeyByZXR1cm4gbV9iYWNrRm9yd2FyZExpc3QuZ2V0KCk7IH0K
KwogICAgIHZvaWQgc2V0UGFnZUNsaWVudChQYWdlQ2xpZW50Kik7CiAgICAgdm9pZCBpbml0aWFs
aXplTG9hZGVyQ2xpZW50KFdLUGFnZUxvYWRlckNsaWVudCopOwogICAgIHZvaWQgaW5pdGlhbGl6
ZVBvbGljeUNsaWVudChXS1BhZ2VQb2xpY3lDbGllbnQqKTsKQEAgLTIwOCw5ICsyMTEsMTAgQEAg
cHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8UmVuZGVyVHJlZUV4dGVybmFs
UmVwcmVzZW50YXRpb25DYWxsYmFjaz4gPiBtX3JlbmRlclRyZWVFeHRlcm5hbFJlcHJlc2VudGF0
aW9uQ2FsbGJhY2tzOwogCiAgICAgZG91YmxlIG1fZXN0aW1hdGVkUHJvZ3Jlc3M7Ci0gICAgCisK
ICAgICBib29sIG1fY2FuR29CYWNrOwogICAgIGJvb2wgbV9jYW5Hb0ZvcndhcmQ7CisgICAgUmVm
UHRyPFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5PiBtX2JhY2tGb3J3YXJkTGlzdDsKIAogICAgIFdl
YkNvcmU6OlN0cmluZyBtX3Rvb2xUaXA7CiAKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oCShyZXZpc2lvbiA2MjMwMCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBJbW11dGFibGVBcnJheTsKK2NsYXNzIFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW07CitjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTsKIGNs
YXNzIFdlYkNvbnRleHQ7CiBjbGFzcyBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk7CiBjbGFz
cyBXZWJGcmFtZVByb3h5OwpAQCAtNTgsNiArNjAsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBUElU
eXBlSW5mbzxXS1N0cmluZ1JlCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS1VSTFJl
Zj4gICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdlYkNvcmU6OlN0cmluZ0ltcGwq
IEltcGxUeXBlOyB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tOYXZpZ2F0aW9u
RGF0YVJlZj4gICAgICAgICAgICAgIHsgdHlwZWRlZiBXZWJOYXZpZ2F0aW9uRGF0YSogSW1wbFR5
cGU7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS0FycmF5UmVmPiAgICAgICAg
ICAgICAgICAgICAgICAgeyB0eXBlZGVmIEltbXV0YWJsZUFycmF5KiBJbXBsVHlwZTsgfTsKK3Rl
bXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZj4gICAg
ICAgICB7IHR5cGVkZWYgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogSW1wbFR5cGU7IH07Cit0ZW1w
bGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS0JhY2tGb3J3YXJkTGlzdFJlZj4gICAgICAgICAg
ICAgeyB0eXBlZGVmIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5KiBJbXBsVHlwZTsgfTsKIAogdGVt
cGxhdGU8dHlwZW5hbWUgSW1wbFR5cGU+IHN0cnVjdCBJbXBsVHlwZUluZm8geyB9OwogdGVtcGxh
dGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYkZyYW1lUHJveHkqPiAgICAgICAgICAgICAgICAg
IHsgdHlwZWRlZiBXS0ZyYW1lUmVmIEFQSVR5cGU7IH07CkBAIC02OSw2ICs3Myw4IEBAIHRlbXBs
YXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJQcmVmZXIKIHRlbXBsYXRlPD4gc3RydWN0IElt
cGxUeXBlSW5mbzxXZWJDb3JlOjpTdHJpbmdJbXBsKj4gICAgICAgICAgICB7IHR5cGVkZWYgV0tT
dHJpbmdSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJO
YXZpZ2F0aW9uRGF0YSo+ICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tOYXZpZ2F0aW9uRGF0YVJl
ZiBBUElUeXBlOyB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPEltbXV0YWJsZUFy
cmF5Kj4gICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXS0FycmF5UmVmIEFQSVR5cGU7IH07Cit0
ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViQmFja0ZvcndhcmRMaXN0SXRlbSo+ICAg
ICAgICAgeyB0eXBlZGVmIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBBUElUeXBlOyB9OwordGVt
cGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Kj4gICAg
ICAgIHsgdHlwZWRlZiBXS0JhY2tGb3J3YXJkTGlzdFJlZiBBUElUeXBlOyB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9y
d2FyZExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFj
a0ZvcndhcmRMaXN0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQmFja0ZvcndhcmRMaXN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJXS0JhY2tGb3J3YXJkTGlzdC5oIgorCisjaW5jbHVkZSAiV2Vi
QmFja0ZvcndhcmRMaXN0UHJveHkuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKKworV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIFdLQmFja0Zvcndh
cmRMaXN0R2V0Q3VycmVudEl0ZW0oV0tCYWNrRm9yd2FyZExpc3RSZWYgbGlzdFJlZikKK3sKKyAg
ICByZXR1cm4gdG9SZWYodG9XSyhsaXN0UmVmKS0+Y3VycmVudEl0ZW0oKSk7Cit9CisKK1dLQmFj
a0ZvcndhcmRMaXN0SXRlbVJlZiBXS0JhY2tGb3J3YXJkTGlzdEdldEJhY2tJdGVtKFdLQmFja0Zv
cndhcmRMaXN0UmVmIGxpc3RSZWYpCit7CisgICAgcmV0dXJuIHRvUmVmKHRvV0sobGlzdFJlZikt
PmJhY2tJdGVtKCkpOworfQorCitXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgV0tCYWNrRm9yd2Fy
ZExpc3RHZXRGb3J3YXJkSXRlbShXS0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0UmVmKQoreworICAg
IHJldHVybiB0b1JlZih0b1dLKGxpc3RSZWYpLT5mb3J3YXJkSXRlbSgpKTsKK30KKwordW5zaWdu
ZWQgV0tCYWNrRm9yd2FyZExpc3RHZXRCYWNrTGlzdENvdW50KFdLQmFja0ZvcndhcmRMaXN0UmVm
IGxpc3RSZWYpCit7CisgICAgcmV0dXJuIHRvV0sobGlzdFJlZiktPmJhY2tMaXN0Q291bnQoKTsK
K30KKwordW5zaWduZWQgV0tCYWNrRm9yd2FyZExpc3RHZXRGb3J3YXJkTGlzdENvdW50KFdLQmFj
a0ZvcndhcmRMaXN0UmVmIGxpc3RSZWYpCit7CisgICAgcmV0dXJuIHRvV0sobGlzdFJlZiktPmZv
cndhcmRMaXN0Q291bnQoKTsKK30KKworV0tBcnJheVJlZiBXS0JhY2tGb3J3YXJkTGlzdENvcHlC
YWNrTGlzdFdpdGhMaW1pdChXS0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0UmVmLCB1bnNpZ25lZCBs
aW1pdCkKK3sKKyAgICByZXR1cm4gdG9SZWYodG9XSyhsaXN0UmVmKS0+YmFja0xpc3RBc0ltbXV0
YWJsZUFycmF5V2l0aExpbWl0KGxpbWl0KS5yZWxlYXNlUmVmKCkpOworfQorCitXS0FycmF5UmVm
IFdLQmFja0ZvcndhcmRMaXN0Q29weUZvcndhcmRMaXN0V2l0aExpbWl0KFdLQmFja0ZvcndhcmRM
aXN0UmVmIGxpc3RSZWYsIHVuc2lnbmVkIGxpbWl0KQoreworICAgIHJldHVybiB0b1JlZih0b1dL
KGxpc3RSZWYpLT5mb3J3YXJkTGlzdEFzSW1tdXRhYmxlQXJyYXlXaXRoTGltaXQobGltaXQpLnJl
bGVhc2VSZWYoKSk7ICAgIAorfQorCitXS0JhY2tGb3J3YXJkTGlzdFJlZiBXS0JhY2tGb3J3YXJk
TGlzdFJldGFpbihXS0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0UmVmKQoreworICAgIHRvV0sobGlz
dFJlZiktPnJlZigpOworICAgIHJldHVybiBsaXN0UmVmOworfQorCit2b2lkIFdLQmFja0Zvcndh
cmRMaXN0UmVsZWFzZShXS0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0UmVmKQoreworICAgIHRvV0so
bGlzdFJlZiktPmRlcmVmKCk7Cit9CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jh
Y2tGb3J3YXJkTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QmFja0ZvcndhcmRMaXN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0JhY2tGb3J3YXJkTGlzdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXS0JhY2tGb3J3YXJkTGlzdF9oCisjZGVmaW5lIFdLQmFja0Zvcndh
cmRMaXN0X2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVz
cGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLQmFja0ZvcndhcmRMaXN0
SXRlbVJlZiBXS0JhY2tGb3J3YXJkTGlzdEdldEN1cnJlbnRJdGVtKFdLQmFja0ZvcndhcmRMaXN0
UmVmIGxpc3QpOworV0tfRVhQT1JUIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBXS0JhY2tGb3J3
YXJkTGlzdEdldEJhY2tJdGVtKFdLQmFja0ZvcndhcmRMaXN0UmVmIGxpc3QpOworV0tfRVhQT1JU
IFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBXS0JhY2tGb3J3YXJkTGlzdEdldEZvcndhcmRJdGVt
KFdLQmFja0ZvcndhcmRMaXN0UmVmIGxpc3QpOworCitXS19FWFBPUlQgdW5zaWduZWQgV0tCYWNr
Rm9yd2FyZExpc3RHZXRCYWNrTGlzdENvdW50KFdLQmFja0ZvcndhcmRMaXN0UmVmIGxpc3QpOwor
V0tfRVhQT1JUIHVuc2lnbmVkIFdLQmFja0ZvcndhcmRMaXN0R2V0Rm9yd2FyZExpc3RDb3VudChX
S0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0KTsKKworV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tCYWNr
Rm9yd2FyZExpc3RDb3B5QmFja0xpc3RXaXRoTGltaXQoV0tCYWNrRm9yd2FyZExpc3RSZWYgbGlz
dCwgdW5zaWduZWQgbGltaXQpOworV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tCYWNrRm9yd2FyZExp
c3RDb3B5Rm9yd2FyZExpc3RXaXRoTGltaXQoV0tCYWNrRm9yd2FyZExpc3RSZWYgbGlzdCwgdW5z
aWduZWQgbGltaXQpOworCitXS19FWFBPUlQgV0tCYWNrRm9yd2FyZExpc3RSZWYgV0tCYWNrRm9y
d2FyZExpc3RSZXRhaW4oV0tCYWNrRm9yd2FyZExpc3RSZWYgbGlzdCk7CitXS19FWFBPUlQgdm9p
ZCBXS0JhY2tGb3J3YXJkTGlzdFJlbGVhc2UoV0tCYWNrRm9yd2FyZExpc3RSZWYgbGlzdCk7CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKK1dLX0RFQ0xBUkVfUkVUQUlOX1JFTEVB
U0VfT1ZFUkxPQURTKFdLQmFja0ZvcndhcmRMaXN0KQorCisjZW5kaWYgLy8gV0tCYWNrRm9yd2Fy
ZExpc3RfaApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJ
dGVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3
YXJkTGlzdEl0ZW0uY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tCYWNrRm9yd2FyZExpc3RJdGVtLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKKworI2luY2x1
ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tVUkxSZWYgV0tCYWNrRm9yd2FyZExpc3RJdGVt
R2V0T3JpZ2luYWxVUkwoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpCit7CisgICAg
cmV0dXJuIHRvVVJMUmVmKHRvV0soaXRlbVJlZiktPm9yaWdpbmFsVVJMKCkuaW1wbCgpKTsKK30K
KworV0tVUkxSZWYgV0tCYWNrRm9yd2FyZExpc3RJdGVtR2V0VVJMKFdLQmFja0ZvcndhcmRMaXN0
SXRlbVJlZiBpdGVtUmVmKQoreworICAgIHJldHVybiB0b1VSTFJlZih0b1dLKGl0ZW1SZWYpLT51
cmwoKS5pbXBsKCkpOworfQorCitXS1N0cmluZ1JlZiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1HZXRU
aXRsZShXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbVJlZikKK3sKKyAgICByZXR1cm4gdG9S
ZWYodG9XSyhpdGVtUmVmKS0+dGl0bGUoKS5pbXBsKCkpOworfQorCitXS0JhY2tGb3J3YXJkTGlz
dEl0ZW1SZWYgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmV0YWluKFdLQmFja0ZvcndhcmRMaXN0SXRl
bVJlZiBpdGVtUmVmKQoreworICAgIHRvV0soaXRlbVJlZiktPnJlZigpOworICAgIHJldHVybiBp
dGVtUmVmOworfQorCit2b2lkIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlbGVhc2UoV0tCYWNrRm9y
d2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpCit7CisgICAgdG9XSyhpdGVtUmVmKS0+ZGVyZWYoKTsK
K30KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0
SXRlbS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9y
d2FyZExpc3RJdGVtLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdLQmFja0ZvcndhcmRMaXN0SXRlbV9oCisjZGVmaW5lIFdLQmFja0ZvcndhcmRM
aXN0SXRlbV9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1
c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1VSTFJlZiBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1HZXRPcmlnaW5hbFVSTChXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRl
bSk7CitXS19FWFBPUlQgV0tVUkxSZWYgV0tCYWNrRm9yd2FyZExpc3RJdGVtR2V0VVJMKFdLQmFj
a0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtKTsKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1HZXRUaXRsZShXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSk7CisK
K1dLX0VYUE9SVCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgV0tCYWNrRm9yd2FyZExpc3RJdGVt
UmV0YWluKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtKTsKK1dLX0VYUE9SVCB2b2lkIFdL
QmFja0ZvcndhcmRMaXN0SXRlbVJlbGVhc2UoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW0p
OworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCitXS19ERUNMQVJFX1JFVEFJTl9S
RUxFQVNFX09WRVJMT0FEUyhXS0JhY2tGb3J3YXJkTGlzdEl0ZW0pCisKKyNlbmRpZiAvKiBXS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1faCAqLwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tC
YXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXNlLmgJKHJl
dmlzaW9uIDYyMzAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDYgKzMwLDkgQEAKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZVdpbi5o
PgogI2VuZGlmCiAKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZVdLQXJyYXlSZWYqIFdLQXJyYXlSZWY7
Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYqIFdLQmFja0Zv
cndhcmRMaXN0SXRlbVJlZjsKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZVdLQmFja0ZvcndhcmRMaXN0
UmVmKiBXS0JhY2tGb3J3YXJkTGlzdFJlZjsKIHR5cGVkZWYgc3RydWN0IE9wYXF1ZVdLQ29udGV4
dCogV0tDb250ZXh0UmVmOwogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlV0tGcmFtZSogV0tGcmFtZVJl
ZjsKIHR5cGVkZWYgc3RydWN0IE9wYXF1ZVdLRnJhbWVQb2xpY3lMaXN0ZW5lciogV0tGcmFtZVBv
bGljeUxpc3RlbmVyUmVmOwpAQCAtMzksNyArNDIsNiBAQCB0eXBlZGVmIHN0cnVjdCBPcGFxdWVX
S1BhZ2VOYW1lc3BhY2UqIFdLCiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVuY2VzUmVm
KiBXS1ByZWZlcmVuY2VzUmVmOwogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlV0tTdHJpbmdSZWYqIFdL
U3RyaW5nUmVmOwogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlV0tVUkxSZWYqIFdLVVJMUmVmOwotdHlw
ZWRlZiBzdHJ1Y3QgT3BhcXVlV0tBcnJheVJlZiogV0tBcnJheVJlZjsKIAogI3VuZGVmIFdLX0VY
UE9SVAogI2lmIGRlZmluZWQoV0tfTk9fRVhQT1JUKQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCShyZXZpc2lvbiA2MjMwMCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJXS1Bh
Z2VQcml2YXRlLmgiCiAKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJCYWNr
Rm9yd2FyZExpc3RQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogCiAjaWZkZWYg
X19CTE9DS1NfXwpAQCAtOTUsNiArOTYsMTEgQEAgYm9vbCBXS1BhZ2VDYW5Hb0JhY2soV0tQYWdl
UmVmIHBhZ2VSZWYpCiAgICAgcmV0dXJuIHRvV0socGFnZVJlZiktPmNhbkdvQmFjaygpOwogfQog
CitXS0JhY2tGb3J3YXJkTGlzdFJlZiBXS1BhZ2VHZXRCYWNrRm9yd2FyZExpc3QoV0tQYWdlUmVm
IHBhZ2VSZWYpCit7CisgICAgcmV0dXJuIHRvUmVmKHRvV0socGFnZVJlZiktPmJhY2tGb3J3YXJk
TGlzdCgpKTsKK30KKwogV0tTdHJpbmdSZWYgV0tQYWdlR2V0VGl0bGUoV0tQYWdlUmVmIHBhZ2VS
ZWYpCiB7CiAgICAgcmV0dXJuIHRvUmVmKHRvV0socGFnZVJlZiktPnBhZ2VUaXRsZSgpLmltcGwo
KSk7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAkocmV2aXNpb24gNjIzMDApCisrKyBX
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTQzLDYg
KzE0Myw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUdvRm9yd2FyZChXS1BhZ2VSZWYKIFdLX0VY
UE9SVCBib29sIFdLUGFnZUNhbkdvRm9yd2FyZChXS1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQg
dm9pZCBXS1BhZ2VHb0JhY2soV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIGJvb2wgV0tQYWdl
Q2FuR29CYWNrKFdLUGFnZVJlZiBwYWdlKTsKK1dLX0VYUE9SVCBXS0JhY2tGb3J3YXJkTGlzdFJl
ZiBXS1BhZ2VHZXRCYWNrRm9yd2FyZExpc3QoV0tQYWdlUmVmIHBhZ2UpOwogCiBXS19FWFBPUlQg
V0tTdHJpbmdSZWYgV0tQYWdlR2V0VGl0bGUoV0tQYWdlUmVmIHBhZ2UpOwogCkluZGV4OiBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV2ViS2l0Mi5oCShyZXZpc2lvbiA2MjMwMCkKKysrIFdlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dlYktpdDIuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAogI2Rl
ZmluZSBXZWJLaXQyX2gKIAogI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8
V2ViS2l0Mi9XS0JhY2tGb3J3YXJkTGlzdC5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tCYWNrRm9y
d2FyZExpc3RJdGVtLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0NvbnRleHQuaD4KICNpbmNsdWRl
IDxXZWJLaXQyL1dLRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRnJhbWVQb2xpY3lMaXN0
ZW5lci5oPgpJbmRleDogV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDYyMzAwKQorKysgV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzNywxMCArMTM3LDE4IEBACiAJCUJDNUY3QkI1MTE4
MjM3NkMwMDUyQzAyQyAvKiBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUY3QkIzMTE4MjM3NkMwMDUyQzAy
QyAvKiBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuaCAqLzsgfTsKIAkJQkM1RjdCQjkxMTgyMzc5
OTAwNTJDMDJDIC8qIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYU1hYy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVGN0JCODExODIzNzk5MDA1MkMw
MkMgLyogQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhTWFjLmNwcCAqLzsgfTsKIAkJQkM2MTdFRTgx
MDRDQjM0NzAwRkIzRkUxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTFDN0RFMTAwRTg0NkUwMDc4
REVCQyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi87IH07Ci0JCUJDNjQ2ODAzMTFEQkJB
NzMwMDY0NTVCMCAvKiBXS0FycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzY0NjgwMjExREJCQTczMDA2NDU1QjAgLyogV0tBcnJheS5oICovOyB9
OworCQlCQzY0NjgwMzExREJCQTczMDA2NDU1QjAgLyogV0tBcnJheS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2NDY4MDIxMURCQkE3MzAwNjQ1NUIw
IC8qIFdLQXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07
IH07CiAJCUJDNjQ2ODBCMTFEQkJENjkwMDY0NTVCMCAvKiBXS0FycmF5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjQ2ODBBMTFEQkJENjkwMDY0
NTVCMCAvKiBXS0FycmF5LmNwcCAqLzsgfTsKIAkJQkM2NDY5NkYxMURCRTYwMzAwNjQ1NUIwIC8q
IEltbXV0YWJsZUFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNjQ2OTZEMTFEQkU2MDMwMDY0NTVCMCAvKiBJbW11dGFibGVBcnJheS5jcHAg
Ki87IH07CiAJCUJDNjQ2OTcwMTFEQkU2MDMwMDY0NTVCMCAvKiBJbW11dGFibGVBcnJheS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2NDY5NkUxMURC
RTYwMzAwNjQ1NUIwIC8qIEltbXV0YWJsZUFycmF5LmggKi87IH07CisJCUJDNjQ2QkY5MTFERDM3
N0IwMDY0NTVCMCAvKiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjQ2QkY1MTFERDM3N0IwMDY0NTVCMCAv
KiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCAqLzsgfTsKKwkJQkM2NDZCRkExMUREMzc3QjAw
NjQ1NUIwIC8qIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjQ2QkY2MTFERDM3N0IwMDY0NTVCMCAvKiBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtLmggKi87IH07CisJCUJDNjQ2QkZCMTFERDM3N0IwMDY0NTVCMCAv
KiBXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzY0NkJGNzExREQzNzdCMDA2NDU1QjAgLyogV2ViQmFja0Zv
cndhcmRMaXN0UHJveHkuY3BwICovOyB9OworCQlCQzY0NkJGQzExREQzNzdCMDA2NDU1QjAgLyog
V2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDNjQ2QkY4MTFERDM3N0IwMDY0NTVCMCAvKiBXZWJCYWNrRm9yd2Fy
ZExpc3RQcm94eS5oICovOyB9OworCQlCQzY0NkMxQTExREQzOTlGMDA2NDU1QjAgLyogV0tCYWNr
Rm9yd2FyZExpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM2NDZDMTYxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0ZvcndhcmRMaXN0LmNwcCAq
LzsgfTsKKwkJQkM2NDZDMUIxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0ZvcndhcmRMaXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzY0NkMxNzEx
REQzOTlGMDA2NDU1QjAgLyogV0tCYWNrRm9yd2FyZExpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCUJDNjQ2QzFDMTFERDM5OUYwMDY0NTVCMCAv
KiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM2NDZDMTgxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0Zvcndh
cmRMaXN0SXRlbS5jcHAgKi87IH07CisJCUJDNjQ2QzFEMTFERDM5OUYwMDY0NTVCMCAvKiBXS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNjQ2QzE5MTFERDM5OUYwMDY0NTVCMCAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0
ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCUJD
NkVEQUE2MTExMjcxQzYwMEU3Njc4QiAvKiBQYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzZFREFBNTExMTI3MUM2MDBFNzY3OEIgLyog
UGFnZUNsaWVudC5oICovOyB9OwogCQlCQzg0NTJBNzExNjJDODA5MDBDQUI5QjUgLyogRHJhd2lu
Z0FyZWEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM4NDUyQTUxMTYyQzgwOTAwQ0FCOUI1IC8qIERyYXdpbmdBcmVhLmNwcCAqLzsgfTsKIAkJQkM4
NDUyQTgxMTYyQzgwOTAwQ0FCOUI1IC8qIERyYXdpbmdBcmVhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzg0NTJBNjExNjJDODA5MDBDQUI5QjUgLyog
RHJhd2luZ0FyZWEuaCAqLzsgfTsKQEAgLTM3MCw2ICszNzgsMTQgQEAKIAkJQkM2NDY4MEExMURC
QkQ2OTAwNjQ1NUIwIC8qIFdLQXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV0tBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNjQ2
OTZEMTFEQkU2MDMwMDY0NTVCMCAvKiBJbW11dGFibGVBcnJheS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbW11dGFibGVBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDNjQ2OTZFMTFEQkU2MDMwMDY0NTVCMCAvKiBJbW11dGFibGVBcnJh
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbW11dGFibGVBcnJheS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzY0NkJGNTExREQzNzdCMDA2NDU1QjAgLyog
V2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQkM2NDZCRjYxMUREMzc3QjAwNjQ1NUIwIC8qIFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQmFja0ZvcndhcmRMaXN0
SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzY0NkJGNzExREQzNzdCMDA2
NDU1QjAgLyogV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQzY0NkJGODExREQzNzdCMDA2NDU1QjAgLyogV2ViQmFja0Zv
cndhcmRMaXN0UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQmFj
a0ZvcndhcmRMaXN0UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM2NDZD
MTYxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0ZvcndhcmRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQmFja0ZvcndhcmRMaXN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM2NDZDMTcxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0Zv
cndhcmRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQmFja0Zvcndh
cmRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNjQ2QzE4MTFERDM5OUYw
MDY0NTVCMCAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV0tCYWNrRm9yd2FyZExpc3RJdGVtLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQkM2NDZDMTkxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0Zvcndh
cmRMaXN0SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0JhY2tGb3J3
YXJkTGlzdEl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM2RURBQTUxMTEy
NzFDNjAwRTc2NzhCIC8qIFBhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGFnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzg0NTJB
NTExNjJDODA5MDBDQUI5QjUgLyogRHJhd2luZ0FyZWEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRHJhd2luZ0FyZWEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzg0NTJBNjExNjJDODA5MDBDQUI5QjUgLyogRHJhd2luZ0FyZWEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhd2luZ0FyZWEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTY5Myw2ICs3MDksMTAgQEAKIAkJCQlCQzU5NzA3NDExNjU5MUQwMDA1
NTFGQ0EgLyogUHJvY2Vzc01vZGVsLmggKi8sCiAJCQkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFC
IC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovLAogCQkJCTFBMzAwNjZDMTExMEY0RjcwMDMx
OTM3QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8sCisJCQkJQkM2NDZCRjUxMUREMzc3QjAw
NjQ1NUIwIC8qIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovLAorCQkJCUJDNjQ2QkY2MTFE
RDM3N0IwMDY0NTVCMCAvKiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmggKi8sCisJCQkJQkM2NDZC
RjcxMUREMzc3QjAwNjQ1NUIwIC8qIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcCAqLywKKwkJ
CQlCQzY0NkJGODExREQzNzdCMDA2NDU1QjAgLyogV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaCAq
LywKIAkJCQlCQ0I5RTI0MjExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5jcHAgKi8sCiAJ
CQkJQkNCOUUyNDExMTIwREFDQTAwQTEzN0UwIC8qIFdlYkNvbnRleHQuaCAqLywKIAkJCQlCQ0RF
MDU5QTExQ0RBOEFFMDBFNDFBRjEgLyogV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmNw
cCAqLywKQEAgLTc0Myw2ICs3NjMsMTAgQEAKIAkJCQlCQzBDMzc2RDEwRjgwODQ2MDA3NkQ3Q0Ig
LyogV0tBUElDYXN0LmggKi8sCiAJCQkJQkM2NDY4MEExMURCQkQ2OTAwNjQ1NUIwIC8qIFdLQXJy
YXkuY3BwICovLAogCQkJCUJDNjQ2ODAyMTFEQkJBNzMwMDY0NTVCMCAvKiBXS0FycmF5LmggKi8s
CisJCQkJQkM2NDZDMTYxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0ZvcndhcmRMaXN0LmNwcCAq
LywKKwkJCQlCQzY0NkMxNzExREQzOTlGMDA2NDU1QjAgLyogV0tCYWNrRm9yd2FyZExpc3QuaCAq
LywKKwkJCQlCQzY0NkMxODExREQzOTlGMDA2NDU1QjAgLyogV0tCYWNrRm9yd2FyZExpc3RJdGVt
LmNwcCAqLywKKwkJCQlCQzY0NkMxOTExREQzOTlGMDA2NDU1QjAgLyogV0tCYWNrRm9yd2FyZExp
c3RJdGVtLmggKi8sCiAJCQkJQkMwQzM3NjcxMEY4MDdCMjAwNzZEN0NCIC8qIFdLQmFzZS5oICov
LAogCQkJCUJDQjlFMjRBMTEyMEUxNUMwMEExMzdFMCAvKiBXS0NvbnRleHQuY3BwICovLAogCQkJ
CUJDQjlFMjQ5MTEyMEUxNUMwMEExMzdFMCAvKiBXS0NvbnRleHQuaCAqLywKQEAgLTEwNzEsNiAr
MTA5NSwxMCBAQAogCQkJCUJDRDI1RjE3MTFENkJERTEwMDE2OUIwRSAvKiBXS0J1bmRsZUZyYW1l
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzY0NjgwMzExREJCQTczMDA2NDU1QjAgLyogV0tBcnJh
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2NDY5NzAxMURCRTYwMzAwNjQ1NUIwIC8qIEltbXV0
YWJsZUFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzY0NkJGQTExREQzNzdCMDA2NDU1QjAg
LyogV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM2NDZCRkMx
MUREMzc3QjAwNjQ1NUIwIC8qIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmggaW4gSGVhZGVycyAq
LywKKwkJCQlCQzY0NkMxQjExREQzOTlGMDA2NDU1QjAgLyogV0tCYWNrRm9yd2FyZExpc3QuaCBp
biBIZWFkZXJzICovLAorCQkJCUJDNjQ2QzFEMTFERDM5OUYwMDY0NTVCMCAvKiBXS0JhY2tGb3J3
YXJkTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTIzNiw2ICsxMjY0LDEwIEBACiAJCQkJ
QkNEMjVGMTgxMUQ2QkRFMTAwMTY5QjBFIC8qIFdLQnVuZGxlRnJhbWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM2NDY4MEIxMURCQkQ2OTAwNjQ1NUIwIC8qIFdLQXJyYXkuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM2NDY5NkYxMURCRTYwMzAwNjQ1NUIwIC8qIEltbXV0YWJsZUFycmF5LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUJDNjQ2QkY5MTFERDM3N0IwMDY0NTVCMCAvKiBXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDNjQ2QkZCMTFERDM3N0Iw
MDY0NTVCMCAvKiBXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlCQzY0NkMxQTExREQzOTlGMDA2NDU1QjAgLyogV0tCYWNrRm9yd2FyZExpc3QuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQkM2NDZDMUMxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0ZvcndhcmRM
aXN0SXRlbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYktpdDIvd2luL1dlYktpdDIudmNw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCShyZXZpc2lvbiA2
MjMwMCkKKysrIFdlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04
MjgsNiArODI4LDIyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCINCisJCQkJ
Pg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vz
c1xXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQmFja0ZvcndhcmRMaXN0UHJv
eHkuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cVUlQcm9jZXNzXFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmgiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ29u
dGV4dC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpAQCAtOTY2LDYgKzk4MiwyMiBAQAogCQkJ
CQkJPg0KIAkJCQkJPC9GaWxlPg0KIAkJCQkJPEZpbGUNCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFVJUHJvY2Vzc1xBUElcQ1xXS0JhY2tGb3J3YXJkTGlzdC5jcHAiDQorCQkJCQkJPg0KKwkJCQkJ
PC9GaWxlPg0KKwkJCQkJPEZpbGUNCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xB
UElcQ1xXS0JhY2tGb3J3YXJkTGlzdC5oIg0KKwkJCQkJCT4NCisJCQkJCTwvRmlsZT4NCisJCQkJ
CTxGaWxlDQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tCYWNrRm9y
d2FyZExpc3RJdGVtLmNwcCINCisJCQkJCQk+DQorCQkJCQk8L0ZpbGU+DQorCQkJCQk8RmlsZQ0K
KwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQmFja0ZvcndhcmRMaXN0
SXRlbS5oIg0KKwkJCQkJCT4NCisJCQkJCTwvRmlsZT4NCisJCQkJCTxGaWxlDQogCQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tDb250ZXh0LmNwcCINCiAJCQkJCQk+DQog
CQkJCQk8L0ZpbGU+DQo=
</data>
<flag name="review"
          id="47706"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>