Fri, Nov 29, 9:09 AM CST

Renderosity Forums / Poser Python Scripting



Welcome to the Poser Python Scripting Forum

Forum Moderators: Staff

Poser Python Scripting F.A.Q (Last Updated: 2024 Sep 18 2:50 am)

We now have a ProPack Section in the Poser FreeStuff.
Check out the new Poser Python Wish List thread. If you have an idea for a script, jot it down and maybe someone can write it. If you're looking to write a script, check out this thread for useful suggestions.

Also, check out the official Python site for interpreters, sample code, applications, cool links and debuggers. This is THE central site for Python.

You can now attach text files to your posts to pass around scripts. Just attach the script as a txt file like you would a jpg or gif. Since the forum will use a random name for the file in the link, you should give instructions on what the file name should be and where to install it. Its a good idea to usually put that info right in the script file as well.

Checkout the Renderosity MarketPlace - Your source for digital art content!



Subject: Spawn Character script


svdl ( ) posted Thu, 20 April 2006 at 5:28 PM

Update: I ran into some unexpected trouble with ERC.

The problem is chained ERC. A good example are the breast morphs of Victoria 2: the chest morph is controlled by a full body morph, while the corresponding collar morphs are controlled by the chest morphs.
Another example of chained ERC is EasyPose.

For the ConsolidateMorph script to work exactly right on all figures it must be able to handle chained ERC. And the only way to discover how the ERC chains work is scanning the original .cr2 and possibly even .pz2 files. That is a LOT of work, and a lot of figuring out to do.

This problem affects the ConsolidateMorph and MorphFromMagnet scripts. It does not trouble the MorphFromObject script.

Sorry for the delay.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


Angelouscuitry ( ) posted Fri, 21 April 2006 at 2:58 PM

I'm glad to hear you both want the very best for the final output of this script, please do'nt sacrifice any of that for my part!    

I was just hoping to get alook at some bare bones if at all possible?

Sorry to hear you're having trouble with V2 ERC.  At the risk of sounding redundant, I'd suggest putting that too off until other more important features are ready, like V3..?

Your Loyal Beta',

Angelouscuitry~

/me think I'd better stop cluttering this thread up, so  that the master can keep busy!

=  )


Adavyss ( ) posted Mon, 29 May 2006 at 11:34 AM

@ **svdl

**Would it be possible to add an option where the code to switch the Figure IK off is included in the cr2 and the injector ?


Adavyss ( ) posted Mon, 29 May 2006 at 11:52 AM

Along the same line (reducing memory usage), would it be possible to use the architecture of your script to write a script which spawn only selected bodyparts and create a partial Figure?
For exemple, let's say I want to make a portrait, only the top part of the body is needed. A partial Figure would reduce memory usage.


svdl ( ) posted Mon, 29 May 2006 at 12:03 PM

There are two ways to switch off IK on loading:

  1. Renaming the leg IK chains
  2. Associating a Python script with the .cr2 that executes on load

Poser is hardcoded to switch on IK chains for Left Leg and Right Leg on figure load. I've tried turning off IK in the cr2, but Poser just ignores the .cr2 setting. Only by renaming the chains (to LeftLeg and RightLeg, a small change appears to be enough) I could prevent Poser from automatically turning on IK.

As for not exporting other body part, it is possible. Would be a nice addition to the script. I'd have to create a CR2 Writer object, but it can inherit a lot of stuff from the PZ2Writer object. I'll keep it in mind.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


Angelouscuitry ( ) posted Tue, 13 June 2006 at 6:35 PM · edited Tue, 13 June 2006 at 6:38 PM

Dear SVDL,

I hope you don’t mind my asking, but have we made any headway with this script, it's been well over a month since last I queried?

Just today I directed three other members over here to this thread; one for Morph Reduction, one for INJ/REM, and another for clothing.  These weren’t the first links to this thread I've posted, either.

