Yes. The changes did break things. I committed an alternate way of fixing things.
There is a discussion on Github on how strictly we avoid changing typeNames: https://github.com/apache/royale-asjs/commit/c01ebc2cc946570006d8f5cea607182e16eaf0fe#r27788371 <https://github.com/apache/royale-asjs/commit/c01ebc2cc946570006d8f5cea607182e16eaf0fe#r27788371> Thoughts? Harbs > On Feb 25, 2018, at 6:15 PM, Piotr Zarzycki <piotrzarzyck...@gmail.com> wrote: > > I just pushed changes to MDL. With couple of exceptions all typeNames > landed to constructor. Thanks to that changes some components started to > work better. I'm wondering whether I do not break anything. > > Harbs, > > If you are using something more than MDL Dialog in your application it > would be great to get feedback whether I didn't break for you anything. :) > > Thanks, Piotr > > 2018-02-24 17:53 GMT+01:00 Alex Harui <aha...@adobe.com.invalid>: > >> Sorry, I wasn't clear. The function itself can go in Basic or better yet, >> Core, since I don't think it has any dependencies and can be use anywhere. >> I was just saying that I would prefer if none of the Basic components or >> UIBase used your new function. You should be able to write a Royale app >> with Basic and not bring in that function. Not that it isn't useful, but >> it isn't truly "basic" given that Basic components are supposed to have >> typeNames. >> >> My 2 cents, >> -Alex >> >> On 2/24/18, 8:17 AM, "Piotr Zarzycki" <piotrzarzyck...@gmail.com> wrote: >> >>> I was going to put it somewhere in the Basic, but I can leave it in the >>> MDL. The className can be undefined in the case where you wanted to add >>> something to such "undefinded" string you will got: >>> >>> "undefined myClass". - I probably cannot escape from that... >>> >>> Maybe I'm missing some way. >>> >>> 2018-02-24 17:00 GMT+01:00 Alex Harui <aha...@adobe.com.invalid>: >>> >>>> Looks ok to me. Seems like you don't need COMPILE::JS. It should work >>>> on >>>> all platforms. We can have lots of utility functions in >>>> org.apache.royale.utils. >>>> >>>> In terms of optimization (size/performance) a function like this is >>>> potentially overkill for the Basic set. It is fine for MDL since MDL >>>> has >>>> already picked up additional overhead in order to style "everything". >>>> But >>>> I subscribe to what I learned from a wise programmer many years ago: If >>>> you truly understand the problem space, you can often find a smaller, >>>> faster solution. Like I said, if you know that there "must" be at least >>>> one string from typenames as the last string, the replacement is much >>>> easier. All of the extra null checking and trimming in your version is >>>> not really needed for the specific problem of replacing from a set of >>>> string you know about that don't need trimming. >>>> >>>> My 2 cents, >>>> -Alex >>>> >>>> On 2/24/18, 4:50 AM, "Piotr Zarzycki" <piotrzarzyck...@gmail.com> >> wrote: >>>> >>>>> Alex, >>>>> >>>>> I used your suggestion, added some additional things and I end up with >>>>> following utility [1]. Usage will looks like that: [2]. Do you think it >>>>> could be part of the framework ? It's working nicely with MDL. >>>>> >>>>> [1] >>>>> https://na01.safelinks.protection.outlook.com/?url= >>>> https%3A%2F%2Fpaste.apa >>>>> che.org%2FtsaF&data=02%7C01%7Caharui%40adobe.com% >>>> 7C91e633a78bea4fc4c89908d >>>>> 57b853bdf%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >>>> 7C636550734524475642& >>>>> sdata=O%2BZn0ajlM6A2Q0tBEBvDDtZZcNQYNOBsCn1kO0fgdPo%3D&reserved=0 >>>>> [2] >>>>> https://na01.safelinks.protection.outlook.com/?url= >>>> https%3A%2F%2Fpaste.apa >>>>> che.org%2Fxbfb&data=02%7C01%7Caharui%40adobe.com% >>>> 7C91e633a78bea4fc4c89908d >>>>> 57b853bdf%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >>>> 7C636550734524475642& >>>>> sdata=j0n83ksobPZfR0YY7oMBJMU1dzx7fcW%2FNOmLd1S%2BL0o%3D&reserved=0 >>>>> >>>>> Thanks, Piotr >>>>> >>>>> >>>>> >>>>> 2018-02-23 21:31 GMT+01:00 Alex Harui <aha...@adobe.com.invalid>: >>>>> >>>>>> Well, whether you like it or not, the wrapper is mapping a >>>>>> space-delimited >>>>>> list to the array so if you manipulate the array you have to >>>>>> back-calculate the string. IMO, in HTML, the "class" property is a >>>>>> string >>>>>> and people are used to entering a space-delimited list. That's why >>>> we >>>>>> have a className property on UIBase. So that folks have something >>>>>> similar >>>>>> in MXML. >>>>>> >>>>>> So, unfortunately, your problem can't be as simple as manipulating >>>>>> classList via its APIs. Also consider that the classList API might >>>>>> itself >>>>>> be doing a string search in the array. >>>>>> >>>>>> If you have the string "Piotr Alex Harbs" and want to replace Alex >>>> with >>>>>> Peter and you know that Alex can't be the last item because the last >>>>>> item >>>>>> is the typeName which is never null or "", then a simple >>>> String.replace >>>>>> call should work. >>>>>> >>>>>> className = className.replace(oldName + " ", newName + " "); >>>>>> >>>>>> HTH, >>>>>> -Alex >>>>>> >>>>>> On 2/23/18, 12:21 PM, "Piotr Zarzycki" <piotrzarzyck...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> It's just swapping. If I have following code [1] - it is easier to >>>>>>> manipulate classList than className which is simple string. What >>>>>> utility >>>>>>> could look like ? It would be manipulating strings, which is less >>>>>>> convenient. >>>>>>> >>>>>>> [1] >>>>>>> https://na01.safelinks.protection.outlook.com/?url= >>>>>> https%3A%2F%2Fpaste.apa >>>>>>> che.org%2Fat0H&data=02%7C01%7Caharui%40adobe.com% >>>>>> 7C061f7278ca3748bfaee408d >>>>>>> 57afb14a9%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >>>>>> 7C636550141162759398& >>>>>>> sdata=76W6lkZuIxUbO5mDtenl4g88zmRPsHaA1evyvvk7O08%3D&reserved=0 >>>>>>> >>>>>>> 2018-02-23 21:11 GMT+01:00 Alex Harui <aha...@adobe.com.invalid>: >>>>>>> >>>>>>>> Just compiler. No need for asjs changes at this time I think. >>>>>>>> >>>>>>>> I'm still unclear on why you need to manipulate classList >>>> directly. >>>>>> Is >>>>>>>> there some code that is in the JS from Material that manipulates >>>>>>>> classList? Or are you just trying to swap out a name on the >>>>>> classList? >>>>>>>> If the latter, why not just create some utility function that >>>>>> operates >>>>>>>> on >>>>>>>> className and not the underlying element? >>>>>>>> >>>>>>>> -Aleex >>>>>>>> >>>>>>>> On 2/23/18, 11:58 AM, "Piotr Zarzycki" <piotrzarzyck...@gmail.com >>> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> You did merge vivid compiler changes or also changes from asjs >>>>>>>> repository. >>>>>>>>> >>>>>>>>> As for my work on MDL. I ended up with something like that [1]. >>>> The >>>>>>>>> question now how to propagate that code ? This is code for the >>>>>>>> component >>>>>>>>> which manipulates classList. Should I create some parent class ? >>>>>>>> General/ >>>>>>>>> for MDL only, or Bead which will be included into such classes ? >>>>>>>>> Theoretically bead could listen for initComplete. >>>>>>>>> >>>>>>>>> [1] >>>>>>>>> https://na01.safelinks.protection.outlook.com/?url= >>>>>>>> https%3A%2F%2Fpaste.apa >>>>>>>>> che.org%2F1dy2&data=02%7C01%7Caharui%40adobe.com% >>>>>>>> 7C8e313e7d7f9d4608759f08d >>>>>>>>> 57af7d477%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >>>>>>>> 7C636550127203173382& >>>>>>>>> sdata=NkxHZQlHtOeJzWC%2BIyxxst89DlX0CCUa9VeGpztTL2s% >> 3D&reserved=0 >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> Piotr >>>>>>>>> >>>>>>>>> 2018-02-23 20:53 GMT+01:00 Alex Harui <aha...@adobe.com.invalid >>> : >>>>>>>>> >>>>>>>>>> I think I have Maven using the basic.css appropriately. There >>>> is >>>>>> no >>>>>>>> way >>>>>>>>>> to default to including a SWC in Maven and then not use it in a >>>>>> child >>>>>>>>>> project, so all example poms that aren't MDL need to bring in >>>> the >>>>>>>>>> BasicTheme. >>>>>>>>>> >>>>>>>>>> Also, I had to merge the compiler change from vivid-ui-set >>>> branch >>>>>> to >>>>>>>> get >>>>>>>>>> the theme SWC to work in Maven. >>>>>>>>>> >>>>>>>>>> -Alex >>>>>>>>>> >>>>>>>>>> On 2/23/18, 8:04 AM, "Alex Harui" <aha...@adobe.com.INVALID> >>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> MDL does not want the basic.css theme. That is why we are >>>> moving >>>>>>>>>> styles >>>>>>>>>>> from Basic:swc's defaults.css to themes/basic.css. I see that >>>>>> the >>>>>>>>>> Maven >>>>>>>>>>> plugin doesn't allow specification of a theme, so that's >>>> another >>>>>>>> task. >>>>>>>>>> I >>>>>>>>>>> can do it if nobody wants to take that on. So, yes, move the >>>>>> Button >>>>>>>>>>> selectors from defaults.css to basic.css if that helps, but I >>>>>> will >>>>>>>> say >>>>>>>>>>> that I didn't notice those styles taking effect in my local >>>>>> version >>>>>>>> of >>>>>>>>>>> MDLTabsExample and assumed that mdl had overridden those >>>> styles. >>>>>> As >>>>>>>>>>> Carlos said, in the end we want basic.css to be compliant CSS >>>> so >>>>>>>> don't >>>>>>>>>>> move anything with ClassReference as the value without >>>> discussing >>>>>>>>>> first. >>>>>>>>>>> >>>>>>>>>>> TypeNames should be set after the call to super(). Look at >>>> Label >>>>>>>> and >>>>>>>>>>> MultilineLabel. They are working fine for me. They are being >>>>>> used >>>>>>>> in >>>>>>>>>>> RoyaleStore. There might have been issues before yesterday >>>>>> because >>>>>>>>>> lots >>>>>>>>>>> of Basic components were setting ClassName, but I went and >>>>>> cleaned >>>>>>>>>> that up >>>>>>>>>>> although I could have missed a few. >>>>>>>>>>> >>>>>>>>>>> In complex Views, you have two choices: Make a subclass or >>>>>> assign >>>>>>>> the >>>>>>>>>>> className. We should try to set set typeNames. In fact, >>>> maybe >>>>>> we >>>>>>>>>> should >>>>>>>>>>> make typeNames protected. >>>>>>>>>>> >>>>>>>>>>> So, for ComboBoxView, the current code is setting a custom >>>>>> className >>>>>>>>>> which >>>>>>>>>>> is valid. Users can then style it further by adding a >>>>>>>>>> .ComboBoxTextInput >>>>>>>>>>> selector to their CSS. However, class selectors are not >>>> pruned by >>>>>>>> the >>>>>>>>>>> compiler. So in other cases, we have created a real subclass >>>> (in >>>>>>>> this >>>>>>>>>>> case "ComboBoxTextInput extends TextInput) and then the CSS >>>> would >>>>>>>> not >>>>>>>>>> have >>>>>>>>>>> the "." in front so it would look like a type selector and the >>>>>>>> compiler >>>>>>>>>>> would prune it from apps that don't use a ComboBox. Not sure >>>>>> which >>>>>>>> is >>>>>>>>>>> better/faster, >>>>>>>>>>> >>>>>>>>>>> Regarding Peter's point about Labels in Menus. The issue >>>> isn't >>>>>> that >>>>>>>>>> Flash >>>>>>>>>>> can't handle it. It is that our SimpleCSSValuesImpl lookup >>>>>> doesn't >>>>>>>>>> handle >>>>>>>>>>> descendant and other advanced selectors. The techniques for >>>>>>>>>> ComboBoxView >>>>>>>>>>> is how we avoid requiring a more complex lookup on the SWF >>>> side. >>>>>>>> The >>>>>>>>>> menu >>>>>>>>>>> code should not be setting typeNames on other things, only >>>>>> itself. >>>>>>>> I'm >>>>>>>>>>> not sure if on the JS side, avoiding descendant selectors >>>> speeds >>>>>>>>>> things up >>>>>>>>>>> in the browser or not. We could create an IValuesImpl with >>>>>>>> descendant >>>>>>>>>>> selector support on the SWF side and probably will someday. >>>>>>>> Volunteers >>>>>>>>>>> are welcome to take that on. >>>>>>>>>>> >>>>>>>>>>> Of course, I could be wrong... >>>>>>>>>>> -Alex >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 2/23/18, 7:37 AM, "Piotr Zarzycki" >>>> <piotrzarzyck...@gmail.com >>>>> >>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> A bit more on point 1. and let's take for the example simple >>>>>>>> Button. >>>>>>>>>> We >>>>>>>>>>>> have some styles for Button in Basic.css. MDL Button extends >>>>>>>>>> TextButton - >>>>>>>>>>>> some styles naturally has been added from default.css. >>>>>>>>>>>> >>>>>>>>>>>> If I create theme I should achieve that my theme classes will >>>>>>>> override >>>>>>>>>>>> default.css Button styles and I should be good yes ? >>>>>>>>>>>> >>>>>>>>>>>> Am I understand it correctly ? >>>>>>>>>>>> Thanks, Piotr >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> 2018-02-23 16:32 GMT+01:00 Piotr Zarzycki >>>>>>>> <piotrzarzyck...@gmail.com >>>>>>>>> : >>>>>>>>>>>> >>>>>>>>>>>>> Alex, >>>>>>>>>>>>> >>>>>>>>>>>>> I have started to work on MDL and move all typeNames from >>>>>>>>>> createElement >>>>>>>>>>>>> to >>>>>>>>>>>>> constructor. Unfortunately something is not right here. >>>>>>>>>>>>> >>>>>>>>>>>>> 1) I still need to exclude BasicJS.swc:default.css - I did >>>> add >>>>>>>>>> theme to >>>>>>>>>>>>> MaterialDesignLite module maven build - it didn't help. >>>>>>>>>>>>> 2) If I cannot setup typeNames and classNames inside my >>>>>>>> component, >>>>>>>>>> how >>>>>>>>>>>>> can >>>>>>>>>>>>> I achieve switching some UI parts of the component ? In MDL >>>>>> it is >>>>>>>>>> quite >>>>>>>>>>>>> common that if I would like to change component I'm adding >>>> to >>>>>> it >>>>>>>> css >>>>>>>>>>>>> class. >>>>>>>>>>>>> [1] - This is the example. If I remove line it doesn't >>>> work. >>>>>>>> There >>>>>>>>>> are >>>>>>>>>>>>> several places in MDL where we are doing such things. It is >>>>>>>> common >>>>>>>>>> in >>>>>>>>>>>>> JS >>>>>>>>>>>>> world doing such things. >>>>>>>>>>>>> >>>>>>>>>>>>> typeNames = element.className; >>>>>>>>>>>>> >>>>>>>>>>>>> Thoughts ? >>>>>>>>>>>>> >>>>>>>>>>>>> [1] >>>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url= >>>>>>>>>> https%3A%2F%2Fpaste.a >>>>>>>>>>>>> p >>>>>>>>>>>>> ache.org%2Fat0H&data=02%7C01%7Caharui%40adobe.com% >>>>>>>>>> 7Ca44c142f0ddc455c70bf >>>>>>>>>>>>> 0 >>>>>>>>>>>>> 8d57ad361e6%7Cfa7b1b5a7b34438794aed2c178de >>>>>>>>>> cee1%7C0%7C0%7C636549970664822 >>>>>>>>>>>>> 4 >>>>>>>>>>>>> 53&sdata=1sSgdfBy%2BAv%2FsFIYwVFFHvVlhtJ3w3TW% >>>>>>>>>> 2FiDEyPVYGmo%3D&reserved=0 >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> Piotr >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> 2018-02-23 15:55 GMT+01:00 Piotr Zarzycki >>>>>>>>>> <piotrzarzyck...@gmail.com>: >>>>>>>>>>>>> >>>>>>>>>>>>>> Peter, >>>>>>>>>>>>>> >>>>>>>>>>>>>> That is interesting what you are saying. What will happen >>>>>> then >>>>>>>> if >>>>>>>>>> you >>>>>>>>>>>>>> have class which extends other one. The parent class is >>>>>> setting >>>>>>>>>>>>>> typeNames >>>>>>>>>>>>>> and derived one also before super? The parent one will >>>>>> override >>>>>>>> it? >>>>>>>>>>>>>> >>>>>>>>>>>>>> I cannot check now how typeNames is implemented. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Piotr >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Fri, Feb 23, 2018, 15:13 Peter Ent >>>>>> <p...@adobe.com.invalid> >>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> I have been guilty of this and have been using typeNames >>>>>> now. >>>>>>>> I've >>>>>>>>>>>>>>> found >>>>>>>>>>>>>>> that I need to set typeNames before calling super() in >>>> the >>>>>>>>>>>>>>> constructor. I >>>>>>>>>>>>>>> thought it was done afterwards, but if I set typeNames >>>> after >>>>>>>>>> calling >>>>>>>>>>>>>>> super(), the typeName I set does not show up in the HTML >>>>>>>> produced. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Also, suppose I have this: A Menu with a label inside of >>>> it. >>>>>>>>>> People >>>>>>>>>>>>>>> will >>>>>>>>>>>>>>> want to change the background color of the menu and the >>>>>> color >>>>>>>> of >>>>>>>>>> the >>>>>>>>>>>>>>> label's text. If I were doing this in plain HTML/JS/CSS, >>>> I >>>>>>>> would >>>>>>>>>> set >>>>>>>>>>>>>>> a >>>>>>>>>>>>>>> selector: .Menu .Label { color: blue; } but that's not >>>>>>>> supported >>>>>>>>>> in >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>> Flash Player. So when I set up the typeName for the label >>>>>>>> inside >>>>>>>>>> of >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>> Menu should I set it to: Menu_Label or MenuLabel or >>>>>> Menu-Label? >>>>>>>>>> And >>>>>>>>>>>>>>> is >>>>>>>>>>>>>>> using "." in a selector name a good idea? I would think >>>> the >>>>>> CSS >>>>>>>>>>>>>>> processor >>>>>>>>>>>>>>> in the browser would be confused between ".x.y" and ".x >>>> .y" >>>>>>>> which >>>>>>>>>> can >>>>>>>>>>>>>>> also >>>>>>>>>>>>>>> be written as ".x.y". Basically, we should have a consist >>>>>>>> naming >>>>>>>>>>>>>>> pattern >>>>>>>>>>>>>>> here. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> ‹peter >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 2/23/18, 4:09 AM, "Gabe Harbs" <harbs.li...@gmail.com >>> >>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> There¹s some edge cases which seem problematic. One >>>>>> example: >>>>>>>>>>>>>>>> ComboBoxBiew has the following: >>>>>>>>>>>>>>>> input = new TextInput(); >>>>>>>>>>>>>>>> input.className = "ComboBoxTextInput"; >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> button = new TextButton(); >>>>>>>>>>>>>>>> button.className = >>>>>>>>>>>>>>>> "opt_org-apache.royale-html-ComboBox_Button"; >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Input and button are both external to the view class, >>>> but >>>>>> are >>>>>>>>>>>>>>> managed by >>>>>>>>>>>>>>>> the view class. On the other hand, there is a chance >>>> that >>>>>> the >>>>>>>>>> user >>>>>>>>>>>>>>> might >>>>>>>>>>>>>>>> wan to style them. I¹m not sure whether className or >>>>>>>> typeNames is >>>>>>>>>>>>>>> more >>>>>>>>>>>>>>>> appropriate hereŠ >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Harbs >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Feb 23, 2018, at 11:03 AM, Gabe Harbs >>>>>>>>>> <harbs.li...@gmail.com> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I¹ll help. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Feb 23, 2018, at 10:50 AM, Alex Harui >>>>>>>>>>>>>>> <aha...@adobe.com.INVALID> >>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Quick note before I shut down for the night. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> UIBase has both a typeNames and className property. >>>>>>>>>> TypeNames is >>>>>>>>>>>>>>> used >>>>>>>>>>>>>>>>>> to >>>>>>>>>>>>>>>>>> emulate Flex-like type selectors in the CSS lookup. >>>> It >>>>>>>>>> should be >>>>>>>>>>>>>>> set >>>>>>>>>>>>>>>>>> in >>>>>>>>>>>>>>>>>> the constructor and never set from outside the class. >>>>>>>> There >>>>>>>>>> are >>>>>>>>>>>>>>> a >>>>>>>>>>>>>>> few >>>>>>>>>>>>>>>>>> classes in Basic and lots of classes in MDL that >>>> should >>>>>> be >>>>>>>>>>>>>>> upgraded >>>>>>>>>>>>>>> to >>>>>>>>>>>>>>>>>> set >>>>>>>>>>>>>>>>>> typeNames in the constructor. Subclasses can append >>>> to >>>>>> the >>>>>>>>>> base >>>>>>>>>>>>>>>>>> class's >>>>>>>>>>>>>>>>>> typeNames >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> className is the opposite. It should never be set >>>>>> inside >>>>>>>> the >>>>>>>>>>>>>>>>>> component's >>>>>>>>>>>>>>>>>> class. It is for users of that component to set >>>> styles >>>>>> on >>>>>>>> the >>>>>>>>>>>>>>>>>> component. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Can we get a volunteer to clean this up? >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>> -Alex >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> >>>>>>>>>>>>> Piotr Zarzycki >>>>>>>>>>>>> >>>>>>>>>>>>> Patreon: >>>>>>>>>>>>> *https://na01.safelinks.protection.outlook.com/?url= >>>>>>>>>> https%3A%2F%2Fwww.pa >>>>>>>>>>>>> t >>>>>>>>>>>>> reon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com >>>>>>>>>> %7Ca44c142f0dd >>>>>>>>>>>>> c >>>>>>>>>>>>> 455c70bf08d57ad361e6%7Cfa7b1b5a7b34438794aed2c178de >>>>>>>>>> cee1%7C0%7C0%7C636549 >>>>>>>>>>>>> 9 >>>>>>>>>>>>> 70664822453&sdata=RxqP6b0L0BmWiiX3t6QdtbiA3YwoJR >>>>>>>>>> FFjSWC8LaxmWI%3D&reserve >>>>>>>>>>>>> d >>>>>>>>>>>>> =0 >>>>>>>>>>>>> >>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url= >>>>>>>>>> https%3A%2F%2Fwww.pa >>>>>>>>>>>>> t >>>>>>>>>>>>> reon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com >>>>>>>>>> %7Ca44c142f0dd >>>>>>>>>>>>> c >>>>>>>>>>>>> 455c70bf08d57ad361e6%7Cfa7b1b5a7b34438794aed2c178de >>>>>>>>>> cee1%7C0%7C0%7C636549 >>>>>>>>>>>>> 9 >>>>>>>>>>>>> 70664822453&sdata=RxqP6b0L0BmWiiX3t6QdtbiA3YwoJR >>>>>>>>>> FFjSWC8LaxmWI%3D&reserve >>>>>>>>>>>>> d >>>>>>>>>>>>> =0>* >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> >>>>>>>>>>>> Piotr Zarzycki >>>>>>>>>>>> >>>>>>>>>>>> Patreon: >>>>>>>>>>>> *https://na01.safelinks.protection.outlook.com/?url= >>>>>>>>>> https%3A%2F%2Fwww.pat >>>>>>>>>>>> r >>>>>>>>>>>> eon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com >>>>>>>>>> %7Ca44c142f0ddc4 >>>>>>>>>>>> 5 >>>>>>>>>>>> 5c70bf08d57ad361e6%7Cfa7b1b5a7b34438794aed2c178de >>>>>>>>>> cee1%7C0%7C0%7C636549970 >>>>>>>>>>>> 6 >>>>>>>>>> >>>>>>>>>>>> 64822453&sdata=RxqP6b0L0BmWiiX3t6QdtbiA3YwoJR >>>>>>>> FFjSWC8LaxmWI%3D&reserved= >>>>>>>>>>>> 0 >>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url= >>>>>>>>>> https%3A%2F%2Fwww.pat >>>>>>>>>>>> r >>>>>>>>>>>> eon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com >>>>>>>>>> %7Ca44c142f0ddc4 >>>>>>>>>>>> 5 >>>>>>>>>>>> 5c70bf08d57ad361e6%7Cfa7b1b5a7b34438794aed2c178de >>>>>>>>>> cee1%7C0%7C0%7C636549970 >>>>>>>>>>>> 6 >>>>>>>>>>>> 64822453&sdata=RxqP6b0L0BmWiiX3t6QdtbiA3YwoJR >>>>>>>>>> FFjSWC8LaxmWI%3D&reserved=0> >>>>>>>>>>>> * >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> Piotr Zarzycki >>>>>>>>> >>>>>>>>> Patreon: >>>>>>>>> *https://na01.safelinks.protection.outlook.com/?url= >>>>>>>> https%3A%2F%2Fwww.patr >>>>>>>>> eon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com% >>>>>>>> 7C8e313e7d7f9d46 >>>>>>>>> 08759f08d57af7d477%7Cfa7b1b5a7b34438794aed2c178de >>>>>>>> cee1%7C0%7C0%7C6365501272 >>>>>>>> >>>>>>>>> 03173382&sdata=CTWhfUy0ILGvvx3HwRbmnkSZ3Nf5ay >>>>>> lHwldhGDulDOE%3D&reserved=0 >>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url= >>>>>>>> https%3A%2F%2Fwww.patr >>>>>>>>> eon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com% >>>>>>>> 7C8e313e7d7f9d46 >>>>>>>>> 08759f08d57af7d477%7Cfa7b1b5a7b34438794aed2c178de >>>>>>>> cee1%7C0%7C0%7C6365501272 >>>>>>>>> 03173382&sdata=CTWhfUy0ILGvvx3HwRbmnkSZ3Nf5ay >>>>>>>> lHwldhGDulDOE%3D&reserved=0>* >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> Piotr Zarzycki >>>>>>> >>>>>>> Patreon: >>>>>>> *https://na01.safelinks.protection.outlook.com/?url= >>>>>> https%3A%2F%2Fwww.patr >>>>>>> eon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com% >>>>>> 7C061f7278ca3748 >>>>>>> bfaee408d57afb14a9%7Cfa7b1b5a7b34438794aed2c178de >>>>>> cee1%7C0%7C0%7C6365501411 >>>>>> >>>>>>> 62759398&sdata=rpVtPRF2nJb03vSLEIQiK0K3uzGMs6 >>>> 6vbTZtOxsVXKs%3D&reserved=0 >>>>>>> <https://na01.safelinks.protection.outlook.com/?url= >>>>>> https%3A%2F%2Fwww.patr >>>>>>> eon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com% >>>>>> 7C061f7278ca3748 >>>>>>> bfaee408d57afb14a9%7Cfa7b1b5a7b34438794aed2c178de >>>>>> cee1%7C0%7C0%7C6365501411 >>>>>>> 62759398&sdata=rpVtPRF2nJb03vSLEIQiK0K3uzGMs6 >>>>>> 6vbTZtOxsVXKs%3D&reserved=0>* >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> Piotr Zarzycki >>>>> >>>>> Patreon: >>>>> *https://na01.safelinks.protection.outlook.com/?url= >>>> https%3A%2F%2Fwww.patr >>>>> eon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com% >>>> 7C91e633a78bea4f >>>>> c4c89908d57b853bdf%7Cfa7b1b5a7b34438794aed2c178de >>>> cee1%7C0%7C0%7C6365507345 >>>>> 24475642&sdata=dG08yDIsBZVQ1XNIJIjCCqFgQwgmNQ >>>> HJQSQ7ds5O%2F38%3D&reserved=0 >>>>> <https://na01.safelinks.protection.outlook.com/?url= >>>> https%3A%2F%2Fwww.patr >>>>> eon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com% >>>> 7C91e633a78bea4f >>>>> c4c89908d57b853bdf%7Cfa7b1b5a7b34438794aed2c178de >>>> cee1%7C0%7C0%7C6365507345 >>>>> 24475642&sdata=dG08yDIsBZVQ1XNIJIjCCqFgQwgmNQ >>>> HJQSQ7ds5O%2F38%3D&reserved=0 >>>>>> * >>>> >>>> >>> >>> >>> -- >>> >>> Piotr Zarzycki >>> >>> Patreon: >>> *https://na01.safelinks.protection.outlook.com/?url= >> https%3A%2F%2Fwww.patr >>> eon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com% >> 7C0c4af859745d4f >>> 1e55fb08d57ba22da3%7Cfa7b1b5a7b34438794aed2c178de >> cee1%7C0%7C0%7C6365508588 >>> 36682085&sdata=vcTmV4sMSk3ZfhGCKd4mX6%2ByAb8saVYLysyZnCX%2FV8M%3D& >> reserved >>> =0 >>> <https://na01.safelinks.protection.outlook.com/?url= >> https%3A%2F%2Fwww.patr >>> eon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com% >> 7C0c4af859745d4f >>> 1e55fb08d57ba22da3%7Cfa7b1b5a7b34438794aed2c178de >> cee1%7C0%7C0%7C6365508588 >>> 36682085&sdata=vcTmV4sMSk3ZfhGCKd4mX6%2ByAb8saVYLysyZnCX%2FV8M%3D& >> reserved >>> =0>* >> >> > > > -- > > Piotr Zarzycki > > Patreon: *https://www.patreon.com/piotrzarzycki > <https://www.patreon.com/piotrzarzycki>*