<?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>127905</bug_id>
          
          <creation_ts>2014-01-30 05:37:48 -0800</creation_ts>
          <short_desc>WebPage::determinePrimarySnapshottedPlugIn is slow</short_desc>
          <delta_ts>2014-01-30 11:04:38 -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>Layout and Rendering</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>973701</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-01-30 05:37:48 -0800</bug_when>
    <thetext>It is taking shotgun approach to hit testing.

PLT:

Running Time	Self		Symbol Name
132.0ms    0.8%	0,0	 	Main Thread  0x8a984
132.0ms    0.8%	0,0	 	 WebKit::WebPage::determinePrimarySnapshottedPlugIn()
130.0ms    0.8%	0,0	 	  WebCore::RenderView::hitTest(WebCore::HitTestRequest const&amp;, WebCore::HitTestResult&amp;)
1.0ms    0.0%	0,0	 	  WebCore::HTMLPlugInImageElement::restartSimilarPlugIns()
1.0ms    0.0%	0,0	 	  WTF::RunLoop::TimerBase::start(double, bool)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973704</commentid>
    <comment_count>1</comment_count>
      <attachid>222662</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-01-30 05:49:56 -0800</bug_when>
    <thetext>Created attachment 222662
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973705</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-30 05:52:28 -0800</bug_when>
    <thetext>Attachment 222662 did not pass style-queue:


ERROR: Source/WebKit2/ChangeLog:9:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebKit2/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebKit2/ChangeLog:13:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebKit2/ChangeLog:14:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 4 in 6 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>973725</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-01-30 07:49:45 -0800</bug_when>
    <thetext>https://trac.webkit.org/r163082</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973830</commentid>
    <comment_count>4</comment_count>
      <attachid>222662</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-30 11:04:38 -0800</bug_when>
    <thetext>Comment on attachment 222662
patch

So much better! Thanks, Antti :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222662</attachid>
            <date>2014-01-30 05:49:56 -0800</date>
            <delta_ts>2014-01-30 11:04:38 -0800</delta_ts>
            <desc>patch</desc>
            <filename>plugin-hit-test.patch</filename>
            <type>text/plain</type>
            <size>15901</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MzA4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE0LTAxLTMwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJQYWdlOjpkZXRlcm1pbmVQ