I'm planning on testing out my new P4 Prescott 2.8Ghz, 4GB, ATX, with life sized renders, as soon as my V3 scene is complete, hopefully around mid-late summer, just to give you what kind of time frame I'm hoping for.

Any reply will be appreciated!

Sincerely,

Angelouscuitry~

=  )

 


jartz ( ) posted Tue, 13 June 2006 at 7:12 PM

Hey there,

I just thought I stopped by here, heard so much about your new Python script and I can't wait what you have in store.

It would do INJ/REM poses on P6 and/or Figures (unlike Millenium 3 Figures)?

I'll stop by for more updates.

Thanks Angelouscuitry for linking me here.

Cheers,

JB

____________________________________________________________________________________________________________________________

Asus N50-600 - Intel Core i5-8400 CPU @ 2.80GHz · Windows 10 Home/11 upgrade 64-bit · 16GB DDR4 RAM · 1TB SSD and 1TB HDD; Graphics: NVIDIA Geforce GTX 1060 - 6GB GDDR5 VRAM; Software: Poser Pro 11x


svdl ( ) posted Tue, 13 June 2006 at 7:54 PM

Hello all,

I've been extremely busy at work these last few weeks, and I'll be busy for another four weeks to come. End of the school year (I'm a teacher). I just don't have any opportunities to work on the script for more than half an hour at a time.

I hope to have the script finished by July 20 ore thereabouts.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


Tiny ( ) posted Thu, 15 June 2006 at 9:07 AM

Take your time and don't rush it.

Even if all of us wanted it "yesterday" we be happy to get a script like this at any time, I'm sure.
😄



Angelouscuitry ( ) posted Tue, 25 July 2006 at 7:05 PM

Hi SVDL,

     How has you summer been?  It looks like I might be wrapping up my V3 character, around the end of the season.  How are we doing?

=  )


svdl ( ) posted Tue, 01 August 2006 at 5:40 PM

Haven't been able to do much on the script, alas. Real life (work!!!) keeps on interfering...

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


AnAardvark ( ) posted Thu, 03 August 2006 at 12:42 PM

This looks great. I'm planning on trying it out with The Tailor 1.6 and/or Morph Magic soon. The problem with both of those two utilities is that it is either tedious, or slow, to transfer the morphs one at a time, and my custom figures typically have oodles of FBMs.


Angelouscuitry ( ) posted Thu, 03 August 2006 at 10:04 PM

I thought teachers had it easy in the summertime, have you taken on another job?

I spent last week exporting .OBJs one part at a time, sending Pythons after all my magnet, and stripping out my MTs with Morph Manager, and then reloading the .OBJs by hand..  I took V3 from 256MBs to a 12MB.RAR with all of the Inventory files!  M2 was like 100MBs back!  I'm just not sure where to look for INJ yet.  The new Figure only have 1 MT per part, but it's not named after any DAZ MTs.  Wouls SpawnCharacter be good for making an INK for me yet?  Where would it be loading the MTs from, could I provide MTs, for it to load, if/when I diftribute the INJ file? 

I bet SpawnCharacter.PY will have this process available within a few minutes someday!  I just still believe you've bitten off a more than your stomach has given you eyes for?

=  )


AnAardvark ( ) posted Fri, 04 August 2006 at 10:17 AM

I'm seeing some wierdness with Aiko -- in particular, the resulting head morphs have her eyes translated forward and apart from each other so that they don't sit right in her sockets. I'm not too worried personally, since I mostly am planning on using the tool to produce a single channel body morph for use in "The Tailor". I can use Injection Magic to create INJ/REM files for "normal" usage.


morphious ( ) posted Fri, 04 August 2006 at 10:25 AM

Could I posibly convince you to write a python script for mac poser that will do batch render? I'll pay you for it! I really need one badly. Just can't find one anywhere for mac. Thanks.


svdl ( ) posted Fri, 04 August 2006 at 11:31 AM

@morphious: what Poser version do you use? For Poser Pro Pack and Poser 5 it'll be tough, since Tkinter is broken on Mac OS 10. Poser 6 uses wxPython for its user interface, and I think it's not too difficult to convert existing batch render scripts to a Poser 6 user interface.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


