Please try with my latest changes.

I think I fixed it.


> On Dec 24, 2019, at 12:03 PM, Carlos Rovira <[email protected]> wrote:
> 
> Hi Harbs,
> 
> the problem seems to affect the Basic DataGrid if you check DataGridExample
> you can see the error too.
> 
> In CruxGitHubCommitLogViewer the problem is:
> 
> Activating JSStageEvents
> [WARNING] getStaticConstantsByConvention :: the reflection target
> mx.rpc.http.mxml.HTTPService was not Compiled with default initializers
> enabled
> InjectProcessor set up [Inject( "configuratorService" )] on Bean{ source:
> [object Object], name: configurationDelegate }
> InjectProcessor set up [Inject] on Bean{ source: [object Object], name:
> configurationController }
> getProject executing in ConfigurationController via PostConstruct processing
> InjectProcessor set up [Inject( "commitsService" )] on Bean{ source:
> [object Object], name: commitsDelegate }
> InjectProcessor set up [Inject] on Bean{ source: [object Object], name:
> commitsController }
> InjectProcessor set up [Inject] on Bean{ source: [object Object], name:
> commitsController }
> RangeError: Maximum call stack size exceeded
>    at Array.concat (<anonymous>)
>    at crux.view.MainContent.goog.events.EventTarget.fireListeners
> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/examples/crux/CruxGitHubCommitLogViewer/target/javascript/bin/js-debug/library/closure/goog/events/eventtarget.js:271:34)
>    at Function.goog.events.EventTarget.dispatchEventInternal_
> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/examples/crux/CruxGitHubCommitLogViewer/target/javascript/bin/js-debug/library/closure/goog/events/eventtarget.js:372:27)
>    at
> org.apache.royale.html.DataGridButtonBar.goog.events.EventTarget.dispatchEvent
> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/examples/crux/CruxGitHubCommitLogViewer/target/javascript/bin/js-debug/library/closure/goog/events/eventtarget.js:196:35)
>    at
> org.apache.royale.html.DataGridButtonBar.org.apache.royale.events.EventDispatcher.dispatchEvent
> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Core/src/main/royale/org/apache/royale/events/EventDispatcher.as:94:32)
>    at
> org.apache.royale.html.DataGridButtonBar.org.apache.royale.core.ElementWrapper.dispatchEvent
> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ElementWrapper.as:370:44)
>    at org.apache.royale.express.beads.layouts.DataGridLayout.layout
> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Express/src/main/royale/org/apache/royale/express/beads/layouts/DataGridLayout.as:225:11)
>    at
> org.apache.royale.express.beads.layouts.DataGridLayout.org_apache_royale_express_beads_layouts_DataGridLayout_handleLayoutNeeded
> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Express/src/main/royale/org/apache/royale/express/beads/layouts/DataGridLayout.as:105:4)
>    at
> org.apache.royale.express.DataGrid.goog.events.EventTarget.fireListeners
> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/examples/crux/CruxGitHubCommitLogViewer/target/javascript/bin/js-debug/library/closure/goog/events/eventtarget.js:284:24)
>    at Function.goog.events.EventTarget.dispatchEventInternal_
> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/examples/crux/CruxGitHubCommitLogViewer/target/javascript/bin/js-debug/library/closure/goog/events/eventtarget.js:389:27)
> InjectProcessor set up [Inject( source="commitsController.commits.commits",
> bind="true" )] on Bean{ source: [object Object], name: null }
> InjectProcessor set up [Inject( source="configurationController.project",
> bind="true" )] on Bean{ source: [object Object], name: null }
> 
> 
> El mar., 24 dic. 2019 a las 10:33, Carlos Rovira (<[email protected]>)
> escribió:
> 
>> Hi Harbs,
>> 
>> thanks for taking the time to look into this and sorry for my delay in
>> response, as Piotr exposed I'm as well on Christmas time here in Spain, so
>> with few time, although hope to be around here from in some slices of time.
>> 
>> About the problem, I built all and check all Crux examples:
>> 
>> 
>>   - examples/crux/CruxQuickStart -> This is now working ok
>>   - examples/crux/CruxQuickStartBasic -> This is now working ok
>>   - examples/crux/CruxGitHubCommitLogViewer -> This is not working, not
>>   retrieve the GitHub data and even the DataGrid seems to be not laying the
>>   header right. Can you take a look at this one, maybe something was missing
>>   for make this working again.
>> 
>> 
>> I saw 2 test failing, but just see you fixed right now so I'll try to
>> rebuild again to check that part.
>> 
>> Anyway good work! :)
>> 
>> Carlos
>> 
>> 
>> 
>> El mar., 24 dic. 2019 a las 9:10, Harbs (<[email protected]>)
>> escribió:
>> 
>>> I realized that the reason bubbling is not working is because
>>> EventTarget.getParentEventTarget() is relying on parentEventTarget_ which
>>> is generally not set in Royale.
>>> 
>>> Royale already has a parent getter for objects which have hierarchy. I
>>> changed the method to simply return the parent instead of
>>> parentEventTarget_ which will be null if there is no parent or its not an
>>> IChild.
>>> 
>>> Ideally, the change should be in the EventTarget code, but I’m not trying
>>> to touch that. I overrode the the method in EventDispatcher. If the event
>>> does not have bubbling set to true, none of this should effect anything. If
>>> there are any apps which have bubbling events and are relying on Royale
>>> bubbling to be broken, they might break with this change… ;-)
>>> 
>>> Royale should now support event bubbling out of the box. :-)
>>> 
>>> Harbs
>>> 
>>>> On Dec 24, 2019, at 9:01 AM, Alex Harui <[email protected]>
>>> wrote:
>>>> 
>>>> I took a peek at the commit and made some comments on the commit thread
>>> that may help.
>>>> 
>>>> HTH,
>>>> -Alex
>>>> 
>>>> On 12/23/19, 2:24 PM, "Harbs" <[email protected] <mailto:
>>> [email protected]>> wrote:
>>>> 
>>>>   I read through what you did in JSStageEvents. That’s really quite
>>> ingenious. Well done! :-)
>>>> 
>>>>   I think we could use a similar approach for an application bead to
>>> support full event bubbling without modifying ElementWrapper and
>>> HTMLElementWrapper.
>>>> 
>>>>   I still have no idea what broke though.
>>>> 
>>>>   Let me know if I should revert the changes until someone has the
>>> time to look at this.
>>>> 
>>>>   Thanks,
>>>>   Harbs
>>>>> On Dec 23, 2019, at 10:59 PM, Greg Dove <[email protected]> wrote:
>>>>> 
>>>>> Iirc it was dispatching capture phase events that was 'difficult'. I
>>> think
>>>>> I had to override something and undo something in Royale that was
>>> switching
>>>>> off goog support for that. It was only needed in the JSStageEvents
>>>>> emulation stuff iirc. I have no idea what the issue is, but that is
>>>>> probably what I would look at first. Have to go now... I can look at
>>> this
>>>>> if needed but not for a few days.
>>>>> 
>>>>> On Tue, 24 Dec 2019, 09:38 Harbs, <[email protected]> wrote:
>>>>> 
>>>>>> AIUI, for bubbling to work automatically, setParentEventTarget needs
>>> to be
>>>>>> called to construct the hierarchy.
>>>>>> 
>>>>>> Maybe we should have a bead that takes care of this (on addedToParent
>>> or
>>>>>> something) for applications which rely on bubbling for
>>> non-browser-native
>>>>>> events.
>>>>>> 
>>>>>> There is a dispatchBubblingEvent in HTMLElementWrapper which forces
>>> the
>>>>>> event to bubble up for all events, but it’s JS only. We could add a
>>> method
>>>>>> for SWF for compatibility.
>>>>>> 
>>>>>> I just tested dispatchBubblingEvent and that makes the alert appear.
>>>>>> 
>>>>>> None of this explains why it worked before my change, though...
>>>>>> 
>>>>>>> On Dec 23, 2019, at 10:17 PM, Greg Dove <[email protected]> wrote:
>>>>>>> 
>>>>>>> Harbs, I can only check Crux in 4-5 days time.
>>>>>>> From memory I did set up something specific to make either capture or
>>>>>>> bubbling work, maybe that was for the 'addedToStage' event
>>> emulation. I
>>>>>>> think one of them (either capture or bubbling) was not working by
>>>>>> default,
>>>>>>> or did was not easy to enable by default.
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> On Tue, Dec 24, 2019 at 9:13 AM Harbs <[email protected]> wrote:
>>>>>>> 
>>>>>>>> Nope. Didn’t figure it out.
>>>>>>>> 
>>>>>>>> It looks like Crux listens on the ancestor and is relying on
>>> bubbling.
>>>>>>>> 
>>>>>>>> I’m guessing bubbling is not working, but I have no idea why that
>>> would
>>>>>>>> have changed with my commit.
>>>>>>>> 
>>>>>>>>> On Dec 23, 2019, at 10:06 PM, Piotr Zarzycki <
>>>>>> [email protected]>
>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Harbs,
>>>>>>>>> 
>>>>>>>>> I feel like Carlos has started his Christmas time ;) I'm glad that
>>> you
>>>>>>>>> figured it out! :)
>>>>>>>>> 
>>>>>>>>> pon., 23 gru 2019 o 21:01 Harbs <[email protected] <mailto:
>>>>>>>> [email protected]>> napisał(a):
>>>>>>>>> 
>>>>>>>>>> The asconfig file did not include the necessary metadata. Fixed
>>> that…
>>>>>>>>>> 
>>>>>>>>>> OK. I’m not getting any errors, but UserForm is dispatching an
>>> event
>>>>>> not
>>>>>>>>>> listened to by anyone.
>>>>>>>>>> 
>>>>>>>>>> Where is the listener supposed to be attached? Maybe it’s
>>> listening to
>>>>>>>> the
>>>>>>>>>> wrong object?
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>> On Dec 23, 2019, at 9:35 PM, Harbs <[email protected]>
>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> I’m getting an error that UserForm.user is null.
>>>>>>>>>>> 
>>>>>>>>>>> I have no idea where that should have been set, and I have no
>>> idea
>>>>>> how
>>>>>>>>>> my commit could have possibly effected that. I don’t see anything
>>> that
>>>>>>>>>> would initialize the user variable.
>>>>>>>>>>> 
>>>>>>>>>>> If you want my help on this, I’m going to need some direction.
>>>>>>>>>>> 
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Harbs
>>>>>>>>>>> 
>>>>>>>>>>>> On Dec 23, 2019, at 9:28 PM, Harbs <[email protected]
>>> <mailto:
>>>>>>>> [email protected]> <mailto:
>>>>>>>>>> [email protected] <mailto:[email protected]>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> I fixed this, but I have no idea what Crux is supposed to do.
>>>>>>>>>>>> 
>>>>>>>>>>>> What am I looking for?
>>>>>>>>>>>> 
>>>>>>>>>>>>> On Dec 23, 2019, at 8:30 PM, Harbs <[email protected]
>>> <mailto:
>>>>>>>> [email protected]> <mailto:
>>>>>>>>>> [email protected] <mailto:[email protected]>>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I can’t compile Jewel right now.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I’m getting an error:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> [java]
>>>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>> /Apache/royale-asjs/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/IconButton.as(104):
>>>>>>>>>> col: 13 Access of possibly undefined property classSelectorList.
>>>>>>>>>>>>> [java]
>>>>>>>>>>>>> [java]             classSelectorList.toggle("icon", (_icon !=
>>>>>>>>>> null));
>>>>>>>>>>>>> [java]             ^
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Dec 23, 2019, at 7:17 PM, Carlos Rovira <
>>>>>> [email protected]
>>>>>>>> <mailto:[email protected]>
>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]
>>>>>> 
>>>>>>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Compilation is ok. The problem is that example is not really
>>>>>>>> working.
>>>>>>>>>>>>>> In that example you should be able to fill the form and push
>>> the
>>>>>>>>>> button.
>>>>>>>>>>>>>> After that a JS Alert should be show with the ID of the user
>>>>>> record
>>>>>>>>>> saved.
>>>>>>>>>>>>>> That Alert is not show anymore.
>>>>>>>>>>>>>> If you revert locally that commit and recompile Core and then
>>> the
>>>>>>>>>> example
>>>>>>>>>>>>>> and run you'll be able to see it again.
>>>>>>>>>>>>>> We have a client complaining about the app stopped to work
>>> today
>>>>>>>>>> since they
>>>>>>>>>>>>>> are using Crux.
>>>>>>>>>>>>>> After investigation I was able to trace the problem to that
>>>>>> commit.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Carlos
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> El lun., 23 dic. 2019 a las 17:59, Harbs (<
>>> [email protected]
>>>>>>>> <mailto:[email protected]>
>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>>)
>>>>>>>> escribió:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I compiled CruxQuickStartBasic and I don’t see anything
>>> wrong.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Can you give me more clues?
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> FWIW, I used Ant, is the problem specific to Maven?
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> On Dec 23, 2019, at 6:26 PM, Carlos Rovira <
>>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]
>>>>>> 
>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Hi Harbs,
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> seems recent changes break Crux library
>>>>>>>>>>>>>>>> (commit: f50c9990a3190cf681364905525656984ab2e9c5 - Cleaned
>>> up
>>>>>>>>>>>>>>>> ElementWrapper and HTMLElementWrapper)
>>>>>>>>>>>>>>>> I'm trying to see what could be the problem. I suppose that
>>> is
>>>>>> the
>>>>>>>>>> change
>>>>>>>>>>>>>>>> of HTMLElementWrapper now extending ElementWrapper.
>>>>>>>>>>>>>>>> Tried to change one for the other in Crux library, but with
>>> no
>>>>>>>> luck
>>>>>>>>>>>>>>>> I'm using /examples/crux/CruxQuickStartBasic to test
>>>>>>>>>>>>>>>> Can you see what could be wrong?
>>>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Carlos
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> El dom., 22 dic. 2019 a las 17:24, Harbs (<
>>>>>> [email protected]
>>>>>>>> <mailto:[email protected]>
>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>>)
>>>>>>>>>>>>>>> escribió:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> There is lots of what looks like shared code, so could
>>>>>>>>>>>>>>>>> HTMLElementWrapper extend ElementWrapper?
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> Totally. Excellent idea.
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> On Dec 22, 2019, at 5:46 PM, Alex Harui
>>>>>>>> <[email protected] <mailto:[email protected]>
>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]
>>>>>> 
>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> In a quick look at history, HTMLElementWrapper's override
>>>>>> logic
>>>>>>>>>> was the
>>>>>>>>>>>>>>>>> same as ElementWrapper's.
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> Maybe as you upgraded HTMLElementWrapper's logic,
>>>>>> ElementWrapper
>>>>>>>>>> should
>>>>>>>>>>>>>>>>> have changed as well but didn't?
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> There is lots of what looks like shared code, so could
>>>>>>>>>>>>>>>>> HTMLElementWrapper extend ElementWrapper?
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> My 2 cents,
>>>>>>>>>>>>>>>>>> -Alex
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> On 12/22/19, 1:00 AM, "Harbs" <[email protected]
>>>>>> <mailto:
>>>>>>>> [email protected]> <mailto:
>>>>>>>>>> [email protected] <mailto:[email protected]>>> wrote:
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> We found a weird bug with events and currentTarget.
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> I traced the problem to the following:
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> The app loads both HTMLElementWrapper and ElementWrapper.
>>> The
>>>>>>>>>> lstener
>>>>>>>>>>>>>>>>> overrides in the two are stepping on each other. Here’s
>>> what
>>>>>>>>>> happens:
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 1. HTMLElementWrapper is loaded first. It replaces
>>>>>>>>>>>>>>>>> goog.events.fireListener with its fireListenerOverride
>>> function
>>>>>>>>>> (which
>>>>>>>>>>>>>>>>> calls the existing one when it’s done).
>>>>>>>>>>>>>>>>>> 2. ElementWrapper is loaded next and it replaces the
>>> existing
>>>>>>>>>>>>>>>>> goog.events.fireListener function — which was already
>>> changed
>>>>>> to
>>>>>>>>>> point
>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>> HTMLElementWrapper.fireListenerOverride with the one from
>>>>>>>>>>>>>>> ElementWrapper.
>>>>>>>>>>>>>>>>>> 3. When an event is actually dispatched,
>>>>>>>>>>>>>>>>> ElementWrapper.fireListenerOverride first changes the
>>> event to
>>>>>> a
>>>>>>>>>> royale
>>>>>>>>>>>>>>>>> BrowserEvent instead of a goog one.
>>>>>>>>>>>>>>> HTMLElementWrapper.fireListenerOverride
>>>>>>>>>>>>>>>>> is then called and where it expects a goog BrowserEvent,
>>> it in
>>>>>>>> fact
>>>>>>>>>>>>>>> gets a
>>>>>>>>>>>>>>>>> royale BrowserEvent. This causes the wrappedEvent to be the
>>>>>> wrong
>>>>>>>>>> type
>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>> messes things up down the line.
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> I’m not sure of the best way to fix this.
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> * We could check the event type in
>>>>>>>>>> HTMLElementWrapper/ElementWrapper,
>>>>>>>>>>>>>>>>> but that’s just-in-case code.
>>>>>>>>>>>>>>>>>> * I’m not completely sure why we need this logic in both
>>>>>>>>>>>>>>>>> ElementWrapper and HTMLElementWrapper. Is there something
>>> that
>>>>>>>> can
>>>>>>>>>> be
>>>>>>>>>>>>>>>>> changed there?
>>>>>>>>>>>>>>>>>> * Maybe there’s some way for ElementWrapper to know that
>>> some
>>>>>>>>>> other
>>>>>>>>>>>>>>>>> class is installing an override?
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> Thoughts?
>>>>>>>>>>>>>>>>>> Harbs
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>> Carlos Rovira
>>>>>>>>>>>>>>>> 
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0>>
>>> <
>>>>>>>> 
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0>
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Carlos Rovira
>>>>>>>>>>>>>> 
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0>
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0>>
>>> <
>>>>>>>> 
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0>
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> --
>>>>>>>>> 
>>>>>>>>> Piotr Zarzycki
>>>>>>>>> 
>>>>>>>>> Patreon: *
>>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=BPJwWOdHi1NDnDQ7vujOyeQNUInTpQDUQ%2FQ0isRcamc%3D&amp;reserved=0
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=BPJwWOdHi1NDnDQ7vujOyeQNUInTpQDUQ%2FQ0isRcamc%3D&amp;reserved=0>
>>> <
>>>>>>>> 
>>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&amp;sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&amp;reserved=0
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&amp;sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&amp;reserved=0
>>>>> 
>>>>>>>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&amp;sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&amp;reserved=0
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&amp;sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&amp;reserved=0>
>>> <
>>>>>>>> 
>>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&amp;sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&amp;reserved=0
>>> <
>>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&amp;sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&amp;reserved=0
>>>>>> *
>>> 
>>> 
>> 
>> --
>> Carlos Rovira
>> http://about.me/carlosrovira
>> 
>> 
> 
> -- 
> Carlos Rovira
> http://about.me/carlosrovira

Reply via email to