<?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>211274</bug_id>
          
          <creation_ts>2020-04-30 20:05:22 -0700</creation_ts>
          <short_desc>Use LocalCurrentGraphicsContext in WebKit::convertPlatformImageToBitmap()</short_desc>
          <delta_ts>2020-05-08 21:09:35 -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>WebCore Misc.</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211160</see_also>
          <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>
          
          <blocked>211660</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>darin</cc>
    
    <cc>nmouchtaris</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1647733</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-04-30 20:05:22 -0700</bug_when>
    <thetext>Refactor LocalCurrentGraphicsContext to save/restore NSGraphicsContext.

In Bug 211160, there was some discussion about using LocalCurrentGraphicsContext with, &quot;a tiny bit of refactoring,&quot; [Bug 211160 Comment #11] could be used to save/restore NSGraphicsContext.

However, I don&apos;t see how reusing that class would be a good design since I don&apos;t need (a) the CGContextRef or (b) the WebCore::GraphicsContext.  Or is the consensus that it&apos;s okay to add the nullptr checks and change m_savedGraphicsContext to a RefPtr&lt;GraphicsContext&gt;?


I really just need a LocalCurrentNSGraphicsContext:

class LocalCurrentNSGraphicsContext {
    WTF_MAKE_NONCOPYABLE(LocalCurrentNSGraphicsContext);
public:
    LocalCurrentNSGraphicsContext(NSGraphicsContext *newContext);
    ~LocalCurrentNSGraphicsContext();
private:
    RetainPtr&lt;NSGraphicsContext&gt; m_savedContext;
};

And:

LocalCurrentNSGraphicsContext::LocalCurrentNSGraphicsContext(NSGraphicsContext *newContext)
    : m_savedContext([NSGraphicsContext currentContext])
{
    NSGraphicsContext.currentContext = newContext;
}

LocalCurrentNSGraphicsContext::~LocalCurrentNSGraphicsContext()
{
    NSGraphicsContext.currentContext = m_savedContext.get();
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647958</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-01 12:10:42 -0700</bug_when>
    <thetext>I don’t think we should add a new class. The first step would be to use this as-is:

    LocalCurrentGraphicsContext savedContext(*graphicsContext);

Then the question is whether we want to optimize to remove the unneeded calls to GraphicsContext::save/restore that LocalCurrentGraphicsContext does for us. There are two separate reasons save/restore are not needed:

1) we don’t make any changes to the context while using it

2) this temporary context is going to be deallocated after we are doing using it before anyone else uses it

But despite that, I am not sure the optimization is needed. If we wanted to optimize we would either need to make a separate class only used in cases like this, or have some way to tell the constructor either about (1) or about (2).

I would use it as-is and not worry about the modest additional cost of the calls to save/restore, but I can see going further if you like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647960</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-01 12:11:05 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #1)
&gt; 2) this temporary context is going to be deallocated after we are doing
&gt; using it before anyone else uses it

doing -&gt; done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648341</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-05-03 09:40:57 -0700</bug_when>
    <thetext>Well, I feel silly now because it was easy to use LocalCurrentGraphicsContext in WebKit::convertPlatformImageToBitmap().

Maybe the next step is to make LocalCurrentGraphicsContext work for PLATFORM(IOS_FAMILY):

#if PLATFORM(IOS_FAMILY)
    UIGraphicsPushContext(graphicsContext-&gt;platformContext());
    [image drawInRect:CGRectMake(0, 0, bitmap-&gt;size().width(), bitmap-&gt;size().height())];
    UIGraphicsPopContext();
#elif USE(APPKIT)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648342</commentid>
    <comment_count>4</comment_count>
      <attachid>398315</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-05-03 09:47:03 -0700</bug_when>
    <thetext>Created attachment 398315
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648412</commentid>
    <comment_count>5</comment_count>
      <attachid>398315</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-03 16:20:20 -0700</bug_when>
    <thetext>Comment on attachment 398315
Patch v1

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

&gt; Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:412
&gt; +    {
&gt; +        LocalCurrentGraphicsContext savedContext(*graphicsContext);
&gt; +        [image drawInRect:NSMakeRect(0, 0, bitmap-&gt;size().width(), bitmap-&gt;size().height()) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1 respectFlipped:YES hints:nil];
&gt; +    }

We don’t really need the braces here since the scope only goes one line further (after the return), but if you prefer it this way I am OK with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648431</commentid>
    <comment_count>6</comment_count>
      <attachid>398345</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-05-03 20:30:46 -0700</bug_when>
    <thetext>Created attachment 398345
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648432</commentid>
    <comment_count>7</comment_count>
      <attachid>398345</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-05-03 20:32:44 -0700</bug_when>
    <thetext>Comment on attachment 398345