morphious ( ) posted Fri, 04 August 2006 at 12:00 PM

Im using Poser 6 release 3. Guess I'm out of luck. There must be someone somewhere that can do it or already has. Hard to find though. I bet they would make some good extra cash from such a product.


svdl ( ) posted Fri, 04 August 2006 at 12:04 PM

Poser 6? Then you're IN luck. Any Poser 6 script that does NOT rely on Tkinter (which means most of them) will work equally well on PC and Mac.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


morphious ( ) posted Fri, 04 August 2006 at 12:58 PM

Do you know of such a script, or can you generate one? I'll pay you.


Insom_Nia ( ) posted Thu, 14 September 2006 at 5:48 AM

svdll,

THANK YOU so much for you script! :thumbupboth:

It works perfectly and was exactly what I was looking for desperatedly!

:woot:


shadownet ( ) posted Fri, 15 September 2006 at 6:46 PM

BM

(BTW, Svdl,  fantastic idea - bravo!)

Rob


HIM666 ( ) posted Thu, 02 November 2006 at 10:25 AM

WOW! This scrips is exactly what i needed to create INJ & REM for my custom morphed characters! Thanks to Angelouscuitry for pointing this out and of course thank you svdl for creating this! The finished INJ and REM also work fine in Daz Studio


ghelmer ( ) posted Tue, 17 April 2007 at 9:06 PM

BM

The GR00VY GH0ULIE!

You are pure, you are snow
We are the useless sluts that they mould
Rock n roll is our epiphany
Culture, alienation, boredom and despair


RetroDevil ( ) posted Tue, 18 September 2007 at 4:37 PM

Hi this sounds like a great script, ill try it out later! Is it possible to sell the morphs i create with this script. I read on Daz that the file for saleable morphs needs only to include delta info!

THanks again!

My Gallery


Angelouscuitry ( ) posted Thu, 27 September 2007 at 6:51 PM

SVDL - People are requesting a fast and easy way to creat INJ/REM sets all the time, and my first thought is always SpawnCharacter!  At some point somebody told me that the INJ'/REM sets, that SpawnCharacter creates, contains proprietary DAZ3D Morph Data; hence are not distributeable!

I IM'd you about this a couple weeks ago, but have not recieved a reply; is there any truth there, have you fixed the problem, or what is happening?


mylemonblue ( ) posted Thu, 22 November 2007 at 2:27 AM · edited Thu, 22 November 2007 at 2:30 AM

Does anyone know if there is a version of this that works on ApolloMax? I tried the version from the link here and it is not compatable. Also I see this thread has mention of "Consolidate Morphs." Is that available anywhere and will it work on Apollo? All I get with Apollo is the error message and no inj/rem is generated... Traceback (most recent call last): File "", line 221, in btnGenerateClick AttributeError: 'NoneType' object has no attribute 'SetValue' Yeah, I know...I read this and it says it's for Mill3 characters but I thought maybe to ask anyways. Thank you. :)

My brain is just a toy box filled with weird things


mylemonblue ( ) posted Thu, 22 November 2007 at 4:48 AM · edited Thu, 22 November 2007 at 4:57 AM

Man oh man this is tough stuff. Apollomax + Cole with Lee's JungleDude = 34mb large and I need to reduce all unused stuff out. Started at 10pm and it's now 3:30am and still no love. Morph Master 4 failed on him, the script from this page failed, the removemorphs script failed, attempting to export him as a .obj and recombine with Apollos stripped rigging failed(poser reorded verts again),... o_o; m(_ _)m ...no wonder I hardley play with poser anymore(it's always like this). Other thoughts-->Has anyone ever thought of making a independent python .obj importer/exporter for Poser? It borks it's own .obj exports way to often.

My brain is just a toy box filled with weird things


Angelouscuitry ( ) posted Thu, 22 November 2007 at 12:34 PM

PhilC has a python, for sale, that will import/export .obj files for each body part of a figure all at once.


lesbentley ( ) posted Sun, 23 December 2007 at 12:13 PM

Thanks svdl, for your wonderful SpawnCharacterP6.py script. It has proved very useful.

I use it on V3RR, I don't know if V3 is the same, but V3RR has targetGeom channels in the eyes, unfortunatly the "CorneaBulge" and "IrisIn" channels are set to 1.000 by default. I wonder if you would concidder including an exclusion switch for eye morph channels in  any future version? Whilst it is easy enough to zero these morphs, I keep forgetting to do so, with the result that I end up having to edit them out of the pz2.

Quote: "Working on a more user-friendly version. The current script should work on non-Millenium 3 figures too - including non-human figures."

Any news of the new version "ConsolidateMorphs". The ability to use this script on other figures would be a great advantage to me. I did use the SpawnCharacterP6 script on a mechanical figure once, but had to rename the actors and morph channels, then change them back after creating the pz2s, then edit the pz2s.

I realize this project would be a lot of work, so I don't blame you if you have dropped it, but I can't help hoping it's still in the pipeline.

As to the chained ERC, I would be happy to forgo support for that, as many figures don't use it, and the script would be very usefull for those figures that don't. It might even be usefull for figures that do use chained ERC, as I don't mind getting my hands dirty in a text editor to fix things.

I suspect that the best solution to many of the problems you face may be to have a list box (if that's the right phraise) with all targetGeom channels selected by default, the user could then deselect any morphs they don't want included in the consolidation and slaved to the valueParm, eg JCMs. If this could could allow the user to deselect a whole actor as well, all the better.

With scaling a simple checkbox to include or exclude scaling globally should surfice. The same for eye translations.

@Angelouscuitry

Quote: "At some point somebody told me that the INJ'/REM sets, that SpawnCharacter creates, contains proprietary DAZ3D Morph Data; hence are not distributeable!"

It depends. If you used any DAZ morphs (strictly speaking deltas), either by dialing them directly in the actors, or indirectly via FBM (valueParm) dials, then the injections will not be distributable, at least that's DAZ's position as I understand it. The best way to be sure you don't anger DAZ or anyone else, is to load your own custom murphs in a delta stripped version of the figure. DAZ provide such delta stripped versions for many of their figures, or you can create your own. There is nothing svdl can do to fix this, you either use other peoples deltas, in which case you can't distribute the morphs (unless you use RTEncoder or Objaction Mover, and a file containing the deltas as a seed), or you use your own deltas, in which case you can distribute. But no technical fix that svdl can come up with can turn DAZ's property into your property. Delta injections produced by SpawnCharacterP6.py are exactly the same as delta injections produced by any other means in this respect.


Angelouscuitry ( ) posted Sun, 23 December 2007 at 5:31 PM

"Other thoughts-->Has anyone ever thought of making a independent python .obj importer/exporter for Poser? It borks it's own .obj exports way to often."

markschum has developed the Export side, in a thread entitled "Need a python script"  And he has begun writing an other script, to do the importing; at a thread entitled "script to load morph geometry"

lesbently -  Thank you very much for clarifying this.  SVDL sent me an IM a few weels ago, which pointed out much of the same.  Objaction Mover has sure been such a huge help, over the years!


svdl ( ) posted Sun, 06 January 2008 at 8:09 PM

A small update: here's a script that can make exclusion files for SpawnCharacter and ConsolidateMorphs. Uses my P6XML library (included in the zip).

The P6XML library is still in a beta stage - needs cleanup, and most of all, it needs documentation. So don't expect too much....
www.svdlinden.nl/webposerstuff/downloads/exclusionlist.zip

Extract to your main Poser root folder. The script can be found as :runtime:Python:poserScripts:ScriptsMenu:SVDL:SpawnCharBase.py

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


Angelouscuitry ( ) posted Sun, 06 January 2008 at 8:45 PM

🆒  Wow, cool, thanks again!

😄  Will this script allow us to use SpawnCharacter.py with new figures; or edit the existing exclusion files?


svdl ( ) posted Sun, 06 January 2008 at 10:01 PM

Both.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


Angelouscuitry ( ) posted Fri, 11 January 2008 at 1:37 AM

Can we V4 yet?


svdl ( ) posted Sun, 13 January 2008 at 7:20 AM

About V4: I'm looking into that. V4.0 will work, V4.1 will require some experiments.

Had to recode a bit - the Python 2.2 in Poser 6 is missing some nice functionality that's present in the Python 2.4 of Poser 7

Here's some screen shots of the new user interface:

The base user interface:

The body part selector (for partial morphs):

I'd love some feedback on the user interface. Too cluttered? Better labels? Should I add a "Help" button? Let me know.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


svdl ( ) posted Sun, 13 January 2008 at 7:21 AM

By the way, this user interface works in both P6 and P7 (PC)

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


nickedshield ( ) posted Sun, 13 January 2008 at 9:19 AM

I think that interface looks very clean. Will the body panel be scrollable or use the sliders only?

I must remember to remember what it was I had to remember.


Angelouscuitry ( ) posted Sun, 13 January 2008 at 2:05 PM · edited Sun, 13 January 2008 at 2:08 PM

:tt1:  I'm really impressed, again!

Thank you for your inout about V4, I've had members ask with regard to Spawncharacter!  BTW, where can we see what Figures are supported currently?

I'm a little confused about a few things:

Are these wonderful screenshots all from the same script, which one?

I've never seen Consolidate Morphs before.  It looks alot like Spawncharacter.  Is it to replace Spawn Character?

And I've some even simpler questions:

Does the Exclusion list Editor have a "Exclude All", or "Keep All" button(s)?

If we are making a Figure, or an INJ Set, but not both; would both Folder Options's Locations still be asking for an entry?

:thumbupboth:


svdl ( ) posted Sun, 13 January 2008 at 2:22 PM

ConsolidateMorphs was like SpawnCharacter, but for figures without injection channels. The script I'm writing now will replace both ConsolidateMorphs and SpawnCharacter.

Supported figures: I'm striving for ALL. Including future unreleased figures. I'll have to research V4.1 and Apollo to find out if the script needs some extra code to work with them, but I can guarantee that the script will work with all stock Poser figures, V2,V3,V3 SAE, V3 NewGen, V4.0, M2, M3, Stephanie 1, Steph 3 Petite, David, Luke, Laura, Aiko 3, Hiro, Terai Yuki, Miki, Sara and Mayadoll.

The trick is that the script does not depend on any particular naming convention (except for heads - the script assumes that the figure will have a "neck" body part and a "head" body part.

So it'll probably even work on the Mil Horse and other non-human figures too.

Good idea, about those "Exclude All/None" and "Keep All/None" buttons. I'll add them.

The folder locations displayed are automatic defaults (they default to the root character/pose - and I'm ading props - folder of the main runtime) The user CAN change those locations, but doesn't have to.
If the user does change the folder locations, the script will (optionally) check if the new location is a character/pose/prop folder in a valid (external) runtime. The code to find out what runtimes are registered with Poser has already been tested - it works in both P6 and P7.

And yes, this is from one script.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


svdl ( ) posted Sun, 13 January 2008 at 2:30 PM

By the way, the new script will be able to handle multiple exclusion lists per character type.
And I just thought of something else: I'll add functionality so that the user can designate what body parts constitute the "head" for Head Morph Only. In human figures, this is usually head+neck (will be the default), but for other figures (horse, dragon) this might be different.
These data can be saved in a .INI file.

nickelshield: the scrollbars behave like the scrollbars in the standard P6 dialogs. Dragging the sliders works, clicking in the grooves works, and the mouse wheel scrolls vertically.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


svdl ( ) posted Sun, 13 January 2008 at 3:18 PM

Update on the user interface:

The option to save a magnet set to a Props folder has been added, including setting the correct folder:

And four buttons have been added to the Morph Exclusion/Magnet Exclusion dialog:

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


nickedshield ( ) posted Sun, 13 January 2008 at 4:15 PM

That is looking mighty professional. I'm glad to see you have included V3NewGen, my main figure:)

I must remember to remember what it was I had to remember.


Angelouscuitry ( ) posted Sun, 13 January 2008 at 4:43 PM · edited Sun, 13 January 2008 at 4:50 PM

Wow, cool; thanks!

I think I did'nt iterate what I meant about the Folder Option's Locations; and now I have others, about them:  Are they blank, by default?  Lets say I just want to make an INJ set; would I fill in the Pose Folder Location with where I want the INJ set to be created within, my Active Runtime's Pose folder(RuntimePose?)  And let's assume, again, that I just want to make an INJ Set(and that I knowwhat to write withig the Pose Folder Location field.)  At this point the presence of the Figure FOlder Location field would throw me, becasue I would'nt know what to do with it?  Could I just leave it alone, at that point?

I was surprised to see Magnet Options, and forgot mention mt delight!  So INJ files can now be created without first converting magnets to a morph?  And when a Magent Set is created, will it save each element, of each magent set?


svdl ( ) posted Sun, 13 January 2008 at 5:27 PM

Those folder locations default to the root figure, pose and prop library folders of your main Poser runtime. If you're not going to use Save Figure or Save Magnets, you can just ignore them - they won't be used.
So the defaults are NOT blank.

I'm thinking about a warning system: if you select 'Save Full INJ/REM poses' and you leave the Pose folder at its default, the system will come up with a warning that it would be wise to change the Pose folder location. If the user accepts the suggestion to change the folder, a DirChooser will automatically pop up.
If "Save Figure" is not selected, there will be no warning for the figure folder still being at its default value.
The same warning system will go for the Figure folder and Props folder.

As for the magnet set: ;yes, it will save each element from each set - excluding magnets that come with the main figure itself (for example, the V4 magnets). The idea is that the saved magnet prop can be applied to another figure (conforming clothes) from the generated library prop.

The "Define Head Parts" dialog has been isolated into a separate module, and can be run as standalone script, allowing the user to define head parts for a figure without having to start the full ConsolidateMorphsV2 script. The same will be done for the morph/magnet exclusion list dialogs.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


Angelouscuitry ( ) posted Sun, 13 January 2008 at 6:00 PM

:tt1: Thanks!

😕 O.K, it is safe to say, the whole Folder Opions area confuses me; what is it for?  Spawncharacter had something similar, but it was used to tell the script where to create the INJ Set; how is that done now?

😄


svdl ( ) posted Sun, 13 January 2008 at 6:48 PM

The same as in Spawn Character. The Figure folder is needed when the user want to save the spawned figure (useful for characters without injection channels), the Pose folder is needed when the user wants to save the INJ/REM morphs (for characters with injection channels), and the Magnet folder is needed when the user wants to save the magnet set.

Which folders will be actually used by the script depends on the checkmarks set in the 'Save Options:' panel

Think I'll have to write a user manual for this script?

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


Angelouscuitry ( ) posted Sun, 13 January 2008 at 9:29 PM

Aha, thanks.

I think I would have just named the Folder Options area "Destination...Something;" to let people become aware of it's purpose.

Otherwise this is remarkably intuitive!

Thanks again!


svdl ( ) posted Sun, 13 January 2008 at 9:34 PM

How about 'Figure Destination folder', 'Pose Destination Folder' and 'Magnet Destination Folder'?

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


Angelouscuitry ( ) posted Sun, 13 January 2008 at 9:37 PM

😄 Exactly!


svdl ( ) posted Mon, 14 January 2008 at 9:13 PM

Update: Save magnet set works. The whole magnet set, smartparented and all, in a single .pp2 file.

Hmm. Maybe I should also make a standalone "Save Magnet Set" script, using this codebase. I seem to remember someone needed it...

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.