<?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>47084</bug_id>
          
          <creation_ts>2010-10-04 06:45:13 -0700</creation_ts>
          <short_desc>[EFL] Support viewport configuration and add new arguments for WebKit EFL</short_desc>
          <delta_ts>2010-10-13 05:15:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>
          <dependson>46772</dependson>
    
    <dependson>47395</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>antognolli+webkit</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joone</cc>
    
    <cc>kenneth</cc>
    
    <cc>leandro</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>288913</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2010-10-04 06:45:13 -0700</bug_when>
    <thetext>targetDensityDpi argument was added to Viewport Arguments. So, EFL port need to support that as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290011</commentid>
    <comment_count>1</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2010-10-05 18:07:14 -0700</bug_when>
    <thetext>To adjust viewport configuration to efl port, I think current structure of viewport handling needs to be changed. I am considering how to change it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290020</commentid>
    <comment_count>2</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2010-10-05 18:18:40 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; I think current structure of viewport handling needs to be changed.

I mean viewport structure needs to be changed in Efl port. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290908</commentid>
    <comment_count>3</comment_count>
      <attachid>70064</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2010-10-07 03:48:47 -0700</bug_when>
    <thetext>Created attachment 70064
Prototype Patch

I make a prototype patch according to the changed viewport implementation in WebCore. I have considered how to set desktop_width, device_width, device_height and available_size. But, I don&apos;t find appropriate solution yet.

For now, I use windowRect() for the device_width/height and available_size.
And, I don&apos;t know how to use dpi value. So, I just let ewk_view store the dpi value.

I&apos;d like to get any advices related to viewport implementation. I continue to think this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291025</commentid>
    <comment_count>4</comment_count>
    <who name="Joone Hur">joone</who>
    <bug_when>2010-10-07 08:30:38 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=70064) [details]
&gt; Prototype Patch
&gt; 
&gt; I make a prototype patch according to the changed viewport implementation in WebCore. I have considered how to set desktop_width, device_width, device_height and available_size. But, I don&apos;t find appropriate solution yet.

The deskopWidth means the width of the viewport that works well for most webpages designed for a desktop browser. Usually, we use 980px for this like Safari on the iPhone.

The device_width/device_height is the size of the screen, but these values should be changed when the screen is rotated.

The available size means the area of the visible viewport. So in case of the iPhone, the width of visible viewport is the device width.

&gt; 
&gt; For now, I use windowRect() for the device_width/height and available_size.
&gt; And, I don&apos;t know how to use dpi value. So, I just let ewk_view store the dpi value.

I think chrome()-&gt;pageRect() would be better for getting the available_size.
In case of getting the device_width/height, you can use the screen size for them.
In addition, WebCore::findConfigurationForViewportData has the DPI parameter for computing the devicePixelRatio of the ViewportAttributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291062</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-07 09:50:11 -0700</bug_when>
    <thetext>Please keep in mind that most ports now call it ViewportAttributes and not ViewportConfiguration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292918</commentid>
    <comment_count>6</comment_count>
      <attachid>70526</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2010-10-12 06:01:27 -0700</bug_when>
    <thetext>Created attachment 70526
Patch

I modify previous patch. 

I use pageRect() to set availableSize, on the other hand, windowRect() is used by deviceWidth.

    149 +    int available_width = (int) priv-&gt;page-&gt;chrome()-&gt;client()-&gt;pageRect().width();
    150 +    int available_height = (int) priv-&gt;page-&gt;chrome()-&gt;client()-&gt;pageRect().height();
    151 +
    152 +    int device_width = (int) priv-&gt;page-&gt;chrome()-&gt;client()-&gt;windowRect().width();
    153 +    int device_height = (int) priv-&gt;page-&gt;chrome()-&gt;client()-&gt;windowRect().height();

But, width of pageRect() is 20 pixel less than windowRect()&apos;s because EWebLauncher has a pink rectangle inside window.
The computeViewportAttributes() returns the biggest width value between parameters. Eventually, deviceWidth is returned by the computeViewportAttributes(). In mobile sites, EWebLauncher doesn&apos;t fit the page perfectly because deviceWidth is 20 pixel bigger than pageRect(). However, I think this is right for other device. As you know, other device doesn&apos;t has internal rectangle like EWebLauncher.


BTW, I wonder why default dpi value is 160.

    result.devicePixelRatio = float(deviceDPI / 160.0);

I made a dpi method in Bug 47537. However, the method returns 87 on my linux PC. As you know, 87 is less than 160. Thus, deviceWidth is multiplied by the ratio. Eventually, Layout is broken.

    // Resolve non-&apos;auto&apos; width and height to pixel values.
    if (deviceDPI != 1.0) {
        deviceWidth /= result.devicePixelRatio;
        deviceHeight /= result.devicePixelRatio;

        if (args.width != ViewportArguments::ValueAuto)
            args.width /= result.devicePixelRatio;
        if (args.height != ViewportArguments::ValueAuto)
            args.height /= result.devicePixelRatio;
    }

For the time being, I hardcode the dpi value to 160.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292932</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-12 07:11:05 -0700</bug_when>
    <thetext>
&gt; BTW, I wonder why default dpi value is 160.
&gt; 
&gt;     result.devicePixelRatio = float(deviceDPI / 160.0);
&gt; 
&gt; I made a dpi method in Bug 47537. However, the method returns 87 on my linux PC. As you know, 87 is less than 160. Thus, deviceWidth is multiplied by the ratio. Eventually, Layout is broken.
&gt; 
&gt;     // Resolve non-&apos;auto&apos; width and height to pixel values.
&gt;     if (deviceDPI != 1.0) {
&gt;         deviceWidth /= result.devicePixelRatio;
&gt;         deviceHeight /= result.devicePixelRatio;
&gt; 
&gt;         if (args.width != ViewportArguments::ValueAuto)
&gt;             args.width /= result.devicePixelRatio;
&gt;         if (args.height != ViewportArguments::ValueAuto)
&gt;             args.height /= result.devicePixelRatio;
&gt;     }
&gt; 
&gt; For the time being, I hardcode the dpi value to 160.

The device dpi handling needs work in WebCore - it is not working yet. It is 160 as that is what the iPhone (the device introducing the viewport meta tag) uses. Thus, using 160 doesnt break pages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293360</commentid>
    <comment_count>8</comment_count>
      <attachid>70526</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-13 05:15:06 -0700</bug_when>
    <thetext>Comment on attachment 70526
Patch

Clearing flags on attachment: 70526

Committed r69650: &lt;http://trac.webkit.org/changeset/69650&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293361</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-13 05:15:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70064</attachid>
            <date>2010-10-07 03:48:47 -0700</date>
            <delta_ts>2010-10-12 06:01:27 -0700</delta_ts>
            <desc>Prototype Patch</desc>
            <filename>patch-viewport.txt</filename>
            <type>text/plain</type>
            <size>13462</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