Patch for landing

Marking cq+ since &quot;Patch v1&quot; passed all EWS queues and this simply removed curly braces creating a code block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648440</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-03 21:14:56 -0700</bug_when>
    <thetext>Committed r261071: &lt;https://trac.webkit.org/changeset/261071&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398345.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648441</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-03 21:15:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/62829922&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648476</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-04 01:27:10 -0700</bug_when>
    <thetext>Committed r261077: &lt;https://trac.webkit.org/changeset/261077&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648488</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-05-04 02:27:22 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #10)
&gt; Committed r261077: &lt;https://trac.webkit.org/changeset/261077&gt;

Thanks!  I’m amazed that EWS didn’t catch this.  :(</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398315</attachid>
            <date>2020-05-03 09:47:03 -0700</date>
            <delta_ts>2020-05-03 20:30:45 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-211274-20200503095004.patch</filename>
            <type>text/plain</type>
            <size>3976</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZmMDIyMmVlNzhmZjVk
YjE1MTJkZTIwNjc3YmI1YzI0N2YwY2NhMC4uYjBjMzU4MmVjZmVkMDRjMGE3N2Q3NTk5YWE0MjYz
Y2NhZjE1OWI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA1LTAzICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIExvY2FsQ3VycmVu
dEdyYXBoaWNzQ29udGV4dCBpbiBXZWJLaXQ6OmNvbnZlcnRQbGF0Zm9ybUltYWdlVG9CaXRtYXAo
KQorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjExMjc0PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL0xvY2FsQ3Vy
cmVudEdyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxDdXJyZW50R3Jh
cGhpY3NDb250ZXh0OjpMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Ojp+TG9jYWxDdXJyZW50R3JhcGhpY3ND
b250ZXh0KToKKyAgICAgICAgLSBFeHBvcnQgbWV0aG9kcyBmb3IgdXNlIGluIFdlYktpdC4KKwog
MjAyMC0wNS0wMiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAg
UGFnZTo6ZWRpdGFibGVFbGVtZW50c0luUmVjdCgpIHNob3VsZCByZXR1cm4gcm9vdCBlZGl0YWJs
ZSBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCA5YTgyNGVkODY3YWJhMjhhNGI5MDA0OGQxZDdmYTk5Nzk5
ZjU1NWFiLi5lNjdiNjU4ZWViNmM1MWMxMjgzMDQyYzFhMWQ4NzM4YTAzMzQ3NGU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA1LTAzICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBh
cHBsZS5jb20+CisKKyAgICAgICAgVXNlIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBpbiBX
ZWJLaXQ6OmNvbnZlcnRQbGF0Zm9ybUltYWdlVG9CaXRtYXAoKQorICAgICAgICA8aHR0cHM6Ly93
ZWJraXQub3JnL2IvMjExMjc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0Ojpjb252ZXJ0UGxhdGZvcm1JbWFnZVRvQml0bWFwKToKKyAgICAgICAgLSBV
c2UgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IHRvIHJlcGxhY2UgY29kZS4KKwogMjAyMC0w
NS0wMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBo
YW5kbGVXaGVlbEV2ZW50UGhhc2UoKSBzaG91bGQgaW5jbHVkZSB0aGUgcmVsZXZhbnQgU2Nyb2xs
aW5nTm9kZUlECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxD
dXJyZW50R3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9j
YWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmgKaW5kZXggZWZlYzg3Y2FkOTdkYjIwODE3ZmU3Zjhj
OGVhMWQ0MTY5ZTg2ZTI2NS4uMDBlYmQ0ZTJhOGY1ZjYzZmRhMjExNDc3MmZlOTFhNjQ2YjMwYjFj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdy
YXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1
cnJlbnRHcmFwaGljc0NvbnRleHQuaApAQCAtMzMsOCArMzMsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCk7CiBwdWJsaWM6Ci0gICAgTG9j
YWxDdXJyZW50R3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCYpOwotICAgIH5Mb2NhbEN1
cnJlbnRHcmFwaGljc0NvbnRleHQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBMb2NhbEN1cnJlbnRH
cmFwaGljc0NvbnRleHQoR3JhcGhpY3NDb250ZXh0Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgfkxv
Y2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCgpOwogICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQo
KTsKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0JiBtX3NhdmVkR3JhcGhpY3NDb250ZXh0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2Nv
YS5tbQppbmRleCA5ZjViMGEwNTkyNTFiZmJhNDkyMmZkYTk1MmM0NWFkZWRiNmI0ZTYyLi4yNzBk
MmVlMGIwYTNjZjZjMTQ0NWZlZTgyNmYyYjEwMGU5MWFlYjQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtNDAwLDE3ICs0
MDAsMTYgQEAgc3RhdGljIFJlZlB0cjxXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcD4gY29udmVydFBs
YXRmb3JtSW1hZ2VUb0JpdG1hcChDb2NvYUltYWdlICoKICAgICBhdXRvIGdyYXBoaWNzQ29udGV4
dCA9IGJpdG1hcC0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCk7CiAgICAgaWYgKCFncmFwaGljc0Nv
bnRleHQpCiAgICAgICAgIHJldHVybiBudWxscHRyOworCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICBVSUdyYXBoaWNzUHVzaENvbnRleHQoZ3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNv
bnRleHQoKSk7CiAgICAgW2ltYWdlIGRyYXdJblJlY3Q6Q0dSZWN0TWFrZSgwLCAwLCBiaXRtYXAt
PnNpemUoKS53aWR0aCgpLCBiaXRtYXAtPnNpemUoKS5oZWlnaHQoKSldOwogICAgIFVJR3JhcGhp
Y3NQb3BDb250ZXh0KCk7Ci0jZWxpZiBQTEFURk9STShNQUMpCi0gICAgYXV0byBzYXZlZENvbnRl
eHQgPSByZXRhaW5QdHIoW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSk7Ci0KLSAg
ICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0
IGdyYXBoaWNzQ29udGV4dFdpdGhDR0NvbnRleHQ6Z3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNv
bnRleHQoKSBmbGlwcGVkOllFU11dOwotICAgIFtpbWFnZSBkcmF3SW5SZWN0Ok5TTWFrZVJlY3Qo
MCwgMCwgYml0bWFwLT5zaXplKCkud2lkdGgoKSwgYml0bWFwLT5zaXplKCkuaGVpZ2h0KCkpIGZy
b21SZWN0Ok5TWmVyb1JlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VP
dmVyIGZyYWN0aW9uOjEgcmVzcGVjdEZsaXBwZWQ6WUVTIGhpbnRzOm5pbF07Ci0KLSAgICBbTlNH
cmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6c2F2ZWRDb250ZXh0LmdldCgpXTsKKyNl
bGlmIFVTRShBUFBLSVQpCisgICAgeworICAgICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRl
eHQgc2F2ZWRDb250ZXh0KCpncmFwaGljc0NvbnRleHQpOworICAgICAgICBbaW1hZ2UgZHJhd0lu
UmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6
ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5n
T3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlwcGVkOllFUyBoaW50czpu
aWxdOworICAgIH0KICNlbmRpZgogICAgIHJldHVybiBiaXRtYXA7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398345</attachid>
            <date>2020-05-03 20:30:46 -0700</date>
            <delta_ts>2020-05-03 21:14:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211274-20200503203349.patch</filename>
            <type>text/plain</type>
            <size>3743</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTUxOTliNzNkN2MwZTNk
MTM1MGJmMDI0ZmI1NjAxZjEyNWU5NTQ3OC4uYjc0MDliNjI3YzgzNzE2NTBiNDQ0MzRiMGNkZGNi
ZWFkYzQ0YmFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA1LTAzICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIExvY2FsQ3VycmVu
dEdyYXBoaWNzQ29udGV4dCBpbiBXZWJLaXQ6OmNvbnZlcnRQbGF0Zm9ybUltYWdlVG9CaXRtYXAo
KQorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjExMjc0PgorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVu
dEdyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxDdXJyZW50R3JhcGhp
Y3NDb250ZXh0OjpMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Ojp+TG9jYWxDdXJyZW50R3JhcGhpY3NDb250
ZXh0KToKKyAgICAgICAgLSBFeHBvcnQgbWV0aG9kcyBmb3IgdXNlIGluIFdlYktpdC4KKwogMjAy
MC0wNS0wMyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCBzdGF0aWMgYW5hbHl6ZXIgZmFsc2UgcG9zaXRpdmUgaW4gLVtXZWJVbmRlZmluZWQgdW5kZWZp
bmVkXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA5MTdkNzE5MzFmMzFkMThlZDlmYTNlY2MyYjFiMGYzNWM3ZTg0MTE0
Li43YTQxMDNjOTQzNjFlZTAxMDU5NmViMDQ5NTI5MjdiMzc5ZWIyYjg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDIwLTA1LTAzICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5j
b20+CisKKyAgICAgICAgVXNlIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBpbiBXZWJLaXQ6
OmNvbnZlcnRQbGF0Zm9ybUltYWdlVG9CaXRtYXAoKQorICAgICAgICA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMjExMjc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0Ojpjb252ZXJ0UGxhdGZvcm1JbWFnZVRvQml0bWFwKToKKyAgICAgICAgLSBVc2UgTG9jYWxD
dXJyZW50R3JhcGhpY3NDb250ZXh0IHRvIHJlcGxhY2UgY29kZS4KKwogMjAyMC0wNS0wMyAgRGF2
aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBkZWZhdWx0IGlu
aXRpYWxpemVycyBhbmQgZGVmYXVsdCBjb25zdHJ1Y3RvcnMgaW4gV2ViRXZlbnQuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29u
dGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5oCmluZGV4IGVmZWM4N2NhZDk3ZGIyMDgxN2ZlN2Y4YzhlYTFkNDE2OWU4NmUyNjUu
LjAwZWJkNGUyYThmNWY2M2ZkYTIxMTQ3NzJmZTkxYTY0NmIzMGIxYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250
ZXh0LmgKQEAgLTMzLDggKzMzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTG9jYWxD
dXJyZW50R3JhcGhpY3NDb250ZXh0IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMb2NhbEN1
cnJlbnRHcmFwaGljc0NvbnRleHQpOwogcHVibGljOgotICAgIExvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dChHcmFwaGljc0NvbnRleHQmKTsKLSAgICB+TG9jYWxDdXJyZW50R3JhcGhpY3NDb250
ZXh0KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0KEdy
YXBoaWNzQ29udGV4dCYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5Mb2NhbEN1cnJlbnRHcmFwaGlj
c0NvbnRleHQoKTsKICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0KCk7CiBwcml2YXRlOgogICAg
IEdyYXBoaWNzQ29udGV4dCYgbV9zYXZlZEdyYXBoaWNzQ29udGV4dDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggOWY1YjBh
MDU5MjUxYmZiYTQ5MjJmZGE5NTJjNDVhZGVkYjZiNGU2Mi4uY2NkN2U5NGQ5ZGY1ZTExY2EwZmMy
YzA4M2M4MzFiMDA5M2I4Nzk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTQwMCwxNyArNDAwLDE0IEBAIHN0YXRpYyBS
ZWZQdHI8V2ViS2l0OjpTaGFyZWFibGVCaXRtYXA+IGNvbnZlcnRQbGF0Zm9ybUltYWdlVG9CaXRt
YXAoQ29jb2FJbWFnZSAqCiAgICAgYXV0byBncmFwaGljc0NvbnRleHQgPSBiaXRtYXAtPmNyZWF0
ZUdyYXBoaWNzQ29udGV4dCgpOwogICAgIGlmICghZ3JhcGhpY3NDb250ZXh0KQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgVUlHcmFwaGlj
c1B1c2hDb250ZXh0KGdyYXBoaWNzQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkpOwogICAgIFtp
bWFnZSBkcmF3SW5SZWN0OkNHUmVjdE1ha2UoMCwgMCwgYml0bWFwLT5zaXplKCkud2lkdGgoKSwg
Yml0bWFwLT5zaXplKCkuaGVpZ2h0KCkpXTsKICAgICBVSUdyYXBoaWNzUG9wQ29udGV4dCgpOwot
I2VsaWYgUExBVEZPUk0oTUFDKQotICAgIGF1dG8gc2F2ZWRDb250ZXh0ID0gcmV0YWluUHRyKFtO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0pOwotCi0gICAgW05TR3JhcGhpY3NDb250
ZXh0IHNldEN1cnJlbnRDb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRX
aXRoQ0dDb250ZXh0OmdyYXBoaWNzQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBlZDpZ
RVNdXTsKKyNlbGlmIFVTRShBUFBLSVQpCisgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
IHNhdmVkQ29udGV4dCgqZ3JhcGhpY3NDb250ZXh0KTsKICAgICBbaW1hZ2UgZHJhd0luUmVjdDpO
U01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhl
aWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0
aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlwcGVkOllFUyBoaW50czpuaWxdOwot
Ci0gICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OnNhdmVkQ29udGV4dC5n
ZXQoKV07CiAjZW5kaWYKICAgICByZXR1cm4gYml0bWFwOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>