cmltYXJ5U25hcHNob3R0ZWRQbHVnSW4gaXMgc2xvdworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3OTA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogTmV3IGV4cG9ydHMKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50Pik6IEFkZCBpc0VsZW1lbnRPZlR5cGU8PgorCiAyMDE0LTAxLTMwICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgogCiAgICAgICAgIFJlbW92ZSB0aGUgQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcgZmxhZwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9u
IDE2MzAxNCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkp
CkBAIC0yOTEsNiArMjkxLDcgQEAgX19aTjdXZWJDb3JlMTNKU0hUTUxFbGVtZW50NnNfaW5mb0UK
IF9fWk43V2ViQ29yZTEzS2V5Ym9hcmRFdmVudEMxRVJLTlNfMjFQbGF0Zm9ybUtleWJvYXJkRXZl
bnRFUE5TXzlET01XaW5kb3dFCiBfX1pON1dlYkNvcmUxM05vZGVUcmF2ZXJzYWwxM2RlZXBMYXN0
Q2hpbGRFUE5TXzROb2RlRQogX19aTjdXZWJDb3JlMTNOb2RlVHJhdmVyc2FsMTluZXh0QW5jZXN0
b3JTaWJsaW5nRVBLTlNfNE5vZGVFCitfX1pON1dlYkNvcmUxM05vZGVUcmF2ZXJzYWwxOW5leHRB
bmNlc3RvclNpYmxpbmdFUEtOU180Tm9kZUVTM18KIF9fWk43V2ViQ29yZTEzUGFnZVRocm90dGxl
cjIycmVwb3J0SW50ZXJlc3RpbmdFdmVudEV2CiBfX1pON1dlYkNvcmUxM1BhZ2VUaHJvdHRsZXJE
MUV2CiBfX1pON1dlYkNvcmUxM1F1YWxpZmllZE5hbWVEMUV2CkBAIC0xNzYyLDYgKzE3NjMsNyBA
QCBfX1pOSzdXZWJDb3JlNldpZGdldDI1Y29udmVydEZyb21Db250YWluCiBfX1pOSzdXZWJDb3Jl
NldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VSS05TXzdJbnRSZWN0RQogX19aTks3
V2ViQ29yZTZXaWRnZXQyNWNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3dFUktOU184SW50UG9pbnRF
CiBfX1pOSzdXZWJDb3JlNldpZGdldDlmcmFtZVJlY3RFdgorX19aTks3V2ViQ29yZTdFbGVtZW50
MTBjbGllbnRSZWN0RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2NyZWVuUmVjdEV2CiBfX1pO
SzdXZWJDb3JlN0VsZW1lbnQxMHNoYWRvd1Jvb3RFdgogX19aTks3V2ViQ29yZTdFbGVtZW50MTJn
ZXRBdHRyaWJ1dGVFUktOM1dURjEyQXRvbWljU3RyaW5nRQpAQCAtMjU0Myw2ICsyNTQ1LDcgQEAg
X3drU2V0TGF5ZXJDb250ZW50c1NjYWxlCiAKICNpZiAhZGVmaW5lZChOREVCVUcpCiBfX1pON1dl
YkNvcmUxNFNRTGl0ZURhdGFiYXNlMjJkaXNhYmxlVGhyZWFkaW5nQ2hlY2tzRXYKK19fWk43V2Vi
Q29yZTI0Tm9FdmVudERpc3BhdGNoQXNzZXJ0aW9uN3NfY291bnRFCiBfX1pOSzdXZWJDb3JlN0Vs
ZW1lbnQyNmZhc3RBdHRyaWJ1dGVMb29rdXBBbGxvd2VkRVJLTlNfMTNRdWFsaWZpZWROYW1lRQog
I2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2MzAxNCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTg4Niw3ICs1
ODg2LDcgQEAKIAkJRTFGRjhGNjgxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3Vz
dG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi87IH07
CiAJCUUxRkY4RjZDMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2
QTE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovOyB9Owog
CQlFMUZGOEY2RDE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZCMTgw
REI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovOyB9OwotCQlFNDAx
QzI3NTE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwMUMyNzQxN0NFNTNF
QzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCAqLzsgfTsKKwkJRTQwMUMy
NzUxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDFDMjc0MTdDRTUzRUMw
MEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQyNEEzOUUxMzMwREYwMTAwQ0Y2REM5
IC8qIFRpbGVHcmlkVGlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTQyNEEzOUQxMzMwREYwMTAwQ0Y2REM5IC8qIFRpbGVHcmlkVGlsZS5oICovOyB9
OwogCQlFNDI0QTNBMDEzMzBERjFFMDBDRjZEQzkgLyogVGlsZUdyaWRUaWxlLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyNEEzOUYxMzMwREYxRTAw
Q0Y2REM5IC8qIFRpbGVHcmlkVGlsZS5tbSAqLzsgfTsKIAkJRTQyNUE0OUExODI5MkI4NDAwMjBD
RkNGIC8qIENvbGxlY3Rpb25JbmRleENhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDI1QTQ5OTE4MjkyQjg0MDAyMENGQ0YgLyogQ29sbGVjdGlv
bkluZGV4Q2FjaGUuaCAqLzsgfTsKQEAgLTU5NDQsOCArNTk0NCw4IEBACiAJCUU0NTM5MDREMEVB
RkQ2MzcwMDM2OTVDOCAvKiBXaWRnZXRJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDUzOTAzQzBFQUZENjM3MDAzNjk1QzggLyogV2lkZ2V0SU9T
Lm1tICovOyB9OwogCQlFNDUzOTBBRTBFQUZGNEI1MDAzNjk1QzggLyogU3lzdGVtTWVtb3J5SU9T
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NTM5
MEFEMEVBRkY0QjUwMDM2OTVDOCAvKiBTeXN0ZW1NZW1vcnlJT1MuY3BwICovOyB9OwogCQlFNDYy
QTRBMTExM0U3MUJFMDA0QTQyMjAgLyogSW50UG9pbnRIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDYyQTRBMDExM0U3MUJFMDA0QTQyMjAgLyog
SW50UG9pbnRIYXNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJRTQ2QTJCMUMxN0NBNjVCOTAwMERCQ0Q4IC8qIEVsZW1lbnREZXNjZW5kYW50SXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0
NkEyQjFCMTdDQTY1QjkwMDBEQkNEOCAvKiBFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9yLmggKi87
IH07Ci0JCUU0NkEyQjFFMTdDQTc2QjEwMDBEQkNEOCAvKiBFbGVtZW50Q2hpbGRJdGVyYXRvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ2QTJCMUQx
N0NBNzZCMTAwMERCQ0Q4IC8qIEVsZW1lbnRDaGlsZEl0ZXJhdG9yLmggKi87IH07CisJCUU0NkEy
QjFDMTdDQTY1QjkwMDBEQkNEOCAvKiBFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDZBMkIxQjE3Q0E2NUI5
MDAwREJDRDggLyogRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU0NkEyQjFFMTdDQTc2QjEwMDBEQkNE
OCAvKiBFbGVtZW50Q2hpbGRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTQ2QTJCMUQxN0NBNzZCMTAwMERCQ0Q4IC8qIEVsZW1lbnRDaGls
ZEl0ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTQ3MTI3Q0ExNjM0MzhBMTAwRUQ2RjVBIC8qIFN0eWxlSW52YWxpZGF0aW9uQW5hbHlz
aXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ3
QTk3Q0UxNjMwNTlGQzAwNURDRDk5IC8qIFN0eWxlSW52YWxpZGF0aW9uQW5hbHlzaXMuY3BwICov
OyB9OwogCQlFNDcxMjdDQjE2MzQzOEFFMDBFRDZGNUEgLyogU3R5bGVJbnZhbGlkYXRpb25BbmFs
eXNpcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ3
QTk3Q0YxNjMwNTlGQzAwNURDRDk5IC8qIFN0eWxlSW52YWxpZGF0aW9uQW5hbHlzaXMuaCAqLzsg
fTsKIAkJRTQ3NzhCN0YxMTVBNTgxQTAwQjVEMzcyIC8qIEpTQ3VzdG9tRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ3NzhCN0QxMTVBNTgx
QTAwQjVEMzcyIC8qIEpTQ3VzdG9tRXZlbnQuY3BwICovOyB9OwpAQCAtNTk2MCw4ICs1OTYwLDgg
QEAKIAkJRTQ5NDZFQUYxNTZFNjRERDAwRDMyOTdGIC8qIFN0eWxlUnVsZUltcG9ydC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5NDZFQUQxNTZFNjRE
RDAwRDMyOTdGIC8qIFN0eWxlUnVsZUltcG9ydC5oICovOyB9OwogCQlFNDlCRDlGQTEzMUZEMkVE
MDAzQzU2RjAgLyogQ1NTVmFsdWVQb29sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDlCRDlGOTEzMUZEMkVEMDAzQzU2RjAgLyogQ1NTVmFsdWVQb29s
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ5
QkRBMEIxMzFGRDNFNTAwM0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlCREEwQTEzMUZEM0U1MDAzQzU2RjAg
LyogQ1NTVmFsdWVQb29sLmNwcCAqLzsgfTsKLQkJRTRBRTdDMTYxN0QxQkI5NTAwMDlGQjMxIC8q
IEVsZW1lbnRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTRBRTdDMTUxN0QxQkI5NTAwMDlGQjMxIC8qIEVsZW1lbnRJdGVyYXRvci5oICov
OyB9OwotCQlFNEFFN0MxQTE3RDIzMjM1MDAwOUZCMzEgLyogRWxlbWVudEFuY2VzdG9ySXRlcmF0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QUU3
QzE5MTdEMjMyMzUwMDA5RkIzMSAvKiBFbGVtZW50QW5jZXN0b3JJdGVyYXRvci5oICovOyB9Owor
CQlFNEFFN0MxNjE3RDFCQjk1MDAwOUZCMzEgLyogRWxlbWVudEl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEFFN0MxNTE3RDFCQjk1MDAw
OUZCMzEgLyogRWxlbWVudEl0ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTRBRTdDMUExN0QyMzIzNTAwMDlGQjMxIC8qIEVsZW1lbnRB
bmNlc3Rvckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNEFFN0MxOTE3RDIzMjM1MDAwOUZCMzEgLyogRWxlbWVudEFuY2VzdG9ySXRlcmF0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
NEFGQ0ZBNTBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8q
IFVuaXRCZXppZXIuaCAqLzsgfTsKIAkJRTRBRkQwMEIwREFGMzM1NDAwRjVGNTVDIC8qIFNNSUxU
aW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0
QUZEMDA1MERBRjMzNTQwMEY1RjU1QyAvKiBTTUlMVGltZS5jcHAgKi87IH07CiAJCUU0QUZEMDBD
MERBRjMzNTQwMEY1RjU1QyAvKiBTTUlMVGltZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBRkQwMDYwREFGMzM1NDAwRjVGNTVDIC8qIFNNSUxUaW1l
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTU5
OTEsNyArNTk5MSw3IEBACiAJCUU0RDU4RUI1MTdCNERCREMwMENCRENBOCAvKiBTdHlsZVJlc29s
dmVGb3JEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTRENThFQjMxN0I0REJEQzAwQ0JEQ0E4IC8qIFN0eWxlUmVzb2x2ZUZvckRvY3VtZW50
LmggKi87IH07CiAJCUU0RDU4RUI4MTdCNEVEODkwMENCRENBOCAvKiBTdHlsZUZvbnRTaXplRnVu
Y3Rpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0RDU4RUI2MTdCNEVEODkwMENCRENBOCAvKiBTdHlsZUZvbnRTaXplRnVuY3Rpb25zLmNwcCAq
LzsgfTsKIAkJRTRENThFQjkxN0I0RUQ4OTAwQ0JEQ0E4IC8qIFN0eWxlRm9udFNpemVGdW5jdGlv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RDU4
RUI3MTdCNEVEODkwMENCRENBOCAvKiBTdHlsZUZvbnRTaXplRnVuY3Rpb25zLmggKi87IH07Ci0J
CUU0RDU4RUJCMTdCOEYxMjgwMENCRENBOCAvKiBFbGVtZW50VHJhdmVyc2FsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEQ1OEVCQTE3QjhGMTI4MDBD
QkRDQTggLyogRWxlbWVudFRyYXZlcnNhbC5oICovOyB9OworCQlFNEQ1OEVCQjE3QjhGMTI4MDBD
QkRDQTggLyogRWxlbWVudFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTRENThFQkExN0I4RjEyODAwQ0JEQ0E4IC8qIEVsZW1lbnRUcmF2
ZXJzYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFNEQ2ODc3NzBFRDdBRTNEMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RDY4Nzc2MEVEN0FF
M0QwMDZFQTk3OCAvKiBQdXJnZWFibGVCdWZmZXJNYWMuY3BwICovOyB9OwogCQlFNEQ2ODc3OTBF
RDdBRTRGMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEQ2ODc3ODBFRDdBRTRGMDA2RUE5NzggLyogUHVy
Z2VhYmxlQnVmZmVyLmggKi87IH07CiAJCUU0RDk4OEI0MTdCRkQxRjYwMDg0RkI4OCAvKiBUZXh0
Tm9kZVRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTREOTg4QjMxN0JGRDFGNjAwODRGQjg4IC8qIFRleHROb2RlVHJhdmVyc2FsLmggKi87
IH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
aAkocmV2aXNpb24gMTYzMDE0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3Miw2ICsxNzIsNyBAQCBwcml2YXRlOgog
dm9pZCBpc0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQoY29uc3QgSFRNTFBsdWdJbkltYWdlRWxlbWVu
dCYpOyAvLyBDYXRjaCB1bm5lY2Vzc2FyeSBydW50aW1lIGNoZWNrIG9mIHR5cGUga25vd24gYXQg
Y29tcGlsZSB0aW1lLgogaW5saW5lIGJvb2wgaXNIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KGNvbnN0
IEhUTUxQbHVnSW5FbGVtZW50JiBlbGVtZW50KSB7IHJldHVybiBlbGVtZW50LmlzUGx1Z0luSW1h
Z2VFbGVtZW50KCk7IH0KIGlubGluZSBib29sIGlzSFRNTFBsdWdJbkltYWdlRWxlbWVudChjb25z
dCBOb2RlJiBub2RlKSB7IHJldHVybiBub2RlLmlzUGx1Z2luRWxlbWVudCgpICYmIHRvSFRNTFBs
dWdJbkVsZW1lbnQobm9kZSkuaXNQbHVnSW5JbWFnZUVsZW1lbnQoKTsgfQordGVtcGxhdGUgPD4g
aW5saW5lIGJvb2wgaXNFbGVtZW50T2ZUeXBlPGNvbnN0IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ+
KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpIHsgcmV0dXJuIGlzSFRNTFBsdWdJbkltYWdlRWxlbWVu
dChlbGVtZW50KTsgfQogTk9ERV9UWVBFX0NBU1RTKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQpCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MzA4MCkK
KysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0
IEBACisyMDE0LTAxLTMwICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAg
ICAgICBXZWJQYWdlOjpkZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4gaXMgc2xvdwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3OTA1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBQ
TFQgYmVmb3JlOgorICAgICAgICAxMzIuMG1zICAgIDAuOCUJMCwwCSAJIFdlYktpdDo6V2ViUGFn
ZTo6ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKCkKKyAgICAgICAgMTMwLjBtcyAg
ICAwLjglCTAsMAkgCSAgV2ViQ29yZTo6UmVuZGVyVmlldzo6aGl0VGVzdChXZWJDb3JlOjpIaXRU
ZXN0UmVxdWVzdCBjb25zdCYsIFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmKQorICAgICAgICAKKyAg
ICAgICAgQWZ0ZXI6CisgICAgICAgIDcuMG1zICAgIDAuMCUJMCwwCSAJIFdlYktpdDo6V2ViUGFn
ZTo6ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKCkKKyAgICAgICAgMy4wbXMgICAg
MC4wJQkwLDAJIAkgIFdlYkNvcmU6OlJlbmRlclZpZXc6OmhpdFRlc3QoV2ViQ29yZTo6SGl0VGVz
dFJlcXVlc3QgY29uc3QmLCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JikKKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKToKKyAgICAgICAgCisgICAgICAgICAg
ICBJbnN0ZWFkIG9mIHNob3RndW5uaW5nIHRoZSBwYWdlIHdpdGggaGl0IHRlc3RzLCBkbyBhIERP
TSBjcmF3bCBmb3IgcGx1Z2lucworICAgICAgICAgICAgYW5kIGhpdCB0ZXN0IHRoZSBjZW50ZXJz
LgorCiAyMDE0LTAxLTMwICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSB0aGUgQUNDRUxFUkFURURfQ09NUE9TSVRJTkcgZmxhZwpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMTYz
MDE0KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQ29u
dHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RyYWdTZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FbGVtZW50SXRlcmF0b3IuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50SGFuZGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9j
dXNDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb3JtU3RhdGUuaD4KQEAgLTM5OTAs
NyArMzk5MSw2IEBAIHZvaWQgV2ViUGFnZTo6ZGlkRmluaXNoTG9hZChXZWJGcmFtZSogZnIKIAog
I2lmIEVOQUJMRShQUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCiBzdGF0aWMg
aW50IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblNlYXJjaExpbWl0ID0gMzAwMDsKLXN0YXRpYyBp
bnQgcHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoR2FwID0gMjAwOwogc3RhdGljIGZsb2F0
IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblNlYXJjaEJ1Y2tldFNpemUgPSAxLjE7CiBzdGF0aWMg
aW50IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbk1pbmltdW1XaWR0aCA9IDQwMDsKIHN0YXRpYyBp
bnQgcHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luTWluaW11bUhlaWdodCA9IDMwMDsKQEAgLTQwMzMs
NTkgKzQwMzMsNTkgQEAgdm9pZCBXZWJQYWdlOjpkZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZQog
CiAgICAgKyttX251bWJlck9mUHJpbWFyeVNuYXBzaG90RGV0ZWN0aW9uQXR0ZW1wdHM7CiAKLSAg
ICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygp
LT5yZW5kZXJWaWV3KCk7CisgICAgTWFpbkZyYW1lJiBtYWluRnJhbWUgPSBjb3JlUGFnZSgpLT5t
YWluRnJhbWUoKTsKKyAgICBpZiAoIW1haW5GcmFtZS52aWV3KCkpCisgICAgICAgIHJldHVybjsK
KyAgICBpZiAoIW1haW5GcmFtZS52aWV3KCktPnJlbmRlclZpZXcoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIFJlbmRlclZpZXcmIG1haW5SZW5kZXJWaWV3ID0gKm1haW5GcmFtZS52aWV3KCktPnJl
bmRlclZpZXcoKTsKIAogICAgIEludFJlY3Qgc2VhcmNoUmVjdCA9IEludFJlY3QoSW50UG9pbnQo
KSwgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5jb250ZW50c1NpemUoKSk7CiAgICAg
c2VhcmNoUmVjdC5pbnRlcnNlY3QoSW50UmVjdChJbnRQb2ludCgpLCBJbnRTaXplKHByaW1hcnlT
bmFwc2hvdHRlZFBsdWdJblNlYXJjaExpbWl0LCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFy
Y2hMaW1pdCkpKTsKIAogICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6
OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpBbGxv
d0NoaWxkRnJhbWVDb250ZW50IHwgSGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nIHwgSGl0
VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93Q29udGVudCk7CiAKLSAgICBIYXNoU2V0PFJlbmRl
ck9iamVjdCo+IHNlZW5SZW5kZXJlcnM7Ci0gICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogY2Fu
ZGlkYXRlUGx1Z0luID0gMDsKKyAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBjYW5kaWRhdGVQ
bHVnSW4gPSBudWxscHRyOwogICAgIHVuc2lnbmVkIGNhbmRpZGF0ZVBsdWdJbkFyZWEgPSAwOwog
Ci0gICAgZm9yIChpbnQgeCA9IHNlYXJjaFJlY3QueCgpOyB4IDw9IHNlYXJjaFJlY3Qud2lkdGgo
KTsgeCArPSBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hHYXApIHsKLSAgICAgICAgZm9y
IChpbnQgeSA9IHNlYXJjaFJlY3QueSgpOyB5IDw9IHNlYXJjaFJlY3QuaGVpZ2h0KCk7IHkgKz0g
cHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoR2FwKSB7Ci0gICAgICAgICAgICBIaXRUZXN0
UmVzdWx0IGhpdFRlc3RSZXN1bHQgPSBIaXRUZXN0UmVzdWx0KExheW91dFBvaW50KHgsIHkpKTsK
LSAgICAgICAgICAgIHJlbmRlclZpZXctPmhpdFRlc3QocmVxdWVzdCwgaGl0VGVzdFJlc3VsdCk7
Ci0KLSAgICAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBoaXRUZXN0UmVzdWx0LmlubmVyRWxl
bWVudCgpOwotICAgICAgICAgICAgaWYgKCFlbGVtZW50KQorICAgIGZvciAoRnJhbWUqIGZyYW1l
ID0gJm1haW5GcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQo
KSkgeworICAgICAgICBpZiAoIWZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmNvbnRh
aW5zUGx1Z2lucygpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghZnJhbWUt
PmRvY3VtZW50KCkgfHwgIWZyYW1lLT52aWV3KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgZm9yIChhdXRvJiBwbHVnSW5JbWFnZUVsZW1lbnQgOiBkZXNjZW5kYW50c09mVHlwZTxI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50PigqZnJhbWUtPmRvY3VtZW50KCkpKSB7CisgICAgICAgICAg
ICBpZiAocGx1Z0luSW1hZ2VFbGVtZW50LmRpc3BsYXlTdGF0ZSgpID09IEhUTUxQbHVnSW5FbGVt
ZW50OjpQbGF5aW5nKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKTsKLSAgICAgICAgICAg
IGlmICghcmVuZGVyZXIgfHwgIXJlbmRlcmVyLT5pc0JveCgpKQorICAgICAgICAgICAgSW50UmVj
dCBwbHVnSW5SZWN0UmVsYXRpdmVUb1ZpZXcgPSBwbHVnSW5JbWFnZUVsZW1lbnQuY2xpZW50UmVj
dCgpOworICAgICAgICAgICAgaWYgKHBsdWdJblJlY3RSZWxhdGl2ZVRvVmlldy5pc0VtcHR5KCkp
CiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIFJlbmRlckJveCogcmVu
ZGVyQm94ID0gdG9SZW5kZXJCb3gocmVuZGVyZXIpOwotCi0gICAgICAgICAgICBpZiAoIXNlZW5S
ZW5kZXJlcnMuYWRkKHJlbmRlcmVyKS5pc05ld0VudHJ5KQorICAgICAgICAgICAgSW50U2l6ZSBz
Y3JvbGxPZmZzZXQgPSBtYWluRnJhbWUudmlldygpLT5zY3JvbGxPZmZzZXRSZWxhdGl2ZVRvRG9j
dW1lbnQoKTsKKyAgICAgICAgICAgIEludFJlY3QgcGx1Z0luUmVjdFJlbGF0aXZlVG9Ub3BEb2N1
bWVudChwbHVnSW5SZWN0UmVsYXRpdmVUb1ZpZXcubG9jYXRpb24oKSArIHNjcm9sbE9mZnNldCwg
cGx1Z0luUmVjdFJlbGF0aXZlVG9WaWV3LnNpemUoKSk7CisgICAgICAgICAgICBpZiAoIXBsdWdJ
blJlY3RSZWxhdGl2ZVRvVG9wRG9jdW1lbnQuaW50ZXJzZWN0cyhzZWFyY2hSZWN0KSkKICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgaWYgKCFlbGVtZW50LT5pc1BsdWdp
bkVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIEhpdFRl
c3RSZXN1bHQgaGl0VGVzdFJlc3VsdChwbHVnSW5SZWN0UmVsYXRpdmVUb1RvcERvY3VtZW50LmNl
bnRlcigpKTsKKyAgICAgICAgICAgIG1haW5SZW5kZXJWaWV3LmhpdFRlc3QocmVxdWVzdCwgaGl0
VGVzdFJlc3VsdCk7CiAKLSAgICAgICAgICAgIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnSW5FbGVt
ZW50ID0gdG9IVE1MUGx1Z0luRWxlbWVudChlbGVtZW50KTsKLSAgICAgICAgICAgIGlmICghcGx1
Z0luRWxlbWVudC0+aXNQbHVnSW5JbWFnZUVsZW1lbnQoKSkKKyAgICAgICAgICAgIEVsZW1lbnQq
IGVsZW1lbnQgPSBoaXRUZXN0UmVzdWx0LmlubmVyRWxlbWVudCgpOworICAgICAgICAgICAgaWYg
KGVsZW1lbnQgIT0gJnBsdWdJbkltYWdlRWxlbWVudCkKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z0luSW1hZ2VFbGVt
ZW50ID0gdG9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50KHBsdWdJbkVsZW1lbnQpOwotCi0gICAgICAg
ICAgICBpZiAocGx1Z0luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPT0gSFRNTFBsdWdJbkVsZW1l
bnQ6OlBsYXlpbmcpCisgICAgICAgICAgICBhdXRvIHJlbmRlcmVyID0gcGx1Z0luSW1hZ2VFbGVt
ZW50LnJlbmRlcmVyKCk7CisgICAgICAgICAgICBpZiAoIXJlbmRlcmVyIHx8ICFyZW5kZXJlci0+
aXNCb3goKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgaWYgKHJl
bmRlckJveC0+Y29udGVudFdpZHRoKCkgPCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5NaW5pbXVt
V2lkdGggfHwgcmVuZGVyQm94LT5jb250ZW50SGVpZ2h0KCkgPCBwcmltYXJ5U25hcHNob3R0ZWRQ
bHVnSW5NaW5pbXVtSGVpZ2h0KQorICAgICAgICAgICAgYXV0byYgcmVuZGVyQm94ID0gdG9SZW5k
ZXJCb3goKnJlbmRlcmVyKTsKKyAgICAgICAgICAgIGlmIChyZW5kZXJCb3guY29udGVudFdpZHRo
KCkgPCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5NaW5pbXVtV2lkdGggfHwgcmVuZGVyQm94LmNv
bnRlbnRIZWlnaHQoKSA8IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbk1pbmltdW1IZWlnaHQpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIExheW91dFVuaXQgY29udGVu
dEFyZWEgPSByZW5kZXJCb3gtPmNvbnRlbnRXaWR0aCgpICogcmVuZGVyQm94LT5jb250ZW50SGVp
Z2h0KCk7Ci0KKyAgICAgICAgICAgIExheW91dFVuaXQgY29udGVudEFyZWEgPSByZW5kZXJCb3gu
Y29udGVudFdpZHRoKCkgKiByZW5kZXJCb3guY29udGVudEhlaWdodCgpOwogICAgICAgICAgICAg
aWYgKGNvbnRlbnRBcmVhID4gY2FuZGlkYXRlUGx1Z0luQXJlYSAqIHByaW1hcnlTbmFwc2hvdHRl
ZFBsdWdJblNlYXJjaEJ1Y2tldFNpemUpIHsKLSAgICAgICAgICAgICAgICBjYW5kaWRhdGVQbHVn
SW4gPSBwbHVnSW5JbWFnZUVsZW1lbnQ7CisgICAgICAgICAgICAgICAgY2FuZGlkYXRlUGx1Z0lu
ID0gJnBsdWdJbkltYWdlRWxlbWVudDsKICAgICAgICAgICAgICAgICBjYW5kaWRhdGVQbHVnSW5B
cmVhID0gY29udGVudEFyZWE7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0KICAg
ICBpZiAoIWNhbmRpZGF0ZVBsdWdJbikgewogICAgICAgICBMT0coUGx1Z2lucywgIlByaW1hcnkg
UGx1Zy1JbiBEZXRlY3Rpb246IGZhaWwgLSBkaWQgbm90IGZpbmQgYSBjYW5kaWRhdGUgcGx1Zy1p
bi4iKTsKICAgICAgICAgaWYgKG1fbnVtYmVyT2ZQcmltYXJ5U25hcHNob3REZXRlY3Rpb25BdHRl
bXB0cyA8IG1heFByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbkRldGVjdGlvbkF0dGVtcHRzKSB7Cg==
</data>
<flag name="review"
          id="246671"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>