aW5kZXggODFkOWE2YS4uNzc5ZDM0OCAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0xMC0wNyAg
R3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtFRkxdIFN1cHBvcnQgdmlld3BvcnQg
Y29uZmlndXJhdGlvbiBhbmQgYWRkIG5ldyBhcmd1bWVudHMgZm9yIFdlYktpdCBFRkwKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MDg0CisKKyAgICAg
ICAgT3BlcmEgc3BlYyByZWdhcmRpbmcgdG8gdmlld3BvcnQgbWV0YSB0YWcgd2FzIGFkanVzdGVk
IHRvIFdlYkNvcmUuICBTbywgRUZMIHBvcnQgbmVlZHMgdG8gYmUgbW9kaWZpZWQKKyAgICAgICAg
YWNjb3JkaW5nIHRvIHRoZSBjaGFuZ2VzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6ZGlz
cGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjpkaXNwYXRjaERpZENvbW1pdExvYWQpOgorICAgICAgICAqIGV3ay9ld2tfcHJpdmF0
ZS5oOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfcHJp
dl9uZXcpOgorICAgICAgICAoX2V3a192aWV3X3ZpZXdwb3J0X2NvbmZpZ3VyYXRpb25fZ2V0KToK
KyAgICAgICAgKGV3a192aWV3X3ZpZXdwb3J0X3NldCk6CisgICAgICAgIChld2tfdmlld192aWV3
cG9ydF9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfZGV2aWNlX3BpeGVsX3JhdGlvX2dldCk6Cisg
ICAgICAgICogZXdrL2V3a192aWV3Lmg6CisKIDIwMTAtMTAtMDUgIFJ5dWFuIENob2kgIDxyeXVh
bi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMu
CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5j
cHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKaW5kZXgg
MWYxYzFlYy4uYzhmZWMyYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50RWZsLmNwcApAQCAtNTE3LDcgKzUxNyw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpj
aG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlQ2hvb3NlciopCiAK
IHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZShjb25z
dCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25zdAogewotICAgIGV3a192aWV3X3Zp
ZXdwb3J0X3NldChtX3ZpZXcsIGFyZ3VtZW50cy53aWR0aCwgYXJndW1lbnRzLmhlaWdodCwgYXJn
dW1lbnRzLmluaXRpYWxTY2FsZSwgYXJndW1lbnRzLm1pbmltdW1TY2FsZSwgYXJndW1lbnRzLm1h
eGltdW1TY2FsZSwgYXJndW1lbnRzLnVzZXJTY2FsYWJsZSk7CisgICAgZXdrX3ZpZXdfdmlld3Bv
cnRfc2V0KG1fdmlldywgYXJndW1lbnRzKTsKIH0KIAogYm9vbCBDaHJvbWVDbGllbnRFZmw6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKZGlmZiAtLWdpdCBhL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggNjFhNzg5NC4uMDFm
ZTEyYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5jcHAKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5jcHAKQEAgLTYyMSw3ICs2MjEsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpkaXNwYXRjaERpZENvbW1pdExvYWQoKQogICAgIGV3a192aWV3X3VyaV9jaGFuZ2VkKG1fdmll
dyk7CiAKICAgICBWaWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHM7Ci0gICAgZXdrX3ZpZXdfdmll
d3BvcnRfc2V0KG1fdmlldywgYXJndW1lbnRzLndpZHRoLCBhcmd1bWVudHMuaGVpZ2h0LCBhcmd1
bWVudHMuaW5pdGlhbFNjYWxlLCBhcmd1bWVudHMubWluaW11bVNjYWxlLCBhcmd1bWVudHMubWF4
aW11bVNjYWxlLCBhcmd1bWVudHMudXNlclNjYWxhYmxlKTsKKyAgICBld2tfdmlld192aWV3cG9y
dF9zZXQobV92aWV3LCBhcmd1bWVudHMpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZs
L2V3ay9ld2tfcHJpdmF0ZS5oIGIvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAppbmRleCA1
Yjg5YjhjLi5jZTJmOTQzIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5o
CisrKyBiL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGV3a192aWV3X2ZyYW1lX2NyZWF0ZShFdmFz
X09iamVjdCAqbywgRXZhc19PYmplYwogV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4g
ZXdrX3ZpZXdfcGx1Z2luX2NyZWF0ZShFdmFzX09iamVjdCogbywgRXZhc19PYmplY3QqIGZyYW1l
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBwbHVnaW5TaXplLCBXZWJDb3JlOjpIVE1MUGx1Z0lu
RWxlbWVudCogZWxlbWVudCwgY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBjb25zdCBXVEY6OlZl
Y3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3Ry
aW5nPiYgcGFyYW1WYWx1ZXMsIGNvbnN0IFdURjo6U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBsb2Fk
TWFudWFsbHkpOwogCiB2b2lkIGV3a192aWV3X3BvcHVwX25ldyhFdmFzX09iamVjdCAqbywgV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQsIGludCBzZWxlY3RlZCwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcmVjdCk7Ci12b2lkIGV3a192aWV3X3ZpZXdwb3J0X3NldChFdmFzX09iamVj
dCAqbywgZmxvYXQgdywgZmxvYXQgaCwgZmxvYXQgaW5pdF9zY2FsZSwgZmxvYXQgbWF4X3NjYWxl
LCBmbG9hdCBtaW5fc2NhbGUsIGZsb2F0IHVzZXJfc2NhbGFibGUpOwordm9pZCBld2tfdmlld192
aWV3cG9ydF9zZXQoRXZhc19PYmplY3QgKm8sIGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1l
bnRzJiBhcmd1bWVudHMpOwogCiB2b2lkIGV3a192aWV3X2Rvd25sb2FkX3JlcXVlc3QoRXZhc19P
YmplY3QgKm8sIEV3a19Eb3dubG9hZCAqZG93bmxvYWQpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXgg
ZjcyYTllNy4uMWViOTMxOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CisrKyBiL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2lu
Y2x1ZGUgImV3a192aWV3LmgiCiAKICNpbmNsdWRlICJhcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudEVm
bC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiQ29udGV4
dE1lbnVDb250cm9sbGVyLmgiCkBAIC01NCw2ICs1NSw4IEBACiAjZGVmaW5lIFpPT01fTUlOICgw
LjA1KQogI2RlZmluZSBaT09NX01BWCAoNC4wKQogCisjZGVmaW5lIERFVklDRV9QSVhFTF9SQVRJ
TyAoMS4wKQorCiBzdGF0aWMgY29uc3QgY2hhciBFV0tfVklFV19UWVBFX1NUUltdID0gIkVXS19W
aWV3IjsKIAogc3RhdGljIGNvbnN0IHNpemVfdCBFV0tfVklFV19SRVBBSU5UU19TSVpFX0lOSVRJ
QUwgPSAzMjsKQEAgLTY4LDYgKzcxLDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEg
ewogICAgIFdlYkNvcmU6OlBhZ2UqIHBhZ2U7CiAgICAgV2ViQ29yZTo6U2V0dGluZ3MqIHBhZ2Vf
c2V0dGluZ3M7CiAgICAgV2ViQ29yZTo6RnJhbWUqIG1haW5fZnJhbWU7CisgICAgV2ViQ29yZTo6
Vmlld3BvcnRBcmd1bWVudHMgdmlld3BvcnRfYXJndW1lbnRzOwogICAgIEV3a19IaXN0b3J5KiBo
aXN0b3J5OwogICAgIHN0cnVjdCB7CiAgICAgICAgIEV3a19NZW51IG1lbnU7CkBAIC0xMTYsMTgg
KzEyMCwxMSBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgICAgIEVpbmFf
Qm9vbCBvZmZsaW5lX2FwcF9jYWNoZTogMTsKICAgICAgICAgRWluYV9Cb29sIHBhZ2VfY2FjaGU6
IDE7CiAgICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICBmbG9hdCB3OwotICAgICAgICAgICAg
ZmxvYXQgaDsKLSAgICAgICAgICAgIGZsb2F0IGluaXRfc2NhbGU7Ci0gICAgICAgICAgICBmbG9h
dCBtaW5fc2NhbGU7Ci0gICAgICAgICAgICBmbG9hdCBtYXhfc2NhbGU7Ci0gICAgICAgICAgICBm
bG9hdCB1c2VyX3NjYWxhYmxlOwotICAgICAgICB9IHZpZXdwb3J0OwotICAgICAgICBzdHJ1Y3Qg
ewogICAgICAgICAgICAgZmxvYXQgbWluX3NjYWxlOwogICAgICAgICAgICAgZmxvYXQgbWF4X3Nj
YWxlOwogICAgICAgICAgICAgRWluYV9Cb29sIHVzZXJfc2NhbGFibGU6MTsKICAgICAgICAgfSB6
b29tX3JhbmdlOworICAgICAgICBmbG9hdCBkZXZpY2VfcGl4ZWxfcmF0aW87CiAgICAgfSBzZXR0
aW5nczsKICAgICBzdHJ1Y3QgewogICAgICAgICBzdHJ1Y3QgewpAQCAtNjE5LDYgKzYxNiw3IEBA
IHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmll
d19TbWFydF9EYXRhKiBzZCkKICAgICAvLyB0aGlzIGZ1bmN0aW9uYWxpdHkgd2lsbCBiZSBtb2Rp
ZmllZCBieSB0aGUgc2NhbGUgem9vbSBwYXRjaC4KICAgICBwcml2LT5zZXR0aW5ncy56b29tX3Jh
bmdlLm1pbl9zY2FsZSA9IFpPT01fTUlOOwogICAgIHByaXYtPnNldHRpbmdzLnpvb21fcmFuZ2Uu
bWF4X3NjYWxlID0gWk9PTV9NQVg7CisgICAgcHJpdi0+c2V0dGluZ3MuZGV2aWNlX3BpeGVsX3Jh
dGlvID0gREVWSUNFX1BJWEVMX1JBVElPOwogICAgIHByaXYtPnNldHRpbmdzLnpvb21fcmFuZ2Uu
dXNlcl9zY2FsYWJsZSA9IEVJTkFfVFJVRTsKIAogICAgIHByaXYtPm1haW5fZnJhbWUgPSBfZXdr
X3ZpZXdfY29yZV9mcmFtZV9uZXcoc2QsIHByaXYsIDApLmdldCgpOwpAQCAtOTYzLDYgKzk2MSwy
NyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfem9vbV9hbmltYXRpb25fc3RhcnQoRXdrX1ZpZXdf
U21hcnRfRGF0YSogc2QpCiAgICAgICAgIChfZXdrX3ZpZXdfem9vbV9hbmltYXRvcl9jYiwgc2Qp
OwogfQogCitzdGF0aWMgV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uIF9ld2tfdmlld192
aWV3cG9ydF9jb25maWd1cmF0aW9uX2dldChFdmFzX09iamVjdCogbykKK3sKKyAgICBFV0tfVklF
V19TRF9HRVQobywgc2QpOworICAgIEVXS19WSUVXX1BSSVZfR0VUKHNkLCBwcml2KTsKKworICAg
IGludCBkZXNrdG9wX3dpZHRoID0gOTYwOworICAgIGludCBkZXZpY2VfZHBpID0gMTYwOworCisg
ICAgaW50IGF2YWlsYWJsZV93aWR0aCA9IChpbnQpIHByaXYtPnBhZ2UtPmNocm9tZSgpLT5jbGll
bnQoKS0+d2luZG93UmVjdCgpLndpZHRoKCk7CisgICAgaW50IGF2YWlsYWJsZV9oZWlnaHQgPSAo
aW50KSBwcml2LT5wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPndpbmRvd1JlY3QoKS5oZWlnaHQo
KTsKKworICAgIGludCBkZXZpY2Vfd2lkdGggPSAoaW50KSBwcml2LT5wYWdlLT5jaHJvbWUoKS0+
Y2xpZW50KCktPndpbmRvd1JlY3QoKS53aWR0aCgpOworICAgIGludCBkZXZpY2VfaGVpZ2h0ID0g
KGludCkgcHJpdi0+cGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT53aW5kb3dSZWN0KCkuaGVpZ2h0
KCk7CisKKyAgICBJbnRTaXplIGF2YWlsYWJsZV9zaXplID0gSW50U2l6ZShhdmFpbGFibGVfd2lk
dGgsIGF2YWlsYWJsZV9oZWlnaHQpOworICAgIFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlv
biBjb25mID0gV2ViQ29yZTo6ZmluZENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydERhdGEocHJpdi0+
dmlld3BvcnRfYXJndW1lbnRzLCBkZXNrdG9wX3dpZHRoLCBkZXZpY2Vfd2lkdGgsIGRldmljZV9o
ZWlnaHQsIGRldmljZV9kcGksIGF2YWlsYWJsZV9zaXplKTsKKworICAgIHJldHVybiBjb25mOwor
fQorCisKIC8qKgogICogU2V0cyB0aGUgc21hcnQgY2xhc3MgYXBpIHdpdGhvdXQgYW55IGJhY2tp
bmcgc3RvcmUsIGVuYWJsaW5nIHZpZXcKICAqIHRvIGJlIGluaGVyaXRlZC4KQEAgLTQwNDYsMjcg
KzQwNjUsMTYgQEAgdm9pZCBld2tfdmlld19kb3dubG9hZF9yZXF1ZXN0KEV2YXNfT2JqZWN0KiBv
LCBFd2tfRG93bmxvYWQqIGRvd25sb2FkKQogICogUmVwb3J0cyB0aGUgdmlld3BvcnQgaGFzIGNo
YW5nZWQuCiAgKgogICogQHBhcmFtIG8gdmlldy4KLSAqIEBwYXJhbSB3IHdpZHRoLgotICogQHBh
cmFtIGggaGVpZ2h0LgotICogQHBhcmFtIGluaXRfc2NhbGUgaW5pdGlhbFNjYWxlIHZhbHVlLgot
ICogQHBhcmFtIG1heF9zY2FsZSBtYXhpbXVtU2NhbGUgdmFsdWUuCi0gKiBAcGFyYW0gbWluX3Nj
YWxlIG1pbmltdW1TY2FsZSB2YWx1ZS4KLSAqIEBwYXJhbSB1c2VyX3NjYWxhYmxlIHVzZXJzY2Fs
YWJsZSBmbGFnLgorICogQHBhcmFtIGFyZ3VtZW50cyB2aWV3cG9ydCBhcmd1bWVudC4KICAqCiAg
KiBFbWl0cyBzaWduYWw6ICJ2aWV3cG9ydCxjaGFuZ2VkIiB3aXRoIG5vIHBhcmFtZXRlcnMuCiAg
Ki8KLXZvaWQgZXdrX3ZpZXdfdmlld3BvcnRfc2V0KEV2YXNfT2JqZWN0ICpvLCBmbG9hdCB3LCBm
bG9hdCBoLCBmbG9hdCBpbml0X3NjYWxlLCBmbG9hdCBtYXhfc2NhbGUsIGZsb2F0IG1pbl9zY2Fs
ZSwgZmxvYXQgdXNlcl9zY2FsYWJsZSkKK3ZvaWQgZXdrX3ZpZXdfdmlld3BvcnRfc2V0KEV2YXNf
T2JqZWN0ICpvLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKQog
ewogICAgIEVXS19WSUVXX1NEX0dFVChvLCBzZCk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc2Qs
IHByaXYpOwogCi0gICAgcHJpdi0+c2V0dGluZ3Mudmlld3BvcnQudyA9IHc7Ci0gICAgcHJpdi0+
c2V0dGluZ3Mudmlld3BvcnQuaCA9IGg7Ci0gICAgcHJpdi0+c2V0dGluZ3Mudmlld3BvcnQuaW5p
dF9zY2FsZSA9IGluaXRfc2NhbGU7Ci0gICAgcHJpdi0+c2V0dGluZ3Mudmlld3BvcnQubWluX3Nj
YWxlID0gbWluX3NjYWxlOwotICAgIHByaXYtPnNldHRpbmdzLnZpZXdwb3J0Lm1heF9zY2FsZSA9
IG1heF9zY2FsZTsKLSAgICBwcml2LT5zZXR0aW5ncy52aWV3cG9ydC51c2VyX3NjYWxhYmxlID0g
dXNlcl9zY2FsYWJsZTsKLQorICAgIHByaXYtPnZpZXdwb3J0X2FyZ3VtZW50cyA9IGFyZ3VtZW50
czsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG8sICJ2aWV3cG9ydCxjaGFu
Z2VkIiwgMCk7CiB9CiAKQEAgLTQwODEsMjMgKzQwODksMjcgQEAgdm9pZCBld2tfdmlld192aWV3
cG9ydF9zZXQoRXZhc19PYmplY3QgKm8sIGZsb2F0IHcsIGZsb2F0IGgsIGZsb2F0IGluaXRfc2Nh
bGUsIGYKICAqIEBwYXJhbSBtaW5fc2NhbGUgbWluaW11bSBTY2FsZSB2YWx1ZS4KICAqIEBwYXJh
bSB1c2VyX3NjYWxhYmxlIHVzZXIgU2NhbGFibGUgdmFsdWUuCiAgKi8KLXZvaWQgZXdrX3ZpZXdf
dmlld3BvcnRfZ2V0KEV2YXNfT2JqZWN0ICpvLCBmbG9hdCogdywgZmxvYXQqIGgsIGZsb2F0KiBp
bml0X3NjYWxlLCBmbG9hdCogbWF4X3NjYWxlLCBmbG9hdCogbWluX3NjYWxlLCBmbG9hdCogdXNl
cl9zY2FsYWJsZSkKK3ZvaWQgZXdrX3ZpZXdfdmlld3BvcnRfZ2V0KEV2YXNfT2JqZWN0ICpvLCBm
bG9hdCogdywgZmxvYXQqIGgsIGZsb2F0KiBpbml0X3NjYWxlLCBmbG9hdCogbWF4X3NjYWxlLCBm
bG9hdCogbWluX3NjYWxlLCBmbG9hdCogZGV2aWNlX3BpeGVsX3JhdGlvLCBmbG9hdCogdXNlcl9z
Y2FsYWJsZSkKIHsKICAgICBFV0tfVklFV19TRF9HRVQobywgc2QpOwogICAgIEVXS19WSUVXX1BS
SVZfR0VUKHNkLCBwcml2KTsKIAorICAgIFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbiBj
b25mID0gX2V3a192aWV3X3ZpZXdwb3J0X2NvbmZpZ3VyYXRpb25fZ2V0KG8pOworCiAgICAgaWYg
KHcpCi0gICAgICAgICp3ID0gcHJpdi0+c2V0dGluZ3Mudmlld3BvcnQudzsKKyAgICAgICAgKncg
PSBjb25mLmxheW91dFZpZXdwb3J0LndpZHRoKCk7CiAgICAgaWYgKGgpCi0gICAgICAgICpoID0g
cHJpdi0+c2V0dGluZ3Mudmlld3BvcnQuaDsKKyAgICAgICAgKmggPSBjb25mLmxheW91dFZpZXdw
b3J0LmhlaWdodCgpOwogICAgIGlmIChpbml0X3NjYWxlKQotICAgICAgICAqaW5pdF9zY2FsZSA9
IHByaXYtPnNldHRpbmdzLnZpZXdwb3J0LmluaXRfc2NhbGU7CisgICAgICAgICppbml0X3NjYWxl
ID0gY29uZi5pbml0aWFsU2NhbGU7CiAgICAgaWYgKG1heF9zY2FsZSkKLSAgICAgICAgKm1heF9z
Y2FsZSA9IHByaXYtPnNldHRpbmdzLnZpZXdwb3J0Lm1heF9zY2FsZTsKKyAgICAgICAgKm1heF9z
Y2FsZSA9IGNvbmYubWF4aW11bVNjYWxlOwogICAgIGlmIChtaW5fc2NhbGUpCi0gICAgICAgICpt
aW5fc2NhbGUgPSBwcml2LT5zZXR0aW5ncy52aWV3cG9ydC5taW5fc2NhbGU7CisgICAgICAgICpt
aW5fc2NhbGUgPSBjb25mLm1pbmltdW1TY2FsZTsKKyAgICBpZiAoZGV2aWNlX3BpeGVsX3JhdGlv
KQorICAgICAgICAqZGV2aWNlX3BpeGVsX3JhdGlvID0gY29uZi5kZXZpY2VQaXhlbFJhdGlvOwog
ICAgIGlmICh1c2VyX3NjYWxhYmxlKQotICAgICAgICAqdXNlcl9zY2FsYWJsZSA9IHByaXYtPnNl
dHRpbmdzLnZpZXdwb3J0LnVzZXJfc2NhbGFibGU7CisgICAgICAgICp1c2VyX3NjYWxhYmxlID0g
cHJpdi0+dmlld3BvcnRfYXJndW1lbnRzLnVzZXJTY2FsYWJsZTsKIH0KIAogLyoqCkBAIC00MTg3
LDYgKzQxOTksMjIgQEAgRWluYV9Cb29sIGV3a192aWV3X3VzZXJfc2NhbGFibGVfZ2V0KEV2YXNf
T2JqZWN0KiBvKQogfQogCiAvKioKKyAqIEdldHMgZGV2aWNlIHBpeGVsIHJhdGlvIHZhbHVlLgor
ICoKKyAqIEBwYXJhbSBvIHZpZXcuCisgKiBAcGFyYW0gdXNlcl9zY2FsYWJsZSB3aGVyZSB0byBy
ZXR1cm4gdGhlIGN1cnJlbnQgdXNlciBzY2FsYWJsZSB2YWx1ZS4KKyAqCisgKiBAcmV0dXJuIEBj
IEVJTkFfVFJVRSBpZiB6b29tIGlzIGVuYWJsZWQsIEBjIEVJTkFfRkFMU0UgaWYgbm90LgorICov
CitmbG9hdCBld2tfdmlld19kZXZpY2VfcGl4ZWxfcmF0aW9fZ2V0KEV2YXNfT2JqZWN0KiBvKQor
eworICAgIEVXS19WSUVXX1NEX0dFVChvLCBzZCk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc2Qs
IHByaXYpOworCisgICAgcmV0dXJuIHByaXYtPnNldHRpbmdzLmRldmljZV9waXhlbF9yYXRpbzsK
K30KKworLyoqCiAgKiBAaW50ZXJuYWwKICAqIFJlcG9ydHMgYSByZXF1ZXNldCB3aWxsIGJlIGxv
YWRlZC4gSXQncyBjbGllbnQgcmVzcG9uc2liaWxpdHkgdG8gZGVjaWRlIGlmCiAgKiByZXF1ZXN0
IHdvdWxkIGJlIHVzZWQuIElmIEByZXR1cm4gaXMgdHJ1ZSwgbG9hZGVyIHdpbGwgdHJ5IHRvIGxv
YWQuIEVsc2UsCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCAyNmJmOTdjLi5iYjMwMzdmIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgK
QEAgLTQ4OSwxMiArNDg5LDEzIEBAIEVBUEkgdm9pZCBld2tfdmlld19wYWludF9jb250ZXh0X3Ry
YW5zbGF0ZShFd2tfVmlld19QYWludF9Db250ZXh0ICpjdHh0LCBmbG9hdCB4CiBFQVBJIEVpbmFf
Qm9vbCBld2tfdmlld19wYWludChFd2tfVmlld19Qcml2YXRlX0RhdGEgKnByaXYsIGNhaXJvX3Qg
KmNyLCBjb25zdCBFaW5hX1JlY3RhbmdsZSAqYXJlYSk7CiBFQVBJIEVpbmFfQm9vbCBld2tfdmll
d19wYWludF9jb250ZW50cyhFd2tfVmlld19Qcml2YXRlX0RhdGEgKnByaXYsIGNhaXJvX3QgKmNy
LCBjb25zdCBFaW5hX1JlY3RhbmdsZSAqYXJlYSk7CiAKLUVBUEkgdm9pZCBld2tfdmlld192aWV3
cG9ydF9nZXQoRXZhc19PYmplY3QgKm8sIGZsb2F0KiB3LCBmbG9hdCogaCwgZmxvYXQqIGluaXRf
c2NhbGUsIGZsb2F0KiBtYXhfc2NhbGUsIGZsb2F0KiBtaW5fc2NhbGUsIGZsb2F0KiB1c2VyX3Nj
YWxhYmxlKTsKK0VBUEkgdm9pZCBld2tfdmlld192aWV3cG9ydF9nZXQoRXZhc19PYmplY3QgKm8s
IGZsb2F0KiB3LCBmbG9hdCogaCwgZmxvYXQqIGluaXRfc2NhbGUsIGZsb2F0KiBtYXhfc2NhbGUs
IGZsb2F0KiBtaW5fc2NhbGUsIGZsb2F0KiB0YXJnZXRfZHBpLCBmbG9hdCogdXNlcl9zY2FsYWJs
ZSk7CiBFQVBJIEVpbmFfQm9vbCBld2tfdmlld196b29tX3JhbmdlX3NldChFdmFzX09iamVjdCog
bywgZmxvYXQgbWluX3NjYWxlLCBmbG9hdCBtYXhfc2NhbGUpOwogRUFQSSBmbG9hdCBld2tfdmll
d196b29tX3JhbmdlX21pbl9nZXQoRXZhc19PYmplY3QqIG8pOwogRUFQSSBmbG9hdCBld2tfdmll
d196b29tX3JhbmdlX21heF9nZXQoRXZhc19PYmplY3QqIG8pOwogRUFQSSB2b2lkIGV3a192aWV3
X3VzZXJfc2NhbGFibGVfc2V0KEV2YXNfT2JqZWN0KiBvLCBFaW5hX0Jvb2wgdXNlcl9zY2FsYWJs
ZSk7CiBFQVBJIEVpbmFfQm9vbCBld2tfdmlld191c2VyX3NjYWxhYmxlX2dldChFdmFzX09iamVj
dCogbyk7CitFQVBJIGZsb2F0IGV3a192aWV3X2RldmljZV9waXhlbF9yYXRpb19nZXQoRXZhc19P
YmplY3QqIG8pOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCAyYTMxNjIxLi41ZmFk
N2I0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMDcgIEd5dXlvdW5nIEtpbSAgPGd5
dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbRUZMXSBTdXBwb3J0IHZpZXdwb3J0IGNvbmZpZ3VyYXRpb24gYW5k
IGFkZCBuZXcgYXJndW1lbnRzIGZvciBXZWJLaXQgRUZMCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzA4NAorIAorICAgICAgICBPcGVyYSBzcGVjIHJl
Z2FyZGluZyB0byB2aWV3cG9ydCBtZXRhIHRhZyB3YXMgYWRqdXN0ZWQgdG8gV2ViQ29yZS4gIFNv
LCBFRkwgcG9ydCBuZWVkcyB0byBiZSBtb2RpZmllZAorICAgICAgICBhY2NvcmRpbmcgdG8gdGhl
IGNoYW5nZXMuCisKKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5jOgorICAgICAgICAob25f
dmlld3BvcnRfY2hhbmdlZCk6CisKIDIwMTAtMTAtMDUgIERhbmllbCBCYXRlcyAgPGRiYXRlc0By
aW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEtpbHplci4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMgYi9XZWJLaXRUb29scy9FV2ViTGF1bmNo
ZXIvbWFpbi5jCmluZGV4IDg5NjVjNDIuLjg2NTQ2N2IgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L0VXZWJMYXVuY2hlci9tYWluLmMKKysrIGIvV2ViS2l0VG9vbHMvRVdlYkxhdW5jaGVyL21haW4u
YwpAQCAtMTMyLDYgKzEzMiw3IEBAIHR5cGVkZWYgc3RydWN0IF9WaWV3cG9ydCB7CiAgICAgZmxv
YXQgaW5pdFNjYWxlOwogICAgIGZsb2F0IG1pblNjYWxlOwogICAgIGZsb2F0IG1heFNjYWxlOwor
ICAgIGZsb2F0IGRldmljZVBpeGVsUmF0aW87CiAgICAgRWluYV9Cb29sIHVzZXJTY2FsYWJsZTsK
IH0gVmlld3BvcnQ7CiAKQEAgLTQwMiw5ICs0MDMsOSBAQCBvbl92aWV3cG9ydF9jaGFuZ2VkKHZv
aWQqIHVzZXJfZGF0YSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50X2luZm8pCiB7
CiAgICAgRUxhdW5jaGVyICphcHAgPSAoRUxhdW5jaGVyICopdXNlcl9kYXRhOwogCi0gICAgZmxv
YXQgdywgaCwgaW5pdFNjYWxlLCBtaW5TY2FsZSwgbWF4U2NhbGUsIHVzZXJTY2FsYWJsZTsKKyAg
ICBmbG9hdCB3LCBoLCBpbml0U2NhbGUsIG1pblNjYWxlLCBtYXhTY2FsZSwgZGV2aWNlUGl4ZWxS
YXRpbywgdXNlclNjYWxhYmxlOwogCi0gICAgZXdrX3ZpZXdfdmlld3BvcnRfZ2V0KHdlYnZpZXcs
ICZ3LCAmaCwgJmluaXRTY2FsZSwgJm1heFNjYWxlLCAmbWluU2NhbGUsICZ1c2VyU2NhbGFibGUp
OworICAgIGV3a192aWV3X3ZpZXdwb3J0X2dldCh3ZWJ2aWV3LCAmdywgJmgsICZpbml0U2NhbGUs
ICZtYXhTY2FsZSwgJm1pblNjYWxlLCAmZGV2aWNlUGl4ZWxSYXRpbywgJnVzZXJTY2FsYWJsZSk7
CiAKICAgICAvKioKICAgICAgKiBJZiB0aGVyZSBpcyBubyBhcmd1bWVudCBpbiB2aWV3cG9ydCB0
YWcsIGFyZ3VtZW50J3MgdmFsdWUgaXMgLTEuCkBAIC00MTksNiArNDIwLDggQEAgb25fdmlld3Bv
cnRfY2hhbmdlZCh2b2lkKiB1c2VyX2RhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBl
dmVudF9pbmZvKQogICAgICAgICBtaW5TY2FsZSA9IGV3a192aWV3X3pvb21fcmFuZ2VfbWluX2dl
dCh3ZWJ2aWV3KTsKICAgICBpZiAoKGludCltYXhTY2FsZSA9PSAtMSkKICAgICAgICAgbWF4U2Nh
bGUgPSBld2tfdmlld196b29tX3JhbmdlX21heF9nZXQod2Vidmlldyk7CisgICAgaWYgKChpbnQp
ZGV2aWNlUGl4ZWxSYXRpbyA9PSAtMSkKKyAgICAgICAgZGV2aWNlUGl4ZWxSYXRpbyA9IGV3a192
aWV3X2RldmljZV9waXhlbF9yYXRpb19nZXQod2Vidmlldyk7CiAgICAgaWYgKChpbnQpdXNlclNj
YWxhYmxlID09IC0xKQogICAgICAgICB1c2VyU2NhbGFibGUgPSBFSU5BX1RSVUU7CiAKQEAgLTQy
Nyw2ICs0MzAsNyBAQCBvbl92aWV3cG9ydF9jaGFuZ2VkKHZvaWQqIHVzZXJfZGF0YSwgRXZhc19P
YmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50X2luZm8pCiAgICAgYXBwLT52aWV3cG9ydC5pbml0
U2NhbGUgPSBpbml0U2NhbGU7CiAgICAgYXBwLT52aWV3cG9ydC5taW5TY2FsZSA9IG1pblNjYWxl
OwogICAgIGFwcC0+dmlld3BvcnQubWF4U2NhbGUgPSBtYXhTY2FsZTsKKyAgICBhcHAtPnZpZXdw
b3J0LmRldmljZVBpeGVsUmF0aW8gPSBkZXZpY2VQaXhlbFJhdGlvOwogICAgIGFwcC0+dmlld3Bv
cnQudXNlclNjYWxhYmxlID0gKEVpbmFfQm9vbCl1c2VyU2NhbGFibGU7CiAgICAgdmlld3BvcnRf
c2V0KCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70526</attachid>
            <date>2010-10-12 06:01:27 -0700</date>
            <delta_ts>2010-10-13 05:15:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch-viewport.txt</filename>
            <type>text/plain</type>
            <size>14132</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
aW5kZXggMWMxNDNhMi4uMzRmYjk3MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0xMC0xMiAg
R3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtFRkxdIFN1cHBvcnQgdmlld3BvcnQg
Y29uZmlndXJhdGlvbiBhbmQgYWRkIG5ldyBhcmd1bWVudHMgZm9yIFdlYktpdCBFRkwKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MDg0CisKKyAgICAg
ICAgT3BlcmEgc3BlYyByZWdhcmRpbmcgdG8gdmlld3BvcnQgbWV0YSB0YWcgd2FzIGFkanVzdGVk
IHRvIFdlYkNvcmUuIFNvLCBFRkwgcG9ydCAKKyAgICAgICAgbmVlZHMgdG8gYmUgbW9kaWZpZWQg
YWNjb3JkaW5nIHRvIHRoZSBjaGFuZ2VzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6ZGlz
cGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjpkaXNwYXRjaERpZENvbW1pdExvYWQpOgorICAgICAgICAqIGV3ay9ld2tfcHJpdmF0
ZS5oOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfcHJp
dl9uZXcpOgorICAgICAgICAoX2V3a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfY29tcHV0ZSk6
CisgICAgICAgIChld2tfdmlld192aWV3cG9ydF9hdHRyaWJ1dGVzX3NldCk6CisgICAgICAgIChl
d2tfdmlld192aWV3cG9ydF9hdHRyaWJ1dGVzX2dldCk6CisgICAgICAgIChld2tfdmlld19kZXZp
Y2VfcGl4ZWxfcmF0aW9fZ2V0KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKwogMjAxMC0x
MC0wNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEVmbC5jcHAKaW5kZXggMDFmMjEzMS4uYzA2YjMwZCAxMDA2NDQKLS0tIGEv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNTE5LDcgKzUxOSw3
IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBGaWxlQ2hvb3NlciopCiAKIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpkaXNwYXRj
aFZpZXdwb3J0RGF0YURpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRz
KSBjb25zdAogewotICAgIGV3a192aWV3X3ZpZXdwb3J0X3NldChtX3ZpZXcsIGFyZ3VtZW50cy53
aWR0aCwgYXJndW1lbnRzLmhlaWdodCwgYXJndW1lbnRzLmluaXRpYWxTY2FsZSwgYXJndW1lbnRz
Lm1pbmltdW1TY2FsZSwgYXJndW1lbnRzLm1heGltdW1TY2FsZSwgYXJndW1lbnRzLnVzZXJTY2Fs
YWJsZSk7CisgICAgZXdrX3ZpZXdfdmlld3BvcnRfYXR0cmlidXRlc19zZXQobV92aWV3LCBhcmd1
bWVudHMpOwogfQogCiBib29sIENocm9tZUNsaWVudEVmbDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCA2MWE3ODk0Li44ZDk2MTc5IDEwMDY0NAotLS0gYS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysgYi9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtNjIx
LDcgKzYyMSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ29tbWl0
TG9hZCgpCiAgICAgZXdrX3ZpZXdfdXJpX2NoYW5nZWQobV92aWV3KTsKIAogICAgIFZpZXdwb3J0
QXJndW1lbnRzIGFyZ3VtZW50czsKLSAgICBld2tfdmlld192aWV3cG9ydF9zZXQobV92aWV3LCBh
cmd1bWVudHMud2lkdGgsIGFyZ3VtZW50cy5oZWlnaHQsIGFyZ3VtZW50cy5pbml0aWFsU2NhbGUs
IGFyZ3VtZW50cy5taW5pbXVtU2NhbGUsIGFyZ3VtZW50cy5tYXhpbXVtU2NhbGUsIGFyZ3VtZW50
cy51c2VyU2NhbGFibGUpOworICAgIGV3a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfc2V0KG1f
dmlldywgYXJndW1lbnRzKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0
Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9ld2svZXdr
X3ByaXZhdGUuaCBiL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKaW5kZXggMTg1YTdlMS4u
M2I1NDAwYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAorKysgYi9X
ZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCkBAIC0xMDIsNyArMTAyLDcgQEAgV1RGOjpQYXNz
UmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBld2tfdmlld19mcmFtZV9jcmVhdGUoRXZhc19PYmplY3Qg
Km8sIEV2YXNfT2JqZWMKIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a192aWV3
X3BsdWdpbl9jcmVhdGUoRXZhc19PYmplY3QqIG8sIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgcGx1Z2luU2l6ZSwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQq
IGVsZW1lbnQsIGNvbnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3QgV1RGOjpWZWN0b3I8V1RG
OjpTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBh
cmFtVmFsdWVzLCBjb25zdCBXVEY6OlN0cmluZyYgbWltZVR5cGUsIGJvb2wgbG9hZE1hbnVhbGx5
KTsKIAogdm9pZCBld2tfdmlld19wb3B1cF9uZXcoRXZhc19PYmplY3QgKm8sIFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCogY2xpZW50LCBpbnQgc2VsZWN0ZWQsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHJlY3QpOwotdm9pZCBld2tfdmlld192aWV3cG9ydF9zZXQoRXZhc19PYmplY3QgKm8sIGZs
b2F0IHcsIGZsb2F0IGgsIGZsb2F0IGluaXRfc2NhbGUsIGZsb2F0IG1heF9zY2FsZSwgZmxvYXQg
bWluX3NjYWxlLCBmbG9hdCB1c2VyX3NjYWxhYmxlKTsKK3ZvaWQgZXdrX3ZpZXdfdmlld3BvcnRf
YXR0cmlidXRlc19zZXQoRXZhc19PYmplY3QgKm8sIGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzJiBhcmd1bWVudHMpOwogCiB2b2lkIGV3a192aWV3X2Rvd25sb2FkX3JlcXVlc3QoRXZh
c19PYmplY3QgKm8sIEV3a19Eb3dubG9hZCAqZG93bmxvYWQpOwogCmRpZmYgLS1naXQgYS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5k
ZXggYWY0MGY5My4uNDFhYzhlZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
Y3BwCisrKyBiL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMjIsNyArMjIsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a192aWV3LmgiCiAKLSNpbmNsdWRlICJh
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgog
I2luY2x1ZGUgIkNocm9tZUNsaWVudEVmbC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50
RWZsLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCkBAIC00Miw2ICs0Miw3
IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51
Q2xpZW50LmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5jbHVkZSAiYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgog
CiAjaW5jbHVkZSA8RWNvcmUuaD4KQEAgLTU0LDYgKzU1LDggQEAKICNkZWZpbmUgWk9PTV9NSU4g
KDAuMDUpCiAjZGVmaW5lIFpPT01fTUFYICg0LjApCiAKKyNkZWZpbmUgREVWSUNFX1BJWEVMX1JB
VElPICgxLjApCisKIHN0YXRpYyBjb25zdCBjaGFyIEVXS19WSUVXX1RZUEVfU1RSW10gPSAiRVdL
X1ZpZXciOwogCiBzdGF0aWMgY29uc3Qgc2l6ZV90IEVXS19WSUVXX1JFUEFJTlRTX1NJWkVfSU5J
VElBTCA9IDMyOwpAQCAtNjgsNiArNzEsNyBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0
YSB7CiAgICAgV2ViQ29yZTo6UGFnZSogcGFnZTsKICAgICBXZWJDb3JlOjpTZXR0aW5ncyogcGFn
ZV9zZXR0aW5nczsKICAgICBXZWJDb3JlOjpGcmFtZSogbWFpbl9mcmFtZTsKKyAgICBXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydF9hcmd1bWVudHM7CiAgICAgRXdrX0hpc3Rvcnkq
IGhpc3Rvcnk7CiAgICAgc3RydWN0IHsKICAgICAgICAgRXdrX01lbnUgbWVudTsKQEAgLTExNiwx
OCArMTIwLDExIEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICAgICAgRWlu
YV9Cb29sIG9mZmxpbmVfYXBwX2NhY2hlOiAxOwogICAgICAgICBFaW5hX0Jvb2wgcGFnZV9jYWNo
ZTogMTsKICAgICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgIGZsb2F0IHc7Ci0gICAgICAgICAg
ICBmbG9hdCBoOwotICAgICAgICAgICAgZmxvYXQgaW5pdF9zY2FsZTsKLSAgICAgICAgICAgIGZs
b2F0IG1pbl9zY2FsZTsKLSAgICAgICAgICAgIGZsb2F0IG1heF9zY2FsZTsKLSAgICAgICAgICAg
IGZsb2F0IHVzZXJfc2NhbGFibGU7Ci0gICAgICAgIH0gdmlld3BvcnQ7Ci0gICAgICAgIHN0cnVj
dCB7CiAgICAgICAgICAgICBmbG9hdCBtaW5fc2NhbGU7CiAgICAgICAgICAgICBmbG9hdCBtYXhf
c2NhbGU7CiAgICAgICAgICAgICBFaW5hX0Jvb2wgdXNlcl9zY2FsYWJsZToxOwogICAgICAgICB9
IHpvb21fcmFuZ2U7CisgICAgICAgIGZsb2F0IGRldmljZV9waXhlbF9yYXRpbzsKICAgICB9IHNl
dHRpbmdzOwogICAgIHN0cnVjdCB7CiAgICAgICAgIHN0cnVjdCB7CkBAIC02MjAsNiArNjE3LDcg
QEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19W
aWV3X1NtYXJ0X0RhdGEqIHNkKQogICAgIHByaXYtPnNldHRpbmdzLnpvb21fcmFuZ2UubWluX3Nj
YWxlID0gWk9PTV9NSU47CiAgICAgcHJpdi0+c2V0dGluZ3Muem9vbV9yYW5nZS5tYXhfc2NhbGUg
PSBaT09NX01BWDsKICAgICBwcml2LT5zZXR0aW5ncy56b29tX3JhbmdlLnVzZXJfc2NhbGFibGUg
PSBFSU5BX1RSVUU7CisgICAgcHJpdi0+c2V0dGluZ3MuZGV2aWNlX3BpeGVsX3JhdGlvID0gREVW
SUNFX1BJWEVMX1JBVElPOwogCiAgICAgcHJpdi0+bWFpbl9mcmFtZSA9IF9ld2tfdmlld19jb3Jl
X2ZyYW1lX25ldyhzZCwgcHJpdiwgMCkuZ2V0KCk7CiAgICAgaWYgKCFwcml2LT5tYWluX2ZyYW1l
KSB7CkBAIC05NjMsNiArOTYxLDI2IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld196b29tX2FuaW1h
dGlvbl9zdGFydChFd2tfVmlld19TbWFydF9EYXRhKiBzZCkKICAgICAgICAgKF9ld2tfdmlld196
b29tX2FuaW1hdG9yX2NiLCBzZCk7CiB9CiAKK3N0YXRpYyBXZWJDb3JlOjpWaWV3cG9ydEF0dHJp
YnV0ZXMgX2V3a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfY29tcHV0ZShFdmFzX09iamVjdCog
bykKK3sKKyAgICBFV0tfVklFV19TRF9HRVQobywgc2QpOworICAgIEVXS19WSUVXX1BSSVZfR0VU
KHNkLCBwcml2KTsKKworICAgIGludCBkZXNrdG9wX3dpZHRoID0gOTgwOworICAgIGludCBkZXZp
Y2VfZHBpID0gMTYwOworCisgICAgaW50IGF2YWlsYWJsZV93aWR0aCA9IChpbnQpIHByaXYtPnBh
Z2UtPmNocm9tZSgpLT5jbGllbnQoKS0+cGFnZVJlY3QoKS53aWR0aCgpOworICAgIGludCBhdmFp
bGFibGVfaGVpZ2h0ID0gKGludCkgcHJpdi0+cGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5wYWdl
UmVjdCgpLmhlaWdodCgpOworCisgICAgaW50IGRldmljZV93aWR0aCA9IChpbnQpIHByaXYtPnBh
Z2UtPmNocm9tZSgpLT5jbGllbnQoKS0+d2luZG93UmVjdCgpLndpZHRoKCk7CisgICAgaW50IGRl
dmljZV9oZWlnaHQgPSAoaW50KSBwcml2LT5wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPndpbmRv
d1JlY3QoKS5oZWlnaHQoKTsKKworICAgIEludFNpemUgYXZhaWxhYmxlX3NpemUgPSBJbnRTaXpl
KGF2YWlsYWJsZV93aWR0aCwgYXZhaWxhYmxlX2hlaWdodCk7CisgICAgV2ViQ29yZTo6Vmlld3Bv
cnRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgPSBXZWJDb3JlOjpjb21wdXRlVmlld3BvcnRBdHRyaWJ1
dGVzKHByaXYtPnZpZXdwb3J0X2FyZ3VtZW50cywgZGVza3RvcF93aWR0aCwgZGV2aWNlX3dpZHRo
LCBkZXZpY2VfaGVpZ2h0LCBkZXZpY2VfZHBpLCBhdmFpbGFibGVfc2l6ZSk7CisKKyAgICByZXR1
cm4gYXR0cmlidXRlczsKK30KKwogLyoqCiAgKiBTZXRzIHRoZSBzbWFydCBjbGFzcyBhcGkgd2l0
aG91dCBhbnkgYmFja2luZyBzdG9yZSwgZW5hYmxpbmcgdmlldwogICogdG8gYmUgaW5oZXJpdGVk
LgpAQCAtNDA0NSwzMyArNDA2MywyMSBAQCB2b2lkIGV3a192aWV3X2Rvd25sb2FkX3JlcXVlc3Qo
RXZhc19PYmplY3QqIG8sIEV3a19Eb3dubG9hZCogZG93bmxvYWQpCiAgKiBAaW50ZXJuYWwKICAq
IFJlcG9ydHMgdGhlIHZpZXdwb3J0IGhhcyBjaGFuZ2VkLgogICoKLSAqIEBwYXJhbSBvIHZpZXcu
Ci0gKiBAcGFyYW0gdyB3aWR0aC4KLSAqIEBwYXJhbSBoIGhlaWdodC4KLSAqIEBwYXJhbSBpbml0
X3NjYWxlIGluaXRpYWxTY2FsZSB2YWx1ZS4KLSAqIEBwYXJhbSBtYXhfc2NhbGUgbWF4aW11bVNj
YWxlIHZhbHVlLgotICogQHBhcmFtIG1pbl9zY2FsZSBtaW5pbXVtU2NhbGUgdmFsdWUuCi0gKiBA
cGFyYW0gdXNlcl9zY2FsYWJsZSB1c2Vyc2NhbGFibGUgZmxhZy4KKyAqIEBwYXJhbSBhcmd1bWVu
dHMgdmlld3BvcnQgYXJndW1lbnQuCiAgKgogICogRW1pdHMgc2lnbmFsOiAidmlld3BvcnQsY2hh
bmdlZCIgd2l0aCBubyBwYXJhbWV0ZXJzLgogICovCi12b2lkIGV3a192aWV3X3ZpZXdwb3J0X3Nl
dChFdmFzX09iamVjdCAqbywgZmxvYXQgdywgZmxvYXQgaCwgZmxvYXQgaW5pdF9zY2FsZSwgZmxv
YXQgbWF4X3NjYWxlLCBmbG9hdCBtaW5fc2NhbGUsIGZsb2F0IHVzZXJfc2NhbGFibGUpCit2b2lk
IGV3a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfc2V0KEV2YXNfT2JqZWN0ICpvLCBjb25zdCBX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKQogewogICAgIEVXS19WSUVXX1NE
X0dFVChvLCBzZCk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc2QsIHByaXYpOwotCi0gICAgcHJp
di0+c2V0dGluZ3Mudmlld3BvcnQudyA9IHc7Ci0gICAgcHJpdi0+c2V0dGluZ3Mudmlld3BvcnQu
aCA9IGg7Ci0gICAgcHJpdi0+c2V0dGluZ3Mudmlld3BvcnQuaW5pdF9zY2FsZSA9IGluaXRfc2Nh
bGU7Ci0gICAgcHJpdi0+c2V0dGluZ3Mudmlld3BvcnQubWluX3NjYWxlID0gbWluX3NjYWxlOwot
ICAgIHByaXYtPnNldHRpbmdzLnZpZXdwb3J0Lm1heF9zY2FsZSA9IG1heF9zY2FsZTsKLSAgICBw
cml2LT5zZXR0aW5ncy52aWV3cG9ydC51c2VyX3NjYWxhYmxlID0gdXNlcl9zY2FsYWJsZTsKLQor
ICAgIAorICAgIHByaXYtPnZpZXdwb3J0X2FyZ3VtZW50cyA9IGFyZ3VtZW50czsKICAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG8sICJ2aWV3cG9ydCxjaGFuZ2VkIiwgMCk7CiB9
CiAKIC8qKgotICogR2V0cyBkYXRhIG9mIHZpZXdwb3J0IG1ldGEgdGFnLgorICogR2V0cyBhdHRy
aWJ1dGVzIG9mIHZpZXdwb3J0IG1ldGEgdGFnLgogICoKICAqIEBwYXJhbSBvIHZpZXcuCiAgKiBA
cGFyYW0gdyB3aWR0aC4KQEAgLTQwNzksMjUgKzQwODUsMjcgQEAgdm9pZCBld2tfdmlld192aWV3
cG9ydF9zZXQoRXZhc19PYmplY3QgKm8sIGZsb2F0IHcsIGZsb2F0IGgsIGZsb2F0IGluaXRfc2Nh
bGUsIGYKICAqIEBwYXJhbSBpbml0X3NjYWxlIGluaXRpYWwgU2NhbGUgdmFsdWUuCiAgKiBAcGFy
YW0gbWF4X3NjYWxlIG1heGltdW0gU2NhbGUgdmFsdWUuCiAgKiBAcGFyYW0gbWluX3NjYWxlIG1p
bmltdW0gU2NhbGUgdmFsdWUuCisgKiBAcGFyYW0gZGV2aWNlX3BpeGVsX3JhdGlvIHZhbHVlLgog
ICogQHBhcmFtIHVzZXJfc2NhbGFibGUgdXNlciBTY2FsYWJsZSB2YWx1ZS4KICAqLwotdm9pZCBl
d2tfdmlld192aWV3cG9ydF9nZXQoRXZhc19PYmplY3QgKm8sIGZsb2F0KiB3LCBmbG9hdCogaCwg
ZmxvYXQqIGluaXRfc2NhbGUsIGZsb2F0KiBtYXhfc2NhbGUsIGZsb2F0KiBtaW5fc2NhbGUsIGZs
b2F0KiB1c2VyX3NjYWxhYmxlKQordm9pZCBld2tfdmlld192aWV3cG9ydF9hdHRyaWJ1dGVzX2dl
dChFdmFzX09iamVjdCAqbywgZmxvYXQqIHcsIGZsb2F0KiBoLCBmbG9hdCogaW5pdF9zY2FsZSwg
ZmxvYXQqIG1heF9zY2FsZSwgZmxvYXQqIG1pbl9zY2FsZSwgZmxvYXQqIGRldmljZV9waXhlbF9y
YXRpbywgRWluYV9Cb29sKiB1c2VyX3NjYWxhYmxlKQogewotICAgIEVXS19WSUVXX1NEX0dFVChv
LCBzZCk7Ci0gICAgRVdLX1ZJRVdfUFJJVl9HRVQoc2QsIHByaXYpOworICAgIFdlYkNvcmU6OlZp
ZXdwb3J0QXR0cmlidXRlcyBhdHRyaWJ1dGVzID0gX2V3a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0
ZXNfY29tcHV0ZShvKTsKIAogICAgIGlmICh3KQotICAgICAgICAqdyA9IHByaXYtPnNldHRpbmdz
LnZpZXdwb3J0Lnc7CisgICAgICAgICp3ID0gYXR0cmlidXRlcy5sYXlvdXRTaXplLndpZHRoKCk7
CiAgICAgaWYgKGgpCi0gICAgICAgICpoID0gcHJpdi0+c2V0dGluZ3Mudmlld3BvcnQuaDsKKyAg
ICAgICAgKmggPSBhdHRyaWJ1dGVzLmxheW91dFNpemUuaGVpZ2h0KCk7CiAgICAgaWYgKGluaXRf
c2NhbGUpCi0gICAgICAgICppbml0X3NjYWxlID0gcHJpdi0+c2V0dGluZ3Mudmlld3BvcnQuaW5p
dF9zY2FsZTsKKyAgICAgICAgKmluaXRfc2NhbGUgPSBhdHRyaWJ1dGVzLmluaXRpYWxTY2FsZTsK
ICAgICBpZiAobWF4X3NjYWxlKQotICAgICAgICAqbWF4X3NjYWxlID0gcHJpdi0+c2V0dGluZ3Mu
dmlld3BvcnQubWF4X3NjYWxlOworICAgICAgICAqbWF4X3NjYWxlID0gYXR0cmlidXRlcy5tYXhp
bXVtU2NhbGU7CiAgICAgaWYgKG1pbl9zY2FsZSkKLSAgICAgICAgKm1pbl9zY2FsZSA9IHByaXYt
PnNldHRpbmdzLnZpZXdwb3J0Lm1pbl9zY2FsZTsKKyAgICAgICAgKm1pbl9zY2FsZSA9IGF0dHJp
YnV0ZXMubWluaW11bVNjYWxlOworICAgIGlmIChkZXZpY2VfcGl4ZWxfcmF0aW8pCisgICAgICAg
ICpkZXZpY2VfcGl4ZWxfcmF0aW8gPSBhdHRyaWJ1dGVzLmRldmljZVBpeGVsUmF0aW87CiAgICAg
aWYgKHVzZXJfc2NhbGFibGUpCi0gICAgICAgICp1c2VyX3NjYWxhYmxlID0gcHJpdi0+c2V0dGlu
Z3Mudmlld3BvcnQudXNlcl9zY2FsYWJsZTsKKyAgICAgICAgKnVzZXJfc2NhbGFibGUgPSBhdHRy
aWJ1dGVzLnVzZXJTY2FsYWJsZTsKIH0KIAogLyoqCkBAIC00MTg3LDYgKzQxOTUsMjIgQEAgRWlu
YV9Cb29sIGV3a192aWV3X3VzZXJfc2NhbGFibGVfZ2V0KEV2YXNfT2JqZWN0KiBvKQogfQogCiAv
KioKKyAqIEdldHMgZGV2aWNlIHBpeGVsIHJhdGlvIHZhbHVlLgorICoKKyAqIEBwYXJhbSBvIHZp
ZXcuCisgKiBAcGFyYW0gdXNlcl9zY2FsYWJsZSB3aGVyZSB0byByZXR1cm4gdGhlIGN1cnJlbnQg
dXNlciBzY2FsYWJsZSB2YWx1ZS4KKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB6b29t
IGlzIGVuYWJsZWQsIEBjIEVJTkFfRkFMU0UgaWYgbm90LgorICovCitmbG9hdCBld2tfdmlld19k
ZXZpY2VfcGl4ZWxfcmF0aW9fZ2V0KEV2YXNfT2JqZWN0KiBvKQoreworICAgIEVXS19WSUVXX1NE
X0dFVChvLCBzZCk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc2QsIHByaXYpOworCisgICAgcmV0
dXJuIHByaXYtPnNldHRpbmdzLmRldmljZV9waXhlbF9yYXRpbzsKK30KKworLyoqCiAgKiBAaW50
ZXJuYWwKICAqIFJlcG9ydHMgYSByZXF1ZXNldCB3aWxsIGJlIGxvYWRlZC4gSXQncyBjbGllbnQg
cmVzcG9uc2liaWxpdHkgdG8gZGVjaWRlIGlmCiAgKiByZXF1ZXN0IHdvdWxkIGJlIHVzZWQuIElm
IEByZXR1cm4gaXMgdHJ1ZSwgbG9hZGVyIHdpbGwgdHJ5IHRvIGxvYWQuIEVsc2UsCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
aAppbmRleCAyNmJmOTdjLi5hZWE5YWNhIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5oCisrKyBiL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTQ4OSwxMiArNDg5LDEz
IEBAIEVBUEkgdm9pZCBld2tfdmlld19wYWludF9jb250ZXh0X3RyYW5zbGF0ZShFd2tfVmlld19Q
YWludF9Db250ZXh0ICpjdHh0LCBmbG9hdCB4CiBFQVBJIEVpbmFfQm9vbCBld2tfdmlld19wYWlu
dChFd2tfVmlld19Qcml2YXRlX0RhdGEgKnByaXYsIGNhaXJvX3QgKmNyLCBjb25zdCBFaW5hX1Jl
Y3RhbmdsZSAqYXJlYSk7CiBFQVBJIEVpbmFfQm9vbCBld2tfdmlld19wYWludF9jb250ZW50cyhF
d2tfVmlld19Qcml2YXRlX0RhdGEgKnByaXYsIGNhaXJvX3QgKmNyLCBjb25zdCBFaW5hX1JlY3Rh
bmdsZSAqYXJlYSk7CiAKLUVBUEkgdm9pZCBld2tfdmlld192aWV3cG9ydF9nZXQoRXZhc19PYmpl
Y3QgKm8sIGZsb2F0KiB3LCBmbG9hdCogaCwgZmxvYXQqIGluaXRfc2NhbGUsIGZsb2F0KiBtYXhf
c2NhbGUsIGZsb2F0KiBtaW5fc2NhbGUsIGZsb2F0KiB1c2VyX3NjYWxhYmxlKTsKK0VBUEkgdm9p
ZCBld2tfdmlld192aWV3cG9ydF9hdHRyaWJ1dGVzX2dldChFdmFzX09iamVjdCAqbywgZmxvYXQq
IHcsIGZsb2F0KiBoLCBmbG9hdCogaW5pdF9zY2FsZSwgZmxvYXQqIG1heF9zY2FsZSwgZmxvYXQq
IG1pbl9zY2FsZSwgZmxvYXQqIGRldmljZV9waXhlbF9yYXRpbyAsIEVpbmFfQm9vbCogdXNlcl9z
Y2FsYWJsZSk7CiBFQVBJIEVpbmFfQm9vbCBld2tfdmlld196b29tX3JhbmdlX3NldChFdmFzX09i
amVjdCogbywgZmxvYXQgbWluX3NjYWxlLCBmbG9hdCBtYXhfc2NhbGUpOwogRUFQSSBmbG9hdCBl
d2tfdmlld196b29tX3JhbmdlX21pbl9nZXQoRXZhc19PYmplY3QqIG8pOwogRUFQSSBmbG9hdCBl
d2tfdmlld196b29tX3JhbmdlX21heF9nZXQoRXZhc19PYmplY3QqIG8pOwogRUFQSSB2b2lkIGV3
a192aWV3X3VzZXJfc2NhbGFibGVfc2V0KEV2YXNfT2JqZWN0KiBvLCBFaW5hX0Jvb2wgdXNlcl9z
Y2FsYWJsZSk7CiBFQVBJIEVpbmFfQm9vbCBld2tfdmlld191c2VyX3NjYWxhYmxlX2dldChFdmFz
X09iamVjdCogbyk7CitFQVBJIGZsb2F0IGV3a192aWV3X2RldmljZV9waXhlbF9yYXRpb19nZXQo
RXZhc19PYmplY3QqIG8pOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCBiMDM4YzVi
Li5mMmQwYThkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMTIgIEd5dXlvdW5nIEtp
bSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbRUZMXSBTdXBwb3J0IHZpZXdwb3J0IGNvbmZpZ3VyYXRp
b24gYW5kIGFkZCBuZXcgYXJndW1lbnRzIGZvciBXZWJLaXQgRUZMCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzA4NAorCisgICAgICAgIE9wZXJhIHNw
ZWMgcmVnYXJkaW5nIHRvIHZpZXdwb3J0IG1ldGEgdGFnIHdhcyBhZGp1c3RlZCB0byBXZWJDb3Jl
LiBTbywgRUZMIHBvcnQKKyAgICAgICAgbmVlZHMgdG8gYmUgbW9kaWZpZWQgYWNjb3JkaW5nIHRv
IHRoZSBjaGFuZ2VzLgorCisgICAgICAgICogRVdlYkxhdW5jaGVyL21haW4uYzoKKyAgICAgICAg
KG9uX3ZpZXdwb3J0X2NoYW5nZWQpOgorCiAyMDEwLTEwLTEwICBSb2JlcnQgSG9nYW4gIDxyb2Jl
cnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggZmFpbGluZyB0ZXN0IGZy
b20gcjY5NDY4LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYyBi
L1dlYktpdFRvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKaW5kZXggODk2NWM0Mi4uOGJhNThkOCAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYworKysgYi9XZWJLaXRU
b29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCkBAIC0xMzIsNiArMTMyLDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX1ZpZXdwb3J0IHsKICAgICBmbG9hdCBpbml0U2NhbGU7CiAgICAgZmxvYXQgbWluU2NhbGU7
CiAgICAgZmxvYXQgbWF4U2NhbGU7CisgICAgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbzsKICAgICBF
aW5hX0Jvb2wgdXNlclNjYWxhYmxlOwogfSBWaWV3cG9ydDsKIApAQCAtNDAyLDkgKzQwMywxMCBA
QCBvbl92aWV3cG9ydF9jaGFuZ2VkKHZvaWQqIHVzZXJfZGF0YSwgRXZhc19PYmplY3QqIHdlYnZp
ZXcsIHZvaWQqIGV2ZW50X2luZm8pCiB7CiAgICAgRUxhdW5jaGVyICphcHAgPSAoRUxhdW5jaGVy
ICopdXNlcl9kYXRhOwogCi0gICAgZmxvYXQgdywgaCwgaW5pdFNjYWxlLCBtaW5TY2FsZSwgbWF4
U2NhbGUsIHVzZXJTY2FsYWJsZTsKKyAgICBmbG9hdCB3LCBoLCBpbml0U2NhbGUsIG1pblNjYWxl
LCBtYXhTY2FsZSwgZGV2aWNlUGl4ZWxSYXRpbzsKKyAgICBFaW5hX0Jvb2wgdXNlclNjYWxhYmxl
OwogCi0gICAgZXdrX3ZpZXdfdmlld3BvcnRfZ2V0KHdlYnZpZXcsICZ3LCAmaCwgJmluaXRTY2Fs
ZSwgJm1heFNjYWxlLCAmbWluU2NhbGUsICZ1c2VyU2NhbGFibGUpOworICAgIGV3a192aWV3X3Zp
ZXdwb3J0X2F0dHJpYnV0ZXNfZ2V0KHdlYnZpZXcsICZ3LCAmaCwgJmluaXRTY2FsZSwgJm1heFNj
YWxlLCAmbWluU2NhbGUsICZkZXZpY2VQaXhlbFJhdGlvLCAmdXNlclNjYWxhYmxlKTsKIAogICAg
IC8qKgogICAgICAqIElmIHRoZXJlIGlzIG5vIGFyZ3VtZW50IGluIHZpZXdwb3J0IHRhZywgYXJn
dW1lbnQncyB2YWx1ZSBpcyAtMS4KQEAgLTQxOSw2ICs0MjEsOCBAQCBvbl92aWV3cG9ydF9jaGFu
Z2VkKHZvaWQqIHVzZXJfZGF0YSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50X2lu
Zm8pCiAgICAgICAgIG1pblNjYWxlID0gZXdrX3ZpZXdfem9vbV9yYW5nZV9taW5fZ2V0KHdlYnZp
ZXcpOwogICAgIGlmICgoaW50KW1heFNjYWxlID09IC0xKQogICAgICAgICBtYXhTY2FsZSA9IGV3
a192aWV3X3pvb21fcmFuZ2VfbWF4X2dldCh3ZWJ2aWV3KTsKKyAgICBpZiAoKGludClkZXZpY2VQ
aXhlbFJhdGlvID09IC0xKQorICAgICAgICBkZXZpY2VQaXhlbFJhdGlvID0gZXdrX3ZpZXdfZGV2
aWNlX3BpeGVsX3JhdGlvX2dldCh3ZWJ2aWV3KTsKICAgICBpZiAoKGludCl1c2VyU2NhbGFibGUg
PT0gLTEpCiAgICAgICAgIHVzZXJTY2FsYWJsZSA9IEVJTkFfVFJVRTsKIApAQCAtNDI3LDcgKzQz
MSw4IEBAIG9uX3ZpZXdwb3J0X2NoYW5nZWQodm9pZCogdXNlcl9kYXRhLCBFdmFzX09iamVjdCog
d2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKICAgICBhcHAtPnZpZXdwb3J0LmluaXRTY2FsZSA9
IGluaXRTY2FsZTsKICAgICBhcHAtPnZpZXdwb3J0Lm1pblNjYWxlID0gbWluU2NhbGU7CiAgICAg
YXBwLT52aWV3cG9ydC5tYXhTY2FsZSA9IG1heFNjYWxlOwotICAgIGFwcC0+dmlld3BvcnQudXNl
clNjYWxhYmxlID0gKEVpbmFfQm9vbCl1c2VyU2NhbGFibGU7CisgICAgYXBwLT52aWV3cG9ydC5k
ZXZpY2VQaXhlbFJhdGlvID0gZGV2aWNlUGl4ZWxSYXRpbzsKKyAgICBhcHAtPnZpZXdwb3J0LnVz
ZXJTY2FsYWJsZSA9IHVzZXJTY2FsYWJsZTsKICAgICB2aWV3cG9ydF9zZXQoKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>