<?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>127213</bug_id>
          
          <creation_ts>2014-01-17 21:27:22 -0800</creation_ts>
          <short_desc>Make WKRenderingProgressEvents a shareable API.</short_desc>
          <delta_ts>2014-01-18 10:26:15 -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>WebKit2</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="Yongjun Zhang">yongjun_zhang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>969381</commentid>
    <comment_count>0</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2014-01-17 21:27:22 -0800</bug_when>
    <thetext>We should make WKRenderingProgressEvents a shareable API since this could enable injected bundle to listen to rendering events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969382</commentid>
    <comment_count>1</comment_count>
      <attachid>221532</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2014-01-17 21:39:26 -0800</bug_when>
    <thetext>Created attachment 221532
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969383</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-17 21:41:15 -0800</bug_when>
    <thetext>Attachment 221532 did not pass style-queue:


ERROR: Source/WebKit2/Shared/API/Cocoa/WKRenderingProgressEvents.h:30:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969387</commentid>
    <comment_count>3</comment_count>
      <attachid>221534</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2014-01-17 21:45:39 -0800</bug_when>
    <thetext>Created attachment 221534
Fix style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969466</commentid>
    <comment_count>4</comment_count>
      <attachid>221534</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-18 10:26:13 -0800</bug_when>
    <thetext>Comment on attachment 221534
Fix style.

Clearing flags on attachment: 221534

Committed r162259: &lt;http://trac.webkit.org/changeset/162259&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969467</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-18 10:26:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221532</attachid>
            <date>2014-01-17 21:39:26 -0800</date>
            <delta_ts>2014-01-17 21:43:25 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>rendering_milestones.patch</filename>
            <type>text/plain</type>
            <size>15845</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MjI0MykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE0LTAxLTE3ICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBXS1JlbmRl
cmluZ1Byb2dyZXNzRXZlbnRzIGEgc2hhcmVhYmxlIEFQSS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzIxMworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50
cyBmcm9tIFVJUHJvY2VzcyB0byBTaGFyZWQsIHNvIHRoYXQgYW4gaW5qZWN0IGJ1bmRsZQorICAg
ICAgICBjb3VsZCBhbHNvIHVzZSB0aGlzIGVudW0gd2hlbiBsaXN0ZW5pbmcgdG8gbGF5b3V0IG1p
bGVzdG9uZXMuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL1dLUmVuZGVyaW5nUHJvZ3Jl
c3NFdmVudHMuaDogQWRkZWQuCisgICAgICAgIChOU19PUFRJT05TKToKKyAgICAgICAgKiBTaGFy
ZWQvQVBJL0NvY29hL1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oOiBBZGRlZC4K
KyAgICAgICAgKHJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5oOiBNb3ZlIFdLUmVuZGVyaW5n
UHJvZ3Jlc3NFdmVudHMgdG8gU2hhcmVkL0FQSS9Db2NvYS9XS1JlbmRlcmluZ1Byb2dyZXNzRXZl
bnRzLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIubW06IE1vdmUgcmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMoKSB0byBXS1JlbmRlcmlu
Z1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmg6IEFkZAorICAgICAgICAgICAg
d2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpyZW5kZXJpbmdQcm9ncmVz
c0RpZENoYW5nZTogdG8gbG9hZCBkZWxlZ2F0ZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyLm1tOgorICAgICAgICAoZGlkTGF5b3V0KToKKyAgICAgICAgKHNldFVwUGFnZUxvYWRlckNs
aWVudCk6IEFsc28gbGlzdGVuIHRvIGRpZExheW91dCBjYWxsYmFjayBmb3IgbGF5b3V0IG1pbGVz
dG9uZXMuCisKIDIwMTQtMDEtMTcgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IG9uIEVGTCBwb3J0IGFmdGVyIHIxNjIy
MzcKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tSZW5kZXJpbmdQcm9n
cmVzc0V2ZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29j
b2EvV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdDIv
V0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCit0eXBlZGVmIE5TX09QVElP
TlMoTlNVSW50ZWdlciwgV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cykgeworICAgIFdLUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudEZpcnN0TGF5b3V0ID0gMSA8PCAwLAorICAgIFdLUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudEZpcnN0UGFpbnRXaXRoU2lnbmlmaWNhbnRBcmVhID0gMSA8PCAyLAorfTsKKwor
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLUmVuZGVyaW5n
UHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvQ29jb2EvV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudHNJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0ICJXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgiCisKKyNpZiBX
S19BUElfRU5BQkxFRAorCitzdGF0aWMgaW5saW5lIFdLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMg
cmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMoV0tMYXlvdXRNaWxlc3RvbmVzIG1pbGVzdG9uZXMpCit7
CisgICAgV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cyBldmVudHMgPSAwOworCisgICAgaWYgKG1p
bGVzdG9uZXMgJiBrV0tEaWRGaXJzdExheW91dCkKKyAgICAgICAgZXZlbnRzIHw9IFdLUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudEZpcnN0TGF5b3V0OworCisgICAgaWYgKG1pbGVzdG9uZXMgJiBrV0tE
aWRIaXRSZWxldmFudFJlcGFpbnRlZE9iamVjdHNBcmVhVGhyZXNob2xkKQorICAgICAgICBldmVu
dHMgfD0gV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RQYWludFdpdGhTaWduaWZpY2FudEFy
ZWE7CisKKyAgICByZXR1cm4gZXZlbnRzOworfQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIuaAkocmV2aXNpb24gMTYyMjQyKQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCA8V2ViS2l0Mi9XS0Jyb3dzaW5nQ29u
dGV4dEdyb3VwLmg+CiAjaW1wb3J0IDxXZWJLaXQyL1dLRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8
V2ViS2l0Mi9XS1Byb2Nlc3NHcm91cC5oPgorI2ltcG9ydCA8V2ViS2l0Mi9XS1JlbmRlcmluZ1By
b2dyZXNzRXZlbnRzLmg+CiAKICNpZiBXS19BUElfRU5BQkxFRAogCkBAIC0zNiwxMSArMzcsNiBA
QAogQHByb3RvY29sIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlOwogQHByb3RvY29sIFdL
QnJvd3NpbmdDb250ZXh0UG9saWN5RGVsZWdhdGU7CiAKLXR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJ
bnRlZ2VyLCBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKSB7Ci0gICAgV0tSZW5kZXJpbmdQcm9n
cmVzc0V2ZW50Rmlyc3RMYXlvdXQgPSAxIDw8IDAsCi0gICAgV0tSZW5kZXJpbmdQcm9ncmVzc0V2
ZW50Rmlyc3RQYWludFdpdGhTaWduaWZpY2FudEFyZWEgPSAxIDw8IDIsCi19OwotCiBXS19BUElf
Q0xBU1MKIEBpbnRlcmZhY2UgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIDogTlNPYmplY3QK
IApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0JKHJldmlzaW9uIDE2MjI0
MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRDb250cm9sbGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBACiAjaW1wb3J0
ICJXS05TVVJMUHJvdGVjdGlvblNwYWNlLmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NHcm91cEludGVy
bmFsLmgiCiAjaW1wb3J0ICJXS1JlbW90ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaCIKKyNpbXBv
cnQgIldLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tSZXRh
aW5QdHIuaCIKICNpbXBvcnQgIldLVVJMUmVxdWVzdE5TLmgiCiAjaW1wb3J0ICJXS1VSTFJlc3Bv
bnNlTlMuaCIKQEAgLTU5NSwxOSArNTk2LDYgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc0RpZENyYXNo
KFdLUGFnZVJlZiBwYQogICAgICAgICBbKGlkIDxXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0
ZVByaXZhdGU+KWxvYWREZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVyV2ViUHJvY2Vz
c0RpZENyYXNoOmJyb3dzaW5nQ29udGV4dF07CiB9CiAKLXN0YXRpYyBpbmxpbmUgV0tSZW5kZXJp
bmdQcm9ncmVzc0V2ZW50cyByZW5kZXJpbmdQcm9ncmVzc0V2ZW50cyhXS0xheW91dE1pbGVzdG9u
ZXMgbWlsZXN0b25lcykKLXsKLSAgICBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzIGV2ZW50cyA9
IDA7Ci0KLSAgICBpZiAobWlsZXN0b25lcyAmIGtXS0RpZEZpcnN0TGF5b3V0KQotICAgICAgICBl
dmVudHMgfD0gV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RMYXlvdXQ7Ci0KLSAgICBpZiAo
bWlsZXN0b25lcyAmIGtXS0RpZEhpdFJlbGV2YW50UmVwYWludGVkT2JqZWN0c0FyZWFUaHJlc2hv
bGQpCi0gICAgICAgIGV2ZW50cyB8PSBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFBhaW50
V2l0aFNpZ25pZmljYW50QXJlYTsKLQotICAgIHJldHVybiBldmVudHM7Ci19Ci0KIHN0YXRpYyB2
b2lkIGRpZExheW91dChXS1BhZ2VSZWYgcGFnZSwgV0tMYXlvdXRNaWxlc3RvbmVzIG1pbGVzdG9u
ZXMsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBX
S0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCA9IChXS0Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTYyMjQyKQor
KysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNTEsNiArMzUxLDggQEAKIAkJMUNCNzVDOTQxNzAxRTg4MDAwOUY4MDlG
IC8qIERvY2tSaWdodC5wZGYgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDQjc1QzkzMTcwMUU4ODAwMDlGODA5RiAvKiBEb2NrUmlnaHQucGRmICovOyB9
OwogCQkxQ0JDOTQ1RTE2NTE1RUQyMDBENjhBQUUgLyogRG9ja0JvdHRvbS5wZGYgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkM5NDVEMTY1MTVFRDIw
MEQ2OEFBRSAvKiBEb2NrQm90dG9tLnBkZiAqLzsgfTsKIAkJMUYzMzVCQzAxODVCODRGMDAwMUEy
MDFBIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYzMzVCQkYxODVCODREODAwMUEyMDFBIC8q
IFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJMUY2MDRCQTgxODg5RkE3NDAwRUUwMzk1IC8qIFdL
UmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFGNjA0QkE2MTg4OUZBNzQwMEVFMDM5NSAvKiBXS1JlbmRlcmluZ1By
b2dyZXNzRXZlbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9
OyB9OworCQkxRjYwNEJBQTE4ODlGQkI4MDBFRTAzOTUgLyogV0tSZW5kZXJpbmdQcm9ncmVzc0V2
ZW50c0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxRjYwNEJBNzE4ODlGQTc0MDBFRTAzOTUgLyogV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50
c0ludGVybmFsLmggKi87IH07CiAJCTFGNzUwNkFEMTg1OTE2MUMwMEVDMEZGNyAvKiBXS1dlYlBy
b2Nlc3NQbHVnSW5GcmFtZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFGMDE4MTZBMTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZS5tbSAqLzsgfTsKIAkJMUY3NTA2QUUxODU5MTYyMjAwRUMwRkY3IC8qIFdLV2ViUHJvY2Vz
c1BsdWdJbkhpdFRlc3RSZXN1bHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxRjAxODE2RDE4NThEQzE2MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1
Z0luSGl0VGVzdFJlc3VsdC5tbSAqLzsgfTsKIAkJMUY3NTA2QUYxODU5MTYyODAwRUMwRkY3IC8q
IFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjAxODE3MDE4NThEQzE2MDBGOTI4ODQgLyogV0tXZWJQ
cm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5tbSAqLzsgfTsKQEAgLTE5OTcsNiArMTk5OSw4IEBACiAJ
CTFGMDE4MTczMTg1OERDMTYwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3Js
ZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViUHJvY2Vz
c1BsdWdJblNjcmlwdFdvcmxkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAx
ODE3NDE4NThEQzE2MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGRJbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVn
SW5TY3JpcHRXb3JsZEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFG
MzM1QkJGMTg1Qjg0RDgwMDFBMjAxQSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luTG9h
ZERlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFGNjA0QkE2MTg4OUZB
NzQwMEVFMDM5NSAvKiBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUY2MDRCQTcxODg5RkE3NDAwRUUwMzk1IC8qIFdLUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUZCMDBBQzQxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1Bs
dWdJblBhZ2VHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlBy
b2Nlc3NQbHVnSW5QYWdlR3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZC
MDBBQzUxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJ
blBhZ2VHcm91cC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZCMDBBQzYxODVG
NzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91
cEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MjQwLDYgKzQyNDQs
OCBAQAogCQkJCTFBOUUzMjg3MTgyMTYzNjkwMEY1RDA0QyAvKiBXS1JlbW90ZU9iamVjdFJlZ2lz
dHJ5LmggKi8sCiAJCQkJMUE5RTMyODgxODIxNjM2OTAwRjVEMDRDIC8qIFdLUmVtb3RlT2JqZWN0
UmVnaXN0cnkubW0gKi8sCiAJCQkJMUE5RTMyQTAxODIzMDE4OTAwRjVEMDRDIC8qIFdLUmVtb3Rl
T2JqZWN0UmVnaXN0cnlJbnRlcm5hbC5oICovLAorCQkJCTFGNjA0QkE2MTg4OUZBNzQwMEVFMDM5
NSAvKiBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmggKi8sCisJCQkJMUY2MDRCQTcxODg5RkE3
NDAwRUUwMzk1IC8qIFdLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oICovLAogCQkJ
KTsKIAkJCXBhdGggPSBDb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02NTkw
LDYgKzY1OTYsNyBAQAogCQkJCUJDQ0Y2QUNBMTJDOTFGNTkwMDhGOUMzNSAvKiBXS0ltYWdlQ0cu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFDOEUyOTM5MTI3NjFFNUIwMEJDN0JEMCAvKiBXS0luc3Bl
Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkVFODQ5QzgxMzY4RDkzOTAwMzhENDgxIC8qIFdL
SW5zcGVjdG9yUHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUY2MDRCQTgxODg5RkE3
NDAwRUUwMzk1IC8qIFdLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxQTlFMTBCMTMxNUNEMTgwMDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTMzRDNBM0I2MTMzOTYwMEIwMDcwOUJFNCAvKiBXS01lZGlh
Q2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzVGRTEyNEZGMDI3MDA2OEYy
MEEgLyogV0tNdXRhYmxlQXJyYXkuaCBpbiBIZWFkZXJzICovLApAQCAtNjYzNCw2ICs2NjQxLDcg
QEAKIAkJCQlCQzhBNTAxNTExNzY1RjU2MDA3NTc1NzMgLyogV0tSZXRhaW5QdHIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY2MzQ0NDVEMTJBODg1RTkwMDA2MTJEOCAvKiBXS1NlY3VyaXR5T3JpZ2lu
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwNDEyNEZGMDI3MDA2OEYyMEEgLyogV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFGNjA0QkFBMTg4OUZCQjgw
MEVFMDM5NSAvKiBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFGNzUwNkI4MTg1OTE2NUQwMEVDMEZGNyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNjdERDdCQTEyNUU0MEQ5MDA3QkRD
QjggLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0REQjMyQjEyNEVDMkFCMDA0OEQxM0MgLyogV0tTaGFyZWRBUElDYXN0LmggaW4gSGVhZGVy
cyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZS5oCShyZXZpc2lvbiAxNjIyNDIpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVn
SW5Mb2FkRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KKyNpbXBvcnQgPFdlYktpdDIvV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5o
PgogCiBAY2xhc3MgV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjsK
IEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZTsKQEAgLTQzLDYgKzQ0LDcgQEAKIAogLy8g
TGF5b3V0CiAtICh2b2lkKXdlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6
KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciopY29udHJvbGxlciBk
aWRMYXlvdXRGb3JGcmFtZTooV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgKilmcmFtZTsKKy0gKHZv
aWQpd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNz
UGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyKiljb250cm9sbGVyIHJlbmRlcmluZ1Byb2dy
ZXNzRGlkQ2hhbmdlOihXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKWV2ZW50czsKIAogLy8gUmVz
b3VyY2UgbG9hZGluZwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0J
KHJldmlzaW9uIDE2MjI0MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgIldLRE9NSW50ZXJu
YWxzLmgiCiAjaW1wb3J0ICJXS05TRXJyb3IuaCIKICNpbXBvcnQgIldLUmVtb3RlT2JqZWN0UmVn
aXN0cnlJbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVy
bmFsLmgiCiAjaW1wb3J0ICJXS1JldGFpblB0ci5oIgogI2ltcG9ydCAiV0tVUkxSZXF1ZXN0TlMu
aCIKICNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdpbkZyYW1lSW50ZXJuYWwuaCIKQEAgLTEzMiw2
ICsxMzMsMTUgQEAgc3RhdGljIHZvaWQgZGlkTGF5b3V0Rm9yRnJhbWUoV0tCdW5kbGVQYQogICAg
ICAgICBbbG9hZERlbGVnYXRlIHdlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXI6cGx1Z2luQ29udGV4dENvbnRyb2xsZXIgZGlkTGF5b3V0Rm9yRnJhbWU6d3JhcHBlcigqdG9J
bXBsKGZyYW1lKSldOwogfQogCitzdGF0aWMgdm9pZCBkaWRMYXlvdXQoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLTGF5b3V0TWlsZXN0b25lcyBtaWxlc3RvbmVzLCBXS1R5cGVSZWYqIHVzZXJEYXRh
LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlciAqcGx1Z2luQ29udGV4dENvbnRyb2xsZXIgPSAoV0tXZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKKyAgICBhdXRv
IGxvYWREZWxlZ2F0ZSA9IHBsdWdpbkNvbnRleHRDb250cm9sbGVyLT5fbG9hZERlbGVnYXRlLmdl
dCgpOworCisgICAgaWYgKFtsb2FkRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cih3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOnJlbmRlcmluZ1Byb2dy
ZXNzRGlkQ2hhbmdlOildKQorICAgICAgICBbbG9hZERlbGVnYXRlIHdlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXI6cGx1Z2luQ29udGV4dENvbnRyb2xsZXIgcmVuZGVyaW5n
UHJvZ3Jlc3NEaWRDaGFuZ2U6cmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMobWlsZXN0b25lcyldOwor
fQorCiBzdGF0aWMgdm9pZCBzZXRVcFBhZ2VMb2FkZXJDbGllbnQoV0tXZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyICpjb250ZXh0Q29udHJvbGxlciwgV2ViUGFnZSYgcGFn
ZSkKIHsKICAgICBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWNyBjbGllbnQ7CkBAIC0xNDgsNiAr
MTU4LDcgQEAgc3RhdGljIHZvaWQgc2V0VXBQYWdlTG9hZGVyQ2xpZW50KFdLV2ViUAogICAgIGNs
aWVudC5nbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lID0gZ2xvYmFsT2JqZWN0SXNBdmFp
bGFibGVGb3JGcmFtZTsKIAogICAgIGNsaWVudC5kaWRMYXlvdXRGb3JGcmFtZSA9IGRpZExheW91
dEZvckZyYW1lOworICAgIGNsaWVudC5kaWRMYXlvdXQgPSBkaWRMYXlvdXQ7CiAKICAgICBwYWdl
LmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgmY2xpZW50LmJhc2UpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221534</attachid>
            <date>2014-01-17 21:45:39 -0800</date>
            <delta_ts>2014-01-18 10:26:13 -0800</delta_ts>
            <desc>Fix style.</desc>
            <filename>rendering_milestones.patch</filename>
            <type>text/plain</type>
            <size>15846</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MjI0MykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE0LTAxLTE3ICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBXS1JlbmRl
cmluZ1Byb2dyZXNzRXZlbnRzIGEgc2hhcmVhYmxlIEFQSS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzIxMworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50
cyBmcm9tIFVJUHJvY2VzcyB0byBTaGFyZWQsIHNvIHRoYXQgYW4gaW5qZWN0IGJ1bmRsZQorICAg
ICAgICBjb3VsZCBhbHNvIHVzZSB0aGlzIGVudW0gd2hlbiBsaXN0ZW5pbmcgdG8gbGF5b3V0IG1p
bGVzdG9uZXMuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL1dLUmVuZGVyaW5nUHJvZ3Jl
c3NFdmVudHMuaDogQWRkZWQuCisgICAgICAgIChOU19PUFRJT05TKToKKyAgICAgICAgKiBTaGFy
ZWQvQVBJL0NvY29hL1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oOiBBZGRlZC4K
KyAgICAgICAgKHJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5oOiBNb3ZlIFdLUmVuZGVyaW5n
UHJvZ3Jlc3NFdmVudHMgdG8gU2hhcmVkL0FQSS9Db2NvYS9XS1JlbmRlcmluZ1Byb2dyZXNzRXZl
bnRzLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIubW06IE1vdmUgcmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMoKSB0byBXS1JlbmRlcmlu
Z1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmg6IEFkZAorICAgICAgICAgICAg
d2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpyZW5kZXJpbmdQcm9ncmVz
c0RpZENoYW5nZTogdG8gbG9hZCBkZWxlZ2F0ZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyLm1tOgorICAgICAgICAoZGlkTGF5b3V0KToKKyAgICAgICAgKHNldFVwUGFnZUxvYWRlckNs
aWVudCk6IEFsc28gbGlzdGVuIHRvIGRpZExheW91dCBjYWxsYmFjayBmb3IgbGF5b3V0IG1pbGVz
dG9uZXMuCisKIDIwMTQtMDEtMTcgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IG9uIEVGTCBwb3J0IGFmdGVyIHIxNjIy
MzcKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tSZW5kZXJpbmdQcm9n
cmVzc0V2ZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29j
b2EvV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdDIv
V0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCit0eXBlZGVmIE5TX09QVElP
TlMoTlNVSW50ZWdlciwgV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cykKK3sKKyAgICBXS1JlbmRl
cmluZ1Byb2dyZXNzRXZlbnRGaXJzdExheW91dCA9IDEgPDwgMCwKKyAgICBXS1JlbmRlcmluZ1By
b2dyZXNzRXZlbnRGaXJzdFBhaW50V2l0aFNpZ25pZmljYW50QXJlYSA9IDEgPDwgMiwKK307CisK
KyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbmRlcmlu
Z1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL0NvY29hL1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbmRlcmluZ1By
b2dyZXNzRXZlbnRzSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oIgorCisjaWYg
V0tfQVBJX0VOQUJMRUQKKworc3RhdGljIGlubGluZSBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRz
IHJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKFdLTGF5b3V0TWlsZXN0b25lcyBtaWxlc3RvbmVzKQor
eworICAgIFdLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMgZXZlbnRzID0gMDsKKworICAgIGlmICht
aWxlc3RvbmVzICYga1dLRGlkRmlyc3RMYXlvdXQpCisgICAgICAgIGV2ZW50cyB8PSBXS1JlbmRl
cmluZ1Byb2dyZXNzRXZlbnRGaXJzdExheW91dDsKKworICAgIGlmIChtaWxlc3RvbmVzICYga1dL
RGlkSGl0UmVsZXZhbnRSZXBhaW50ZWRPYmplY3RzQXJlYVRocmVzaG9sZCkKKyAgICAgICAgZXZl
bnRzIHw9IFdLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0UGFpbnRXaXRoU2lnbmlmaWNhbnRB
cmVhOworCisgICAgcmV0dXJuIGV2ZW50czsKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDE2MjI0MikKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgPFdlYktpdDIvV0tCcm93c2luZ0Nv
bnRleHRHcm91cC5oPgogI2ltcG9ydCA8V2ViS2l0Mi9XS0ZvdW5kYXRpb24uaD4KICNpbXBvcnQg
PFdlYktpdDIvV0tQcm9jZXNzR3JvdXAuaD4KKyNpbXBvcnQgPFdlYktpdDIvV0tSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50cy5oPgogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIApAQCAtMzYsMTEgKzM3LDYg
QEAKIEBwcm90b2NvbCBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZTsKIEBwcm90b2NvbCBX
S0Jyb3dzaW5nQ29udGV4dFBvbGljeURlbGVnYXRlOwogCi10eXBlZGVmIE5TX09QVElPTlMoTlNV
SW50ZWdlciwgV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cykgewotICAgIFdLUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudEZpcnN0TGF5b3V0ID0gMSA8PCAwLAotICAgIFdLUmVuZGVyaW5nUHJvZ3Jlc3NF
dmVudEZpcnN0UGFpbnRXaXRoU2lnbmlmaWNhbnRBcmVhID0gMSA8PCAyLAotfTsKLQogV0tfQVBJ
X0NMQVNTCiBAaW50ZXJmYWNlIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciA6IE5TT2JqZWN0
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCShyZXZpc2lvbiAxNjIy
NDIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksNyBAQAogI2ltcG9y
dCAiV0tOU1VSTFByb3RlY3Rpb25TcGFjZS5oIgogI2ltcG9ydCAiV0tQcm9jZXNzR3JvdXBJbnRl
cm5hbC5oIgogI2ltcG9ydCAiV0tSZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFsLmgiCisjaW1w
b3J0ICJXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLUmV0
YWluUHRyLmgiCiAjaW1wb3J0ICJXS1VSTFJlcXVlc3ROUy5oIgogI2ltcG9ydCAiV0tVUkxSZXNw
b25zZU5TLmgiCkBAIC01OTUsMTkgKzU5Niw2IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NEaWRDcmFz
aChXS1BhZ2VSZWYgcGEKICAgICAgICAgWyhpZCA8V0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdh
dGVQcml2YXRlPilsb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcldlYlByb2Nl
c3NEaWRDcmFzaDpicm93c2luZ0NvbnRleHRdOwogfQogCi1zdGF0aWMgaW5saW5lIFdLUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudHMgcmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMoV0tMYXlvdXRNaWxlc3Rv
bmVzIG1pbGVzdG9uZXMpCi17Ci0gICAgV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cyBldmVudHMg
PSAwOwotCi0gICAgaWYgKG1pbGVzdG9uZXMgJiBrV0tEaWRGaXJzdExheW91dCkKLSAgICAgICAg
ZXZlbnRzIHw9IFdLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0TGF5b3V0OwotCi0gICAgaWYg
KG1pbGVzdG9uZXMgJiBrV0tEaWRIaXRSZWxldmFudFJlcGFpbnRlZE9iamVjdHNBcmVhVGhyZXNo
b2xkKQotICAgICAgICBldmVudHMgfD0gV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RQYWlu
dFdpdGhTaWduaWZpY2FudEFyZWE7Ci0KLSAgICByZXR1cm4gZXZlbnRzOwotfQotCiBzdGF0aWMg
dm9pZCBkaWRMYXlvdXQoV0tQYWdlUmVmIHBhZ2UsIFdLTGF5b3V0TWlsZXN0b25lcyBtaWxlc3Rv
bmVzLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAg
V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2luZ0NvbnRleHQgPSAoV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2MjI0MikK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMzUxLDYgKzM1MSw4IEBACiAJCTFDQjc1Qzk0MTcwMUU4ODAwMDlGODA5
RiAvKiBEb2NrUmlnaHQucGRmIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0I3NUM5MzE3MDFFODgwMDA5RjgwOUYgLyogRG9ja1JpZ2h0LnBkZiAqLzsg
fTsKIAkJMUNCQzk0NUUxNjUxNUVEMjAwRDY4QUFFIC8qIERvY2tCb3R0b20ucGRmIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JDOTQ1RDE2NTE1RUQy
MDBENjhBQUUgLyogRG9ja0JvdHRvbS5wZGYgKi87IH07CiAJCTFGMzM1QkMwMTg1Qjg0RjAwMDFB
MjAxQSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGMzM1QkJGMTg1Qjg0RDgwMDFBMjAxQSAv
KiBXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTFGNjA0QkE4MTg4OUZBNzQwMEVFMDM5NSAvKiBX
S1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxRjYwNEJBNjE4ODlGQTc0MDBFRTAzOTUgLyogV0tSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsg
fTsgfTsKKwkJMUY2MDRCQUExODg5RkJCODAwRUUwMzk1IC8qIFdLUmVuZGVyaW5nUHJvZ3Jlc3NF
dmVudHNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUY2MDRCQTcxODg5RkE3NDAwRUUwMzk1IC8qIFdLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVu
dHNJbnRlcm5hbC5oICovOyB9OwogCQkxRjc1MDZBRDE4NTkxNjFDMDBFQzBGRjcgLyogV0tXZWJQ
cm9jZXNzUGx1Z0luRnJhbWUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxRjAxODE2QTE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0lu
RnJhbWUubW0gKi87IH07CiAJCTFGNzUwNkFFMTg1OTE2MjIwMEVDMEZGNyAvKiBXS1dlYlByb2Nl
c3NQbHVnSW5IaXRUZXN0UmVzdWx0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUYwMTgxNkQxODU4REMxNjAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1Bs
dWdJbkhpdFRlc3RSZXN1bHQubW0gKi87IH07CiAJCTFGNzUwNkFGMTg1OTE2MjgwMEVDMEZGNyAv
KiBXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYwMTgxNzAxODU4REMxNjAwRjkyODg0IC8qIFdLV2Vi
UHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUubW0gKi87IH07CkBAIC0xOTk3LDYgKzE5OTksOCBAQAog
CQkxRjAxODE3MzE4NThEQzE2MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29y
bGQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlByb2Nl
c3NQbHVnSW5TY3JpcHRXb3JsZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYw
MTgxNzQxODU4REMxNjAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkSW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1
Z0luU2NyaXB0V29ybGRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
RjMzNUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkxv
YWREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRjYwNEJBNjE4ODlG
QTc0MDBFRTAzOTUgLyogV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFGNjA0QkE3MTg4OUZBNzQwMEVFMDM5NSAvKiBXS1JlbmRl
cmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFGQjAwQUM0MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQ
bHVnSW5QYWdlR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQ
cm9jZXNzUGx1Z0luUGFnZUdyb3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFG
QjAwQUM1MTg1Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVn
SW5QYWdlR3JvdXAubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQjAwQUM2MTg1
Rjc2NDYwMDE5MTQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXBJbnRlcm5hbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3Jv
dXBJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDI0MCw2ICs0MjQ0
LDggQEAKIAkJCQkxQTlFMzI4NzE4MjE2MzY5MDBGNUQwNEMgLyogV0tSZW1vdGVPYmplY3RSZWdp
c3RyeS5oICovLAogCQkJCTFBOUUzMjg4MTgyMTYzNjkwMEY1RDA0QyAvKiBXS1JlbW90ZU9iamVj
dFJlZ2lzdHJ5Lm1tICovLAogCQkJCTFBOUUzMkEwMTgyMzAxODkwMEY1RDA0QyAvKiBXS1JlbW90
ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaCAqLywKKwkJCQkxRjYwNEJBNjE4ODlGQTc0MDBFRTAz
OTUgLyogV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oICovLAorCQkJCTFGNjA0QkE3MTg4OUZB
NzQwMEVFMDM5NSAvKiBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gQ29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNjU5
MCw2ICs2NTk2LDcgQEAKIAkJCQlCQ0NGNkFDQTEyQzkxRjU5MDA4RjlDMzUgLyogV0tJbWFnZUNH
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzhFMjkzOTEyNzYxRTVCMDBCQzdCRDAgLyogV0tJbnNw
ZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFRTg0OUM4MTM2OEQ5MzkwMDM4RDQ4MSAvKiBX
S0luc3BlY3RvclByaXZhdGVNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFGNjA0QkE4MTg4OUZB
NzQwMEVFMDM5NSAvKiBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MUE5RTEwQjEzMTVDRDE4MDA5RTcwMzEgLyogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzM0QzQTNCNjEzMzk2MDBCMDA3MDlCRTQgLyogV0tNZWRp
YUNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc1RkUxMjRGRjAyNzAwNjhG
MjBBIC8qIFdLTXV0YWJsZUFycmF5LmggaW4gSGVhZGVycyAqLywKQEAgLTY2MzQsNiArNjY0MSw3
IEBACiAJCQkJQkM4QTUwMTUxMTc2NUY1NjAwNzU3NTczIC8qIFdLUmV0YWluUHRyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGNjM0NDQ1RDEyQTg4NUU5MDAwNjEyRDggLyogV0tTZWN1cml0eU9yaWdp
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDQxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxRjYwNEJBQTE4ODlGQkI4
MDBFRTAzOTUgLyogV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxRjc1MDZCODE4NTkxNjVEMDBFQzBGRjcgLyogV0tXZWJQcm9jZXNzUGx1Z0lu
RnJhbWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjY3REQ3QkExMjVFNDBEOTAwN0JE
Q0I4IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNEREIzMkIxMjRFQzJBQjAwNDhEMTNDIC8qIFdLU2hhcmVkQVBJQ2FzdC5oIGluIEhlYWRl
cnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlBy
b2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaAkocmV2aXNpb24gMTYyMjQyKQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luTG9hZERlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogI2ltcG9ydCA8Rm91bmRhdGlvbi9G
b3VuZGF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQyL1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMu
aD4KIAogQGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI7
CiBAY2xhc3MgV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWU7CkBAIC00Myw2ICs0NCw3IEBACiAKIC8v
IExheW91dAogLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
OihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIqKWNvbnRyb2xsZXIg
ZGlkTGF5b3V0Rm9yRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICopZnJhbWU7CistICh2
b2lkKXdlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciopY29udHJvbGxlciByZW5kZXJpbmdQcm9n
cmVzc0RpZENoYW5nZTooV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cylldmVudHM7CiAKIC8vIFJl
c291cmNlIGxvYWRpbmcKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1t
CShyZXZpc2lvbiAxNjIyNDIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0ICJXS0RPTUludGVy
bmFscy5oIgogI2ltcG9ydCAiV0tOU0Vycm9yLmgiCiAjaW1wb3J0ICJXS1JlbW90ZU9iamVjdFJl
Z2lzdHJ5SW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRl
cm5hbC5oIgogI2ltcG9ydCAiV0tSZXRhaW5QdHIuaCIKICNpbXBvcnQgIldLVVJMUmVxdWVzdE5T
LmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnaW5GcmFtZUludGVybmFsLmgiCkBAIC0xMzIs
NiArMTMzLDE1IEBAIHN0YXRpYyB2b2lkIGRpZExheW91dEZvckZyYW1lKFdLQnVuZGxlUGEKICAg
ICAgICAgW2xvYWREZWxlZ2F0ZSB3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyOnBsdWdpbkNvbnRleHRDb250cm9sbGVyIGRpZExheW91dEZvckZyYW1lOndyYXBwZXIoKnRv
SW1wbChmcmFtZSkpXTsKIH0KIAorc3RhdGljIHZvaWQgZGlkTGF5b3V0KFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS0xheW91dE1pbGVzdG9uZXMgbWlsZXN0b25lcywgV0tUeXBlUmVmKiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXIgKnBsdWdpbkNvbnRleHRDb250cm9sbGVyID0gKFdLV2ViUHJv
Y2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CisgICAgYXV0
byBsb2FkRGVsZWdhdGUgPSBwbHVnaW5Db250ZXh0Q29udHJvbGxlci0+X2xvYWREZWxlZ2F0ZS5n
ZXQoKTsKKworICAgIGlmIChbbG9hZERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Iod2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpyZW5kZXJpbmdQcm9n
cmVzc0RpZENoYW5nZTopXSkKKyAgICAgICAgW2xvYWREZWxlZ2F0ZSB3ZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyOnBsdWdpbkNvbnRleHRDb250cm9sbGVyIHJlbmRlcmlu
Z1Byb2dyZXNzRGlkQ2hhbmdlOnJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKG1pbGVzdG9uZXMpXTsK
K30KKwogc3RhdGljIHZvaWQgc2V0VXBQYWdlTG9hZGVyQ2xpZW50KFdLV2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqY29udGV4dENvbnRyb2xsZXIsIFdlYlBhZ2UmIHBh
Z2UpCiB7CiAgICAgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjcgY2xpZW50OwpAQCAtMTQ4LDYg
KzE1OCw3IEBAIHN0YXRpYyB2b2lkIHNldFVwUGFnZUxvYWRlckNsaWVudChXS1dlYlAKICAgICBj
bGllbnQuZ2xvYmFsT2JqZWN0SXNBdmFpbGFibGVGb3JGcmFtZSA9IGdsb2JhbE9iamVjdElzQXZh
aWxhYmxlRm9yRnJhbWU7CiAKICAgICBjbGllbnQuZGlkTGF5b3V0Rm9yRnJhbWUgPSBkaWRMYXlv
dXRGb3JGcmFtZTsKKyAgICBjbGllbnQuZGlkTGF5b3V0ID0gZGlkTGF5b3V0OwogCiAgICAgcGFn
ZS5pbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoJmNsaWVudC5iYXNlKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>