<?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>131510</bug_id>
          
          <creation_ts>2014-04-10 15:17:42 -0700</creation_ts>
          <short_desc>[iOS WebKit2] Implement find-in-page indicator</short_desc>
          <delta_ts>2014-04-11 16:32:02 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>131560</dependson>
    
    <dependson>131563</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>adele</cc>
    
    <cc>alice.barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>enrica</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>999665</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-04-10 15:17:42 -0700</bug_when>
    <thetext>The current implementation is NSWindow based; that won&apos;t work.

&lt;rdar://problem/16547777&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000079</commentid>
    <comment_count>1</comment_count>
      <attachid>229172</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-04-11 15:59:08 -0700</bug_when>
    <thetext>Created attachment 229172
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000082</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-11 16:00:49 -0700</bug_when>
    <thetext>Attachment 229172 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h:40:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h:41:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h:42:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebCore/ChangeLog:9:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 4 in 9 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>1000086</commentid>
    <comment_count>3</comment_count>
      <attachid>229172</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-11 16:04:30 -0700</bug_when>
    <thetext>Comment on attachment 229172
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=229172&amp;action=review

&gt; Source/WebCore/ChangeLog:3
&gt; +        [iOS WebKit2] Yellow find-in-page indicator

Does it being yellow matter?

&gt; Source/WebCore/ChangeLog:9
&gt; +        No new tests (OOPS!).

OOPS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000097</commentid>
    <comment_count>4</comment_count>
      <attachid>229172</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-04-11 16:12:48 -0700</bug_when>
    <thetext>Comment on attachment 229172
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=229172&amp;action=review

Looks good to me.

&gt; Source/WebKit2/WebProcess/WebPage/ios/FindControllerIOS.mm:81
&gt; +{

It would be nice to use Frame&amp; and make Andreas happy :-)

&gt; Source/WebKit2/WebProcess/WebPage/ios/FindControllerIOS.mm:121
&gt; +{

You should probably add a FIXME to deal with subframes in the future.

&gt; Source/WebKit2/WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h:37
&gt; +    void setFrame(WebCore::Frame* frame) { m_frame = frame; }

Reference?

&gt; Source/WebKit2/WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h:42
&gt; +    virtual void didMoveToWebPage(PageOverlay*, WebPage*) override {}

Style requires a space between {}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000106</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-04-11 16:32:02 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/167169</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229172</attachid>
            <date>2014-04-11 15:59:08 -0700</date>
            <delta_ts>2014-04-11 16:12:48 -0700</delta_ts>
            <desc>patch</desc>
            <filename>fip.diff</filename>
            <type>text/plain</type>
            <size>21939</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMGU0Y2M5Li5jOWU4M2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjEg
QEAKIDIwMTQtMDQtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgW2lPUyBXZWJLaXQyXSBZZWxsb3cgZmluZC1pbi1wYWdlIGluZGljYXRvcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNTEwCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xNjU0Nzc3Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZmluZFN0cmlu
Zyk6CisgICAgICAgICogZWRpdGluZy9GaW5kT3B0aW9ucy5oOgorICAgICAgICBBZGQgYSBmaW5k
IG9wdGlvbiB3aGljaCBwcmV2ZW50cyBXZWJDb3JlIGZyb20gcmV2ZWFsaW5nIHRoZSBzZWxlY3Rp
b24KKyAgICAgICAgYWZ0ZXIgc2VsZWN0aW5nIGEgc3VjY2Vzc2Z1bCBmaW5kIG1hdGNoLgorCisy
MDE0LTA0LTExICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCiAgICAg
ICAgIFN1cHBvcnQgZG9jdW1lbnQtcmVsYXRpdmUgYW5kIGN1c3RvbS1mcmFtZSBwYWdlIG92ZXJs
YXlzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE1
NjAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2NTk1NTU2PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCmluZGV4IDJiZWY5ZDIuLjY4OWJhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTMxMjQsNyArMzEyNCwxMCBAQCBib29sIEVkaXRvcjo6ZmluZFN0cmluZyhjb25zdCBT
dHJpbmcmIHRhcmdldCwgRmluZE9wdGlvbnMgb3B0aW9ucykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlv
bihyZXN1bHRSYW5nZS5nZXQoKSwgRE9XTlNUUkVBTSkpOwotICAgIG1fZnJhbWUuc2VsZWN0aW9u
KCkucmV2ZWFsU2VsZWN0aW9uKCk7CisKKyAgICBpZiAoIShvcHRpb25zICYgRG9Ob3RSZXZlYWxT
ZWxlY3Rpb24pKQorICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnJldmVhbFNlbGVjdGlvbigp
OworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRmluZE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRmluZE9wdGlvbnMu
aAppbmRleCA5N2QyMjEyLi43MjkxNDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZpbmRPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GaW5kT3B0aW9u
cy5oCkBAIC0zNiw3ICszNiw4IEBAIGVudW0gRmluZE9wdGlvbkZsYWcgewogICAgIFRyZWF0TWVk
aWFsQ2FwaXRhbEFzV29yZFN0YXJ0ID0gMSA8PCAyLAogICAgIEJhY2t3YXJkcyA9IDEgPDwgMywK
ICAgICBXcmFwQXJvdW5kID0gMSA8PCA0LAotICAgIFN0YXJ0SW5TZWxlY3Rpb24gPSAxIDw8IDUK
KyAgICBTdGFydEluU2VsZWN0aW9uID0gMSA8PCA1LAorICAgIERvTm90UmV2ZWFsU2VsZWN0aW9u
ID0gMSA8PCA2CiB9OwogCiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgRmluZE9wdGlvbnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggZTcyODRkZS4uMTQxMTQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAy
MDE0LTA0LTExICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCisgICAg
ICAgIFtpT1MgV2ViS2l0Ml0gWWVsbG93IGZpbmQtaW4tcGFnZSBpbmRpY2F0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTUxMAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTY1NDc3Nzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RmluZENvbnRyb2xsZXI6OnVwZGF0ZUZpbmRVSUFmdGVyUGFnZVNjcm9sbCk6Cisg
ICAgICAgIFdlYktpdDIgd2lsbCBjbGVhciB0aGUgc2VsZWN0aW9uIGlmIHdlIHJldmVhbCBpdCB3
aGlsZSBub3QgZW5hYmxpbmcgc2VsZWN0aW9uIHBhaW50aW5nLgorICAgICAgICBTbywgYXZvaWQg
cmV2ZWFsaW5nIGl0LgorCisgICAgICAgIChXZWJLaXQ6OkZpbmRDb250cm9sbGVyOjpmaW5kU3Ry
aW5nKToKKyAgICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6OmhpZGVGaW5kSW5kaWNhdG9y
KToKKyAgICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6OndpbGxGaW5kU3RyaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6OmRpZEZhaWxUb0ZpbmRTdHJpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpGaW5kQ29udHJvbGxlcjo6ZGlkSGlkZUZpbmRJbmRpY2F0b3IpOgorICAg
ICAgICAjaWYgb3V0IHRoZSBjcm9zcy1wbGF0Zm9ybSBmaW5kIGluZGljYXRvciBjb2RlIG9uIGlP
UzsgaXQgd2lsbCBiZSByZXBsYWNlZAorICAgICAgICBieSB0aGUgY29kZSBpbiBGaW5kQ29udHJv
bGxlcklPUy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5o
OgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9GaW5kQ29udHJvbGxlcklPUy5t
bTogQWRkZWQuCisgICAgICAgIChoaWdobGlnaHRDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OkZp
bmRJbmRpY2F0b3JPdmVybGF5Q2xpZW50SU9TOjpkcmF3UmVjdCk6CisgICAgICAgIFBhaW50IHRo
ZSBzZWxlY3Rpb24gKHdpdGggYmxhY2sgdGV4dCBmb3JjZWQgb24pLCBhbmQgdGhlIHllbGxvdyBy
b3VuZGVkIHJlY3QKKyAgICAgICAgaW50byB0aGUgaW5kaWNhdG9yIHBhZ2Ugb3ZlcmxheS4KKwor
ICAgICAgICAoV2ViS2l0OjpGaW5kQ29udHJvbGxlcjo6dXBkYXRlRmluZEluZGljYXRvcik6Cisg
ICAgICAgIENyZWF0ZSBvciB1cGRhdGUgYSBzbWFsbCBkb2N1bWVudC1yZWxhdGl2ZSBwYWdlIG92
ZXJsYXkgaW4gdGhlIHNlbGVjdGlvbiByZWN0LgorCisgICAgICAgIChXZWJLaXQ6OkZpbmRDb250
cm9sbGVyOjpoaWRlRmluZEluZGljYXRvcik6CisgICAgICAgIChXZWJLaXQ6OkZpbmRDb250cm9s
bGVyOjp3aWxsRmluZFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OkZpbmRDb250cm9sbGVyOjpk
aWRGYWlsVG9GaW5kU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6OmRp
ZEhpZGVGaW5kSW5kaWNhdG9yKToKKyAgICAgICAgQWRkIHdpbGxGaW5kU3RyaW5nLCBkaWRGYWls
VG9GaW5kU3RyaW5nLCBhbmQgZGlkSGlkZUZpbmRJbmRpY2F0b3IgZnVuY3Rpb25zLgorICAgICAg
ICBUaGV5IGRvIG5vdGhpbmcsIGV4Y2VwdCBvbiBpT1Mgd2hlcmUgdGhleSBhcmUgdXNlZCB0byBw
cmV2ZW50IHNlbGVjdGlvbiBjaGFuZ2UKKyAgICAgICAgbWVzc2FnZXMgZnJvbSBiZWluZyBkaXNw
YXRjaGVkIHdoaWxlIHVzaW5nIGZpbmQtaW4tcGFnZSwgYW5kIHRvIGZvcmNlCisgICAgICAgIFdl
YkNvcmUgdG8gY29tcHV0ZSBhIHNlbGVjdGlvbiByZWN0ICh2aWEgdXBkYXRlQXBwZWFyYW5jZSkg
ZGVzcGl0ZSB0aGUgc2VsZWN0aW9uIG5vdCBiZWluZyBwYWludGVkLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9GaW5kSW5kaWNhdG9yT3ZlcmxheUNsaWVudElPUy5oOgorICAg
ICAgICAoV2ViS2l0OjpGaW5kSW5kaWNhdG9yT3ZlcmxheUNsaWVudElPUzo6c2V0RnJhbWUpOgor
CisyMDE0LTA0LTExICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCiAg
ICAgICAgIFtpT1MgV2ViS2l0Ml0gRXhwb3NlIGEgc2ltcGxpZmllZCB6b29tLXRvLXJlY3QgdG8g
dGhlIFdlYlByb2Nlc3MKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMTU2MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNmM1ODY4OC4uOGU2MGVmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTYyLDYgKzU2Miw3
IEBACiAJCTJEQUYwNkQ3MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250
cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkRBRjA2RDUxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIu
bW0gKi87IH07CiAJCTJEQzZEOUMzMThDNDRBNjEwMDQzQkFENCAvKiBXS1dlYlZpZXdDb250ZW50
UHJvdmlkZXJSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkRDNkQ5QzExOEM0NEE2MTAwNDNCQUQ0IC8qIFdLV2ViVmlld0NvbnRlbnRQcm92
aWRlclJlZ2lzdHJ5LmggKi87IH07CiAJCTJEQzZEOUM0MThDNDRBNjEwMDQzQkFENCAvKiBXS1dl
YlZpZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQzZEOUMyMThDNDRBNjEwMDQzQkFENCAvKiBXS1dlYlZp
ZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5tbSAqLzsgfTsKKwkJMkREMTNCRDUxOEY3REFERDAw
RTEzMEExIC8qIEZpbmRDb250cm9sbGVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkREMTNCRDMxOEY3REFERDAwRTEzMEExIC8qIEZpbmRDb250
cm9sbGVySU9TLm1tICovOyB9OwogCQkyRERFMEFGQTE4Mjk4Q0M5MDBGOTdFQUEgLyogUmVtb3Rl
TGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRERFMEFGODE4Mjk4Q0M5MDBGOTdFQUEgLyogUmVtb3RlTGF5ZXJU
cmVlUHJvcGVydHlBcHBsaWVyLmggKi87IH07CiAJCTJEREUwQUZCMTgyOThDQzkwMEY5N0VBQSAv
KiBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRERFMEFGOTE4Mjk4Q0M5MDBGOTdFQUEgLyogUmVt
b3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1tICovOyB9OwogCQkyRERGNzMxNTE4RTk1MDYw
MDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRERGNzMxMzE4RTk1MDYwMDA0
RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmggKi87IH07CkBAIC0y
MzU3LDYgKzIzNTgsNyBAQAogCQkyREEwNDlCNjE4MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NM
YXllckNBUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNz
TGF5ZXJDQVJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREExRTRGQzE4
QzAyQjZBMDBEQkM5MjkgLyogV0tQREZWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdLUERGVmlldy5oOyBwYXRoID0gaW9zL1dLUERGVmlldy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyREExRTRGRDE4QzAyQjZBMDBEQkM5MjkgLyogV0tQREZWaWV3Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tQREZWaWV3Lm1tOyBw
YXRoID0gaW9zL1dLUERGVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRB
N0ZEQ0IxOEY4ODYyNTAwOERERUQwIC8qIEZpbmRJbmRpY2F0b3JPdmVybGF5Q2xpZW50SU9TLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEZpbmRJbmRpY2F0b3JPdmVybGF5Q2xpZW50SU9TLmg7IHBhdGggPSBp
b3MvRmluZEluZGljYXRvck92ZXJsYXlDbGllbnRJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkRBOTQ0ODYxODg0RTNCNTAwRUQ4NkRCIC8qIFdLVmlld0lPUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLVmlld0lPUy5tbTsgcGF0aCA9IGlv
cy9XS1ZpZXdJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQTk0NDk3MTg4
NEU0RjAwMEVEODZEQiAvKiBOYXRpdmVXZWJLZXlib2FyZEV2ZW50SU9TLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTmF0aXZlV2ViS2V5Ym9hcmRFdmVudElPUy5t
bTsgcGF0aCA9IGlvcy9OYXRpdmVXZWJLZXlib2FyZEV2ZW50SU9TLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyREE5NDQ5ODE4ODRFNEYwMDBFRDg2REIgLyogTmF0aXZlV2ViVG91
Y2hFdmVudElPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5h
dGl2ZVdlYlRvdWNoRXZlbnRJT1MubW07IHBhdGggPSBpb3MvTmF0aXZlV2ViVG91Y2hFdmVudElP
Uy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNzksNiArMjM4MSw3IEBACiAJ
CTJEQUYwNkQ4MThCRDIzQkEwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVy
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgbmFtZSA9IFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubWVzc2FnZXMu
aW47IHBhdGggPSBpb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRDNkQ5QzExOEM0NEE2MTAwNDNCQUQ0IC8q
IFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQzZEOUMyMThDNDRBNjEwMDQzQkFENCAvKiBXS1dlYlZp
ZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyREQxM0JEMzE4RjdEQUREMDBFMTMwQTEgLyogRmluZENv
bnRyb2xsZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBG
aW5kQ29udHJvbGxlcklPUy5tbTsgcGF0aCA9IGlvcy9GaW5kQ29udHJvbGxlcklPUy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRERTBBRjgxODI5OENDOTAwRjk3RUFBIC8qIFJl
bW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkRERTBBRjkxODI5OENDOTAwRjk3RUFBIC8qIFJlbW90ZUxheWVyVHJl
ZVByb3BlcnR5QXBwbGllci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkRERjczMTMxOEU5NTA2MDAwNEY1QTY2IC8qIFJlbW90ZUxheWVyQmFja2lu
Z1N0b3JlQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQ1NDgsNiArNDU1MSw4IEBACiAJCQkJMkRBOTQ0QjYxODg0RUEzNTAwRUQ4NkRCIC8q
IFdlYlBhZ2VJT1MubW0gKi8sCiAJCQkJMjkyMzJERjUxOEIyOURDRTAwRDA1OTZGIC8qIFdLQWNj
ZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RJT1MuaCAqLywKIAkJCQkyOTIzMkRGNjE4QjI5RENFMDBE
MDU5NkYgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdElPUy5tbSAqLywKKwkJCQkyREQx
M0JEMzE4RjdEQUREMDBFMTMwQTEgLyogRmluZENvbnRyb2xsZXJJT1MubW0gKi8sCisJCQkJMkRB
N0ZEQ0IxOEY4ODYyNTAwOERERUQwIC8qIEZpbmRJbmRpY2F0b3JPdmVybGF5Q2xpZW50SU9TLmgg
Ki8sCiAJCQkpOwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC04MzMzLDYgKzgzMzgsNyBAQAogCQkJCTFBMUIwRUI1MThBNDI0OTUwMDM4NDgxQSAvKiBXS05h
dmlnYXRpb25SZXNwb25zZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMEVDOTA3MTI0QzBBQjgw
MDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTBFQzkxMDEyNEMwQUY1MDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5h
Z2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJERDEzQkQ1MThGN0RBREQwMEUxMzBBMSAvKiBG
aW5kQ29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNzg2NUI5MTZDQUM3MTUw
MEFDRTgzQSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyQkI2RDAxNDExN0I0RDAwMEYzNUQ0IC8qIFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBMkQ5MEQzMTI4MUM5NjYwMDFFQjk2MiAvKiBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKaW5kZXggYzZlNmU5Ni4uOTdjYzdjNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xs
ZXIuY3BwCkBAIC0xMjIsNiArMTIyLDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6dXBkYXRlRmlu
ZFVJQWZ0ZXJQYWdlU2Nyb2xsKGJvb2wgZm91bmQsIGNvbnN0IFN0cmluZyYgc3RyaW4KICAgICAg
ICAgICAgIHNlbGVjdGVkRnJhbWUtPnNlbGVjdGlvbigpLmNsZWFyKCk7CiAKICAgICAgICAgaGlk
ZUZpbmRJbmRpY2F0b3IoKTsKKyAgICAgICAgZGlkRmFpbFRvRmluZFN0cmluZygpOwogCiAgICAg
ICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGYWlsVG9GaW5k
U3RyaW5nKHN0cmluZykpOwogICAgIH0gZWxzZSB7CkBAIC0xNzAsMTMgKzE3MSwyMyBAQCB2b2lk
IEZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kVUlBZnRlclBhZ2VTY3JvbGwoYm9vbCBmb3VuZCwg
Y29uc3QgU3RyaW5nJiBzdHJpbgogdm9pZCBGaW5kQ29udHJvbGxlcjo6ZmluZFN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZywgRmluZE9wdGlvbnMgb3B0aW9ucywgdW5zaWduZWQgbWF4TWF0Y2hD
b3VudCkKIHsKICAgICBQbHVnaW5WaWV3KiBwbHVnaW5WaWV3ID0gcGx1Z2luVmlld0ZvckZyYW1l
KG1fd2ViUGFnZS0+bWFpbkZyYW1lKCkpOwotICAgIAorCisgICAgV2ViQ29yZTo6RmluZE9wdGlv
bnMgY29yZU9wdGlvbnMgPSBjb3JlKG9wdGlvbnMpOworCisgICAgLy8gaU9TIHdpbGwgcmV2ZWFs
IHRoZSBzZWxlY3Rpb24gdGhyb3VnaCBhIGRpZmZlcmVudCBtZWNoYW5pc20sIGFuZAorICAgIC8v
IHdlIG5lZWQgdG8gYXZvaWQgc2VuZGluZyB0aGUgbm9uLXBhaW50ZWQgc2VsZWN0aW9uIGNoYW5n
ZSB0byB0aGUgVUkgcHJvY2VzcworICAgIC8vIHNvIHRoYXQgaXQgZG9lcyBub3QgY2xlYXIgdGhl
IHNlbGVjdGlvbiBvdXQgZnJvbSB1bmRlciB1cy4KKyNpZiBQTEFURk9STShJT1MpCisgICAgY29y
ZU9wdGlvbnMgPSBzdGF0aWNfY2FzdDxGaW5kT3B0aW9ucz4oY29yZU9wdGlvbnMgfCBEb05vdFJl
dmVhbFNlbGVjdGlvbik7CisjZW5kaWYKKworICAgIHdpbGxGaW5kU3RyaW5nKCk7CisKICAgICBi
b29sIGZvdW5kOwotICAgIAogICAgIGlmIChwbHVnaW5WaWV3KQotICAgICAgICBmb3VuZCA9IHBs
dWdpblZpZXctPmZpbmRTdHJpbmcoc3RyaW5nLCBjb3JlKG9wdGlvbnMpLCBtYXhNYXRjaENvdW50
KTsKKyAgICAgICAgZm91bmQgPSBwbHVnaW5WaWV3LT5maW5kU3RyaW5nKHN0cmluZywgY29yZU9w
dGlvbnMsIG1heE1hdGNoQ291bnQpOwogICAgIGVsc2UKLSAgICAgICAgZm91bmQgPSBtX3dlYlBh
Z2UtPmNvcmVQYWdlKCktPmZpbmRTdHJpbmcoc3RyaW5nLCBjb3JlKG9wdGlvbnMpKTsKKyAgICAg
ICAgZm91bmQgPSBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPmZpbmRTdHJpbmcoc3RyaW5nLCBjb3Jl
T3B0aW9ucyk7CiAKICAgICBtX3dlYlBhZ2UtPmRyYXdpbmdBcmVhKCktPmRpc3BhdGNoQWZ0ZXJF
bnN1cmluZ1VwZGF0ZWRTY3JvbGxQb3NpdGlvbihXVEY6OmJpbmQoJkZpbmRDb250cm9sbGVyOjp1
cGRhdGVGaW5kVUlBZnRlclBhZ2VTY3JvbGwsIHRoaXMsIGZvdW5kLCBzdHJpbmcsIG9wdGlvbnMs
IG1heE1hdGNoQ291bnQpKTsKIH0KQEAgLTI4Myw2ICsyOTQsNyBAQCB2b2lkIEZpbmRDb250cm9s
bGVyOjpoaWRlRmluZFVJKCkKICAgICBoaWRlRmluZEluZGljYXRvcigpOwogfQogCisjaWYgIVBM
QVRGT1JNKElPUykKIGJvb2wgRmluZENvbnRyb2xsZXI6OnVwZGF0ZUZpbmRJbmRpY2F0b3IoRnJh
bWUqIHNlbGVjdGVkRnJhbWUsIGJvb2wgaXNTaG93aW5nT3ZlcmxheSwgYm9vbCBzaG91bGRBbmlt
YXRlKQogewogICAgIGlmICghc2VsZWN0ZWRGcmFtZSkKQEAgLTMyNCw3ICszMzYsMjEgQEAgdm9p
ZCBGaW5kQ29udHJvbGxlcjo6aGlkZUZpbmRJbmRpY2F0b3IoKQogICAgIFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlIGhhbmRsZTsKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U2V0RmluZEluZGljYXRvcihGbG9hdFJlY3QoKSwgVmVjdG9yPEZsb2F0UmVjdD4oKSwg
bV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBoYW5kbGUsIGZhbHNl
LCB0cnVlKSk7CiAgICAgbV9pc1Nob3dpbmdGaW5kSW5kaWNhdG9yID0gZmFsc2U7CisgICAgZGlk
SGlkZUZpbmRJbmRpY2F0b3IoKTsKK30KKwordm9pZCBGaW5kQ29udHJvbGxlcjo6d2lsbEZpbmRT
dHJpbmcoKQoreworfQorCit2b2lkIEZpbmRDb250cm9sbGVyOjpkaWRGYWlsVG9GaW5kU3RyaW5n
KCkKK3sKK30KKwordm9pZCBGaW5kQ29udHJvbGxlcjo6ZGlkSGlkZUZpbmRJbmRpY2F0b3IoKQor
ewogfQorI2VuZGlmCiAKIHZvaWQgRmluZENvbnRyb2xsZXI6OnNob3dGaW5kSW5kaWNhdG9ySW5T
ZWxlY3Rpb24oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0ZpbmRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RmluZENvbnRyb2xsZXIuaAppbmRleCBhZjBjMGExLi4zM2Y2MjRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuaApAQCAtMzQsMTMg
KzM0LDE4IEBACiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCisjaWYgUExBVEZPUk0oSU9TKQorI2luY2x1ZGUgIkZpbmRJbmRpY2F0b3JPdmVy
bGF5Q2xpZW50SU9TLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNz
IEZyYW1lOwotICAgIGNsYXNzIFJhbmdlOworY2xhc3MgRnJhbWU7CitjbGFzcyBSYW5nZTsKIH0K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFBhZ2VPdmVybGF5OwogY2xhc3MgV2ViUGFn
ZTsKIAogY2xhc3MgRmluZENvbnRyb2xsZXIgOiBwcml2YXRlIFBhZ2VPdmVybGF5OjpDbGllbnQg
ewpAQCAtNzgsNiArODMsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXBkYXRlRmluZFVJQWZ0
ZXJQYWdlU2Nyb2xsKGJvb2wgZm91bmQsIGNvbnN0IFN0cmluZyYsIEZpbmRPcHRpb25zLCB1bnNp
Z25lZCBtYXhNYXRjaENvdW50KTsKIAorICAgIHZvaWQgd2lsbEZpbmRTdHJpbmcoKTsKKyAgICB2
b2lkIGRpZEZhaWxUb0ZpbmRTdHJpbmcoKTsKKyAgICB2b2lkIGRpZEhpZGVGaW5kSW5kaWNhdG9y
KCk7CisKICAgICBXZWJQYWdlKiBtX3dlYlBhZ2U7CiAgICAgUGFnZU92ZXJsYXkqIG1fZmluZFBh
Z2VPdmVybGF5OwogCkBAIC04Niw2ICs5NSwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1No
b3dpbmdGaW5kSW5kaWNhdG9yOwogICAgIFdlYkNvcmU6OkludFJlY3QgbV9maW5kSW5kaWNhdG9y
UmVjdDsKICAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlJhbmdlPj4gbV9maW5kTWF0Y2hlczsK
KworI2lmIFBMQVRGT1JNKElPUykKKyAgICBSZWZQdHI8UGFnZU92ZXJsYXk+IG1fZmluZEluZGlj
YXRvck92ZXJsYXk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbmRJbmRpY2F0b3JPdmVybGF5Q2xp
ZW50SU9TPiBtX2ZpbmRJbmRpY2F0b3JPdmVybGF5Q2xpZW50OworI2VuZGlmCiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvRmluZENvbnRyb2xsZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL0ZpbmRDb250cm9sbGVySU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjc3YjAwYTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL0ZpbmRDb250cm9sbGVySU9TLm1tCkBAIC0wLDAgKzEs
MTQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8Y29uZmlnLmg+CisKKyNpZiBQTEFURk9STShJ
T1MpCisKKyNpbXBvcnQgIkZpbmRDb250cm9sbGVyLmgiCisjaW1wb3J0ICJGaW5kSW5kaWNhdG9y
T3ZlcmxheUNsaWVudElPUy5oIgorI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisj
aW1wb3J0ICJXZWJQYWdlLmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2lt
cG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250
ZXh0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL01haW5GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitjb25zdCBpbnQgY29ybmVyUmFk
aXVzID0gMzsKK2NvbnN0IGludCB0b3RhbEhvcml6b250YWxNYXJnaW4gPSAyOworY29uc3QgaW50
IHRvdGFsVmVydGljYWxNYXJnaW4gPSAxOworCitjb25zdCBkb3VibGUgbWF4aW11bUZpbmRJbmRp
Y2F0b3Jab29tID0gMS42OworCitzdGF0aWMgQ29sb3IgaGlnaGxpZ2h0Q29sb3IoKQoreworICAg
IHJldHVybiBDb2xvcigyNTUsIDIyOCwgNTYsIDI1NSk7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCit2b2lkIEZpbmRJbmRpY2F0b3JPdmVybGF5Q2xpZW50SU9TOjpkcmF3UmVjdChQYWdlT3Zl
cmxheSogb3ZlcmxheSwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBkaXJ0eVJlY3QpCit7CisgICAgLy8gRklYTUU6IFN1cHBvcnQgbXVs
dGlwbGUgdGV4dCByZWN0cy4KKworICAgIEludFJlY3Qgb3ZlcmxheUZyYW1lID0gb3ZlcmxheS0+
ZnJhbWUoKTsKKyAgICBJbnRSZWN0IG92ZXJsYXlCb3VuZHMgPSBvdmVybGF5LT5ib3VuZHMoKTsK
KworICAgIHsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNv
bnRleHQpOworICAgICAgICBQYXRoIGNsaXBQYXRoOworICAgICAgICBjbGlwUGF0aC5hZGRSb3Vu
ZGVkUmVjdChvdmVybGF5Qm91bmRzLCBGbG9hdFNpemUoY29ybmVyUmFkaXVzLCBjb3JuZXJSYWRp
dXMpKTsKKyAgICAgICAgY29udGV4dC5jbGlwKGNsaXBQYXRoKTsKKyAgICAgICAgY29udGV4dC5z
ZXRGaWxsQ29sb3IoaGlnaGxpZ2h0Q29sb3IoKSwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAg
ICAgIGNvbnRleHQuZmlsbFJlY3Qob3ZlcmxheUJvdW5kcyk7CisgICAgfQorCisgICAgeworICAg
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisgICAg
ICAgIGNvbnRleHQudHJhbnNsYXRlKC1vdmVybGF5RnJhbWUueCgpLCAtb3ZlcmxheUZyYW1lLnko
KSk7CisgICAgICAgIG1fZnJhbWUtPnZpZXcoKS0+c2V0UGFpbnRCZWhhdmlvcihQYWludEJlaGF2
aW9yU2VsZWN0aW9uT25seSB8IFBhaW50QmVoYXZpb3JGb3JjZUJsYWNrVGV4dCB8IFBhaW50QmVo
YXZpb3JGbGF0dGVuQ29tcG9zaXRpbmdMYXllcnMpOworICAgICAgICBtX2ZyYW1lLT52aWV3KCkt
PnBhaW50Q29udGVudHMoJmNvbnRleHQsIG92ZXJsYXlGcmFtZSk7CisgICAgICAgIG1fZnJhbWUt
PnZpZXcoKS0+c2V0UGFpbnRCZWhhdmlvcihQYWludEJlaGF2aW9yTm9ybWFsKTsKKyAgICB9Cit9
CisKK2Jvb2wgRmluZENvbnRyb2xsZXI6OnVwZGF0ZUZpbmRJbmRpY2F0b3IoRnJhbWUqIHNlbGVj
dGVkRnJhbWUsIGJvb2wgaXNTaG93aW5nT3ZlcmxheSwgYm9vbCBzaG91bGRBbmltYXRlKQorewor
ICAgIGlmICghc2VsZWN0ZWRGcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgSW50
UmVjdCBtYXRjaFJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHNlbGVjdGVkRnJhbWUtPnNlbGVjdGlv
bigpLnNlbGVjdGlvbkJvdW5kcyhmYWxzZSkpOworICAgIG1hdGNoUmVjdCA9IHNlbGVjdGVkRnJh
bWUtPnZpZXcoKS0+Y29udGVudHNUb1Jvb3RWaWV3KG1hdGNoUmVjdCk7CisgICAgbWF0Y2hSZWN0
LmluZmxhdGVYKHRvdGFsSG9yaXpvbnRhbE1hcmdpbik7CisgICAgbWF0Y2hSZWN0LmluZmxhdGVZ
KHRvdGFsVmVydGljYWxNYXJnaW4pOworCisgICAgaWYgKCFtX2ZpbmRJbmRpY2F0b3JPdmVybGF5
KSB7CisgICAgICAgIG1fZmluZEluZGljYXRvck92ZXJsYXlDbGllbnQgPSBzdGQ6Om1ha2VfdW5p
cXVlPEZpbmRJbmRpY2F0b3JPdmVybGF5Q2xpZW50SU9TPigpOworICAgICAgICBtX2ZpbmRJbmRp
Y2F0b3JPdmVybGF5ID0gUGFnZU92ZXJsYXk6OmNyZWF0ZShtX2ZpbmRJbmRpY2F0b3JPdmVybGF5
Q2xpZW50LmdldCgpLCBQYWdlT3ZlcmxheTo6T3ZlcmxheVR5cGU6OkRvY3VtZW50KTsKKyAgICAg
ICAgbV93ZWJQYWdlLT5pbnN0YWxsUGFnZU92ZXJsYXkobV9maW5kSW5kaWNhdG9yT3ZlcmxheSk7
CisgICAgfQorCisgICAgbV9maW5kSW5kaWNhdG9yT3ZlcmxheUNsaWVudC0+c2V0RnJhbWUoc2Vs
ZWN0ZWRGcmFtZSk7CisKKyAgICBtX2ZpbmRJbmRpY2F0b3JPdmVybGF5LT5zZXRGcmFtZShtYXRj
aFJlY3QpOworICAgIG1fZmluZEluZGljYXRvck92ZXJsYXktPnNldE5lZWRzRGlzcGxheSgpOwor
CisgICAgbV93ZWJQYWdlLT56b29tVG9SZWN0KG1hdGNoUmVjdCwgbV93ZWJQYWdlLT5taW5pbXVt
UGFnZVNjYWxlRmFjdG9yKCksIHN0ZDo6bWluKG1fd2ViUGFnZS0+bWF4aW11bVBhZ2VTY2FsZUZh
Y3RvcigpLCBtYXhpbXVtRmluZEluZGljYXRvclpvb20pKTsKKyAgICBtX2ZpbmRJbmRpY2F0b3JS
ZWN0ID0gbWF0Y2hSZWN0OworICAgIG1faXNTaG93aW5nRmluZEluZGljYXRvciA9IHRydWU7Cisg
ICAgCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgRmluZENvbnRyb2xsZXI6OmhpZGVGaW5k
SW5kaWNhdG9yKCkKK3sKKyAgICBpZiAoIW1faXNTaG93aW5nRmluZEluZGljYXRvcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV93ZWJQYWdlLT51bmluc3RhbGxQYWdlT3ZlcmxheShtX2ZpbmRJ
bmRpY2F0b3JPdmVybGF5LmdldCgpKTsKKyAgICBtX2ZpbmRJbmRpY2F0b3JPdmVybGF5ID0gbnVs
bHB0cjsKKyAgICBtX2lzU2hvd2luZ0ZpbmRJbmRpY2F0b3IgPSBmYWxzZTsKKworICAgIGRpZEhp
ZGVGaW5kSW5kaWNhdG9yKCk7Cit9CisKK3ZvaWQgRmluZENvbnRyb2xsZXI6OndpbGxGaW5kU3Ry
aW5nKCkKK3sKKyAgICBtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5lZGl0b3IoKS5zZXRJZ25vcmVD
b21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSh0cnVlKTsKKyAgICBtX3dlYlBhZ2UtPm1haW5GcmFt
ZSgpLT5zZWxlY3Rpb24oKS5zZXRVcGRhdGVBcHBlYXJhbmNlRW5hYmxlZCh0cnVlKTsKK30KKwor
dm9pZCBGaW5kQ29udHJvbGxlcjo6ZGlkRmFpbFRvRmluZFN0cmluZygpCit7CisgICAgbV93ZWJQ
YWdlLT5tYWluRnJhbWUoKS0+c2VsZWN0aW9uKCkuc2V0VXBkYXRlQXBwZWFyYW5jZUVuYWJsZWQo
ZmFsc2UpOworICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPmVkaXRvcigpLnNldElnbm9yZUNv
bXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlKGZhbHNlKTsKK30KKwordm9pZCBGaW5kQ29udHJvbGxl
cjo6ZGlkSGlkZUZpbmRJbmRpY2F0b3IoKQoreworICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCkt
PnNlbGVjdGlvbigpLnNldFVwZGF0ZUFwcGVhcmFuY2VFbmFibGVkKGZhbHNlKTsKKyAgICBtX3dl
YlBhZ2UtPm1haW5GcmFtZSgpLT5lZGl0b3IoKS5zZXRJZ25vcmVDb21wb3NpdGlvblNlbGVjdGlv
bkNoYW5nZShmYWxzZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvRmluZEluZGlj
YXRvck92ZXJsYXlDbGllbnRJT1MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvRmluZEluZGljYXRvck92ZXJsYXlDbGllbnRJT1MuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5hZWY0Y2ZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9GaW5kSW5kaWNhdG9yT3ZlcmxheUNsaWVudElPUy5o
CkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZpbmRJbmRpY2F0b3JPdmVy
bGF5Q2xpZW50SU9TX2gKKyNkZWZpbmUgRmluZEluZGljYXRvck92ZXJsYXlDbGllbnRJT1NfaAor
CisjaW1wb3J0ICJQYWdlT3ZlcmxheS5oIgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2lt
cG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIEZpbmRJbmRpY2F0b3JPdmVybGF5Q2xpZW50SU9TIDogcHVibGljIFBhZ2VPdmVybGF5
OjpDbGllbnQgeworcHVibGljOgorICAgIHZvaWQgc2V0RnJhbWUoV2ViQ29yZTo6RnJhbWUqIGZy
YW1lKSB7IG1fZnJhbWUgPSBmcmFtZTsgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBw
YWdlT3ZlcmxheURlc3Ryb3llZChQYWdlT3ZlcmxheSopIG92ZXJyaWRlIHt9CisgICAgdmlydHVh
bCB2b2lkIHdpbGxNb3ZlVG9XZWJQYWdlKFBhZ2VPdmVybGF5KiwgV2ViUGFnZSopIG92ZXJyaWRl
IHt9CisgICAgdmlydHVhbCB2b2lkIGRpZE1vdmVUb1dlYlBhZ2UoUGFnZU92ZXJsYXkqLCBXZWJQ
YWdlKikgb3ZlcnJpZGUge30KKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1JlY3QoUGFnZU92ZXJsYXkq
LCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBkaXJ0
eVJlY3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBtb3VzZUV2ZW50KFBhZ2VPdmVybGF5
KiwgY29uc3QgV2ViTW91c2VFdmVudCYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IG1fZnJhbWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEZpbmRJbmRpY2F0b3JPdmVybGF5Q2xpZW50SU9TX2gK
</data>
<flag name="review"
          id="253537"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>