<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.datagirl.xyz/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Flurry</id>
	<title>girlwiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.datagirl.xyz/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Flurry"/>
	<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/wiki/Special:Contributions/Flurry"/>
	<updated>2026-06-02T21:02:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=246</id>
		<title>MediaWiki:Darkvector.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=246"/>
		<updated>2025-01-08T06:04:00Z</updated>

		<summary type="html">&lt;p&gt;Flurry: boy i sure wish i could test this without making a million edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will affect users of the DarkVector skin */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
	font-size: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input,&lt;br /&gt;
textarea,&lt;br /&gt;
table.mw_metadata td,&lt;br /&gt;
table.mw_metadata th,&lt;br /&gt;
table.wikitable,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;th,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;td,&lt;br /&gt;
pre {&lt;br /&gt;
	background-color: #2b2b2b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*! pastels on dark syntax highlighting */&lt;br /&gt;
.mw-highlight, .mw-highlight pre, .mw-highlight table { background: #2B2B2B ; }&lt;br /&gt;
.mw-highlight .hll { background: #ffffcc ; color: #fff; }&lt;br /&gt;
.mw-highlight  { background: #2B2B2B ; color: #E6E1DC ; }&lt;br /&gt;
.mw-highlight .c { color: #555555 ; } /* Comment */&lt;br /&gt;
.mw-highlight .err { color: #E6E1DC ; } /* Error */&lt;br /&gt;
.mw-highlight .g { color: #E6E1DC ; } /* Generic */&lt;br /&gt;
.mw-highlight .k { color: #4D74D0 ; } /* Keyword */&lt;br /&gt;
.mw-highlight .l { color: #E6E1DC ; } /* Literal */&lt;br /&gt;
.mw-highlight .n, .mw-highlight .h { color: #E6E1DC ; } /* Name */&lt;br /&gt;
.mw-highlight .o { color: #E6E1DC ; } /* Operator */&lt;br /&gt;
.mw-highlight .x { color: #E6E1DC ; } /* Other */&lt;br /&gt;
.mw-highlight .p { color: #E6E1DC ; } /* Punctuation */&lt;br /&gt;
.mw-highlight .cm { color: #555555 ; } /* Comment.Multiline */&lt;br /&gt;
.mw-highlight .cp { color: #E6E1DC ; } /* Comment.Preproc */&lt;br /&gt;
.mw-highlight .c1 { color: #555555 ; } /* Comment.Single */&lt;br /&gt;
.mw-highlight .cs { color: #555555 ; } /* Comment.Special */&lt;br /&gt;
.mw-highlight .gd { color: #E6E1DC ; background: #660000 ; } /* Generic.Deleted */&lt;br /&gt;
.mw-highlight .ge { color: #E6E1DC ; } /* Generic.Emph */&lt;br /&gt;
.mw-highlight .gr { color: #FFC66D ; background: #990000 ; } /* Generic.Error */&lt;br /&gt;
.mw-highlight .gh { color: #FFFFFF ; } /* Generic.Heading */&lt;br /&gt;
.mw-highlight .gi { color: #E6E1DC ; background: #519F50 ; } /* Generic.Inserted */&lt;br /&gt;
.mw-highlight .go { color: #E6E1DC ; } /* Generic.Output */&lt;br /&gt;
.mw-highlight .gp { color: #E6E1DC ; } /* Generic.Prompt */&lt;br /&gt;
.mw-highlight .gs { color: #E6E1DC ; } /* Generic.Strong */&lt;br /&gt;
.mw-highlight .gu { color: #FFFFFF ; } /* Generic.Subheading */&lt;br /&gt;
.mw-highlight .gt { color: #E6E1DC ; } /* Generic.Traceback */&lt;br /&gt;
.mw-highlight .kc { color: #4D74D0 ; } /* Keyword.Constant */&lt;br /&gt;
.mw-highlight .kd { color: #4D74D0 ; } /* Keyword.Declaration */&lt;br /&gt;
.mw-highlight .kn { color: #4D74D0 ; } /* Keyword.Namespace */&lt;br /&gt;
.mw-highlight .kp { color: #4D74D0 ; } /* Keyword.Pseudo */&lt;br /&gt;
.mw-highlight .kr { color: #4D74D0 ; } /* Keyword.Reserved */&lt;br /&gt;
.mw-highlight .kt { color: #C1C144 ; } /* Keyword.Type */&lt;br /&gt;
.mw-highlight .ld { color: #E6E1DC ; } /* Literal.Date */&lt;br /&gt;
.mw-highlight .m { color: #A5C261 ; } /* Literal.Number */&lt;br /&gt;
.mw-highlight .s { color: #AD9361 ; } /* Literal.String */&lt;br /&gt;
.mw-highlight .na { color: #6782D3 ; } /* Name.Attribute */&lt;br /&gt;
.mw-highlight .nb { color: #E6E1DC ; } /* Name.Builtin */&lt;br /&gt;
.mw-highlight .nc { color: #E6E1DC ; } /* Name.Class */&lt;br /&gt;
.mw-highlight .no { color: #A1A1FF ; } /* Name.Constant */&lt;br /&gt;
.mw-highlight .nd { color: #E6E1DC ; } /* Name.Decorator */&lt;br /&gt;
.mw-highlight .ni { color: #47B8D6 ; } /* Name.Entity */&lt;br /&gt;
.mw-highlight .ne { color: #E6E1DC ; } /* Name.Exception */&lt;br /&gt;
.mw-highlight .nf { color: #6782D3 ; } /* Name.Function */&lt;br /&gt;
.mw-highlight .nl { color: #E6E1DC ; } /* Name.Label */&lt;br /&gt;
.mw-highlight .nn { color: #E6E1DC ; } /* Name.Namespace */&lt;br /&gt;
.mw-highlight .nx { color: #E6E1DC ; } /* Name.Other */&lt;br /&gt;
.mw-highlight .py { color: #E6E1DC ; } /* Name.Property */&lt;br /&gt;
.mw-highlight .nt { color: #4D74D0 ; } /* Name.Tag */&lt;br /&gt;
.mw-highlight .nv { color: #C1C144 ; } /* Name.Variable */&lt;br /&gt;
.mw-highlight .ow { color: #E6E1DC ; } /* Operator.Word */&lt;br /&gt;
.mw-highlight .w { color: #E6E1DC ; } /* Text.Whitespace */&lt;br /&gt;
.mw-highlight .mf { color: #A5C261 ; } /* Literal.Number.Float */&lt;br /&gt;
.mw-highlight .mh { color: #A5C261 ; } /* Literal.Number.Hex */&lt;br /&gt;
.mw-highlight .mi { color: #A5C261 ; } /* Literal.Number.Integer */&lt;br /&gt;
.mw-highlight .mo { color: #A5C261 ; } /* Literal.Number.Oct */&lt;br /&gt;
.mw-highlight .sb { color: #AD9361 ; } /* Literal.String.Backtick */&lt;br /&gt;
.mw-highlight .sc { color: #AD9361 ; } /* Literal.String.Char */&lt;br /&gt;
.mw-highlight .sd { color: #AD9361 ; } /* Literal.String.Doc */&lt;br /&gt;
.mw-highlight .s2 { color: #AD9361 ; } /* Literal.String.Double */&lt;br /&gt;
.mw-highlight .se { color: #AD9361 ; } /* Literal.String.Escape */&lt;br /&gt;
.mw-highlight .sh { color: #AD9361 ; } /* Literal.String.Heredoc */&lt;br /&gt;
.mw-highlight .si { color: #AD9361 ; } /* Literal.String.Interpol */&lt;br /&gt;
.mw-highlight .sx { color: #AD9361 ; } /* Literal.String.Other */&lt;br /&gt;
.mw-highlight .sr { color: #AD9361 ; } /* Literal.String.Regex */&lt;br /&gt;
.mw-highlight .s1 { color: #AD9361 ; } /* Literal.String.Single */&lt;br /&gt;
.mw-highlight .ss { color: #AD9361 ; } /* Literal.String.Symbol */&lt;br /&gt;
.mw-highlight .bp { color: #E6E1DC ; } /* Name.Builtin.Pseudo */&lt;br /&gt;
.mw-highlight .vc { color: #C1C144 ; } /* Name.Variable.Class */&lt;br /&gt;
.mw-highlight .vg { color: #C1C144 ; } /* Name.Variable.Global */&lt;br /&gt;
.mw-highlight .vi { color: #C1C144 ; } /* Name.Variable.Instance */&lt;br /&gt;
.mw-highlight .il { color: #A5C261 ; } /* Literal.Number.Integer.Long */&lt;br /&gt;
&lt;br /&gt;
.ace-tm { background-color: #2b2b2b !important; }&lt;br /&gt;
&lt;br /&gt;
.mw-message-box-warning { background-color: #555149; color: #fff; }&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output a.external { background-image: url(/w/resources/src/mediawiki.skinning/images/external-ltr-dark.svg); }&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=245</id>
		<title>MediaWiki:Darkvector.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=245"/>
		<updated>2025-01-08T06:03:08Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will affect users of the DarkVector skin */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
	font-size: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input,&lt;br /&gt;
textarea,&lt;br /&gt;
table.mw_metadata td,&lt;br /&gt;
table.mw_metadata th,&lt;br /&gt;
table.wikitable,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;th,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;td,&lt;br /&gt;
pre {&lt;br /&gt;
	background-color: #2b2b2b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*! pastels on dark syntax highlighting */&lt;br /&gt;
.mw-highlight, .mw-highlight pre, .mw-highlight table { background: #2B2B2B ; }&lt;br /&gt;
.mw-highlight .hll { background: #ffffcc ; color: #fff; }&lt;br /&gt;
.mw-highlight  { background: #2B2B2B ; color: #E6E1DC ; }&lt;br /&gt;
.mw-highlight .c { color: #555555 ; } /* Comment */&lt;br /&gt;
.mw-highlight .err { color: #E6E1DC ; } /* Error */&lt;br /&gt;
.mw-highlight .g { color: #E6E1DC ; } /* Generic */&lt;br /&gt;
.mw-highlight .k { color: #4D74D0 ; } /* Keyword */&lt;br /&gt;
.mw-highlight .l { color: #E6E1DC ; } /* Literal */&lt;br /&gt;
.mw-highlight .n, .mw-highlight .h { color: #E6E1DC ; } /* Name */&lt;br /&gt;
.mw-highlight .o { color: #E6E1DC ; } /* Operator */&lt;br /&gt;
.mw-highlight .x { color: #E6E1DC ; } /* Other */&lt;br /&gt;
.mw-highlight .p { color: #E6E1DC ; } /* Punctuation */&lt;br /&gt;
.mw-highlight .cm { color: #555555 ; } /* Comment.Multiline */&lt;br /&gt;
.mw-highlight .cp { color: #E6E1DC ; } /* Comment.Preproc */&lt;br /&gt;
.mw-highlight .c1 { color: #555555 ; } /* Comment.Single */&lt;br /&gt;
.mw-highlight .cs { color: #555555 ; } /* Comment.Special */&lt;br /&gt;
.mw-highlight .gd { color: #E6E1DC ; background: #660000 ; } /* Generic.Deleted */&lt;br /&gt;
.mw-highlight .ge { color: #E6E1DC ; } /* Generic.Emph */&lt;br /&gt;
.mw-highlight .gr { color: #FFC66D ; background: #990000 ; } /* Generic.Error */&lt;br /&gt;
.mw-highlight .gh { color: #FFFFFF ; } /* Generic.Heading */&lt;br /&gt;
.mw-highlight .gi { color: #E6E1DC ; background: #519F50 ; } /* Generic.Inserted */&lt;br /&gt;
.mw-highlight .go { color: #E6E1DC ; } /* Generic.Output */&lt;br /&gt;
.mw-highlight .gp { color: #E6E1DC ; } /* Generic.Prompt */&lt;br /&gt;
.mw-highlight .gs { color: #E6E1DC ; } /* Generic.Strong */&lt;br /&gt;
.mw-highlight .gu { color: #FFFFFF ; } /* Generic.Subheading */&lt;br /&gt;
.mw-highlight .gt { color: #E6E1DC ; } /* Generic.Traceback */&lt;br /&gt;
.mw-highlight .kc { color: #4D74D0 ; } /* Keyword.Constant */&lt;br /&gt;
.mw-highlight .kd { color: #4D74D0 ; } /* Keyword.Declaration */&lt;br /&gt;
.mw-highlight .kn { color: #4D74D0 ; } /* Keyword.Namespace */&lt;br /&gt;
.mw-highlight .kp { color: #4D74D0 ; } /* Keyword.Pseudo */&lt;br /&gt;
.mw-highlight .kr { color: #4D74D0 ; } /* Keyword.Reserved */&lt;br /&gt;
.mw-highlight .kt { color: #C1C144 ; } /* Keyword.Type */&lt;br /&gt;
.mw-highlight .ld { color: #E6E1DC ; } /* Literal.Date */&lt;br /&gt;
.mw-highlight .m { color: #A5C261 ; } /* Literal.Number */&lt;br /&gt;
.mw-highlight .s { color: #AD9361 ; } /* Literal.String */&lt;br /&gt;
.mw-highlight .na { color: #6782D3 ; } /* Name.Attribute */&lt;br /&gt;
.mw-highlight .nb { color: #E6E1DC ; } /* Name.Builtin */&lt;br /&gt;
.mw-highlight .nc { color: #E6E1DC ; } /* Name.Class */&lt;br /&gt;
.mw-highlight .no { color: #A1A1FF ; } /* Name.Constant */&lt;br /&gt;
.mw-highlight .nd { color: #E6E1DC ; } /* Name.Decorator */&lt;br /&gt;
.mw-highlight .ni { color: #47B8D6 ; } /* Name.Entity */&lt;br /&gt;
.mw-highlight .ne { color: #E6E1DC ; } /* Name.Exception */&lt;br /&gt;
.mw-highlight .nf { color: #6782D3 ; } /* Name.Function */&lt;br /&gt;
.mw-highlight .nl { color: #E6E1DC ; } /* Name.Label */&lt;br /&gt;
.mw-highlight .nn { color: #E6E1DC ; } /* Name.Namespace */&lt;br /&gt;
.mw-highlight .nx { color: #E6E1DC ; } /* Name.Other */&lt;br /&gt;
.mw-highlight .py { color: #E6E1DC ; } /* Name.Property */&lt;br /&gt;
.mw-highlight .nt { color: #4D74D0 ; } /* Name.Tag */&lt;br /&gt;
.mw-highlight .nv { color: #C1C144 ; } /* Name.Variable */&lt;br /&gt;
.mw-highlight .ow { color: #E6E1DC ; } /* Operator.Word */&lt;br /&gt;
.mw-highlight .w { color: #E6E1DC ; } /* Text.Whitespace */&lt;br /&gt;
.mw-highlight .mf { color: #A5C261 ; } /* Literal.Number.Float */&lt;br /&gt;
.mw-highlight .mh { color: #A5C261 ; } /* Literal.Number.Hex */&lt;br /&gt;
.mw-highlight .mi { color: #A5C261 ; } /* Literal.Number.Integer */&lt;br /&gt;
.mw-highlight .mo { color: #A5C261 ; } /* Literal.Number.Oct */&lt;br /&gt;
.mw-highlight .sb { color: #AD9361 ; } /* Literal.String.Backtick */&lt;br /&gt;
.mw-highlight .sc { color: #AD9361 ; } /* Literal.String.Char */&lt;br /&gt;
.mw-highlight .sd { color: #AD9361 ; } /* Literal.String.Doc */&lt;br /&gt;
.mw-highlight .s2 { color: #AD9361 ; } /* Literal.String.Double */&lt;br /&gt;
.mw-highlight .se { color: #AD9361 ; } /* Literal.String.Escape */&lt;br /&gt;
.mw-highlight .sh { color: #AD9361 ; } /* Literal.String.Heredoc */&lt;br /&gt;
.mw-highlight .si { color: #AD9361 ; } /* Literal.String.Interpol */&lt;br /&gt;
.mw-highlight .sx { color: #AD9361 ; } /* Literal.String.Other */&lt;br /&gt;
.mw-highlight .sr { color: #AD9361 ; } /* Literal.String.Regex */&lt;br /&gt;
.mw-highlight .s1 { color: #AD9361 ; } /* Literal.String.Single */&lt;br /&gt;
.mw-highlight .ss { color: #AD9361 ; } /* Literal.String.Symbol */&lt;br /&gt;
.mw-highlight .bp { color: #E6E1DC ; } /* Name.Builtin.Pseudo */&lt;br /&gt;
.mw-highlight .vc { color: #C1C144 ; } /* Name.Variable.Class */&lt;br /&gt;
.mw-highlight .vg { color: #C1C144 ; } /* Name.Variable.Global */&lt;br /&gt;
.mw-highlight .vi { color: #C1C144 ; } /* Name.Variable.Instance */&lt;br /&gt;
.mw-highlight .il { color: #A5C261 ; } /* Literal.Number.Integer.Long */&lt;br /&gt;
&lt;br /&gt;
.ace-tm { background-color: #2b2b2b !important; }&lt;br /&gt;
&lt;br /&gt;
.mw-message-box-warning { background-color: #555149; color: #fff; }&lt;br /&gt;
&lt;br /&gt;
.external { background-image: url(/w/resources/src/mediawiki.skinning/images/external-ltr-dark.svg); }&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=244</id>
		<title>MediaWiki:Darkvector.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=244"/>
		<updated>2025-01-08T05:58:27Z</updated>

		<summary type="html">&lt;p&gt;Flurry: mistakes were made&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will affect users of the DarkVector skin */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
	font-size: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input,&lt;br /&gt;
textarea,&lt;br /&gt;
table.mw_metadata td,&lt;br /&gt;
table.mw_metadata th,&lt;br /&gt;
table.wikitable,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;th,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;td,&lt;br /&gt;
pre {&lt;br /&gt;
	background-color: #2b2b2b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*! pastels on dark syntax highlighting */&lt;br /&gt;
.mw-highlight, .mw-highlight pre, .mw-highlight table { background: #2B2B2B ; }&lt;br /&gt;
.mw-highlight .hll { background: #ffffcc ; color: #fff; }&lt;br /&gt;
.mw-highlight  { background: #2B2B2B ; color: #E6E1DC ; }&lt;br /&gt;
.mw-highlight .c { color: #555555 ; } /* Comment */&lt;br /&gt;
.mw-highlight .err { color: #E6E1DC ; } /* Error */&lt;br /&gt;
.mw-highlight .g { color: #E6E1DC ; } /* Generic */&lt;br /&gt;
.mw-highlight .k { color: #4D74D0 ; } /* Keyword */&lt;br /&gt;
.mw-highlight .l { color: #E6E1DC ; } /* Literal */&lt;br /&gt;
.mw-highlight .n, .mw-highlight .h { color: #E6E1DC ; } /* Name */&lt;br /&gt;
.mw-highlight .o { color: #E6E1DC ; } /* Operator */&lt;br /&gt;
.mw-highlight .x { color: #E6E1DC ; } /* Other */&lt;br /&gt;
.mw-highlight .p { color: #E6E1DC ; } /* Punctuation */&lt;br /&gt;
.mw-highlight .cm { color: #555555 ; } /* Comment.Multiline */&lt;br /&gt;
.mw-highlight .cp { color: #E6E1DC ; } /* Comment.Preproc */&lt;br /&gt;
.mw-highlight .c1 { color: #555555 ; } /* Comment.Single */&lt;br /&gt;
.mw-highlight .cs { color: #555555 ; } /* Comment.Special */&lt;br /&gt;
.mw-highlight .gd { color: #E6E1DC ; background: #660000 ; } /* Generic.Deleted */&lt;br /&gt;
.mw-highlight .ge { color: #E6E1DC ; } /* Generic.Emph */&lt;br /&gt;
.mw-highlight .gr { color: #FFC66D ; background: #990000 ; } /* Generic.Error */&lt;br /&gt;
.mw-highlight .gh { color: #FFFFFF ; } /* Generic.Heading */&lt;br /&gt;
.mw-highlight .gi { color: #E6E1DC ; background: #519F50 ; } /* Generic.Inserted */&lt;br /&gt;
.mw-highlight .go { color: #E6E1DC ; } /* Generic.Output */&lt;br /&gt;
.mw-highlight .gp { color: #E6E1DC ; } /* Generic.Prompt */&lt;br /&gt;
.mw-highlight .gs { color: #E6E1DC ; } /* Generic.Strong */&lt;br /&gt;
.mw-highlight .gu { color: #FFFFFF ; } /* Generic.Subheading */&lt;br /&gt;
.mw-highlight .gt { color: #E6E1DC ; } /* Generic.Traceback */&lt;br /&gt;
.mw-highlight .kc { color: #4D74D0 ; } /* Keyword.Constant */&lt;br /&gt;
.mw-highlight .kd { color: #4D74D0 ; } /* Keyword.Declaration */&lt;br /&gt;
.mw-highlight .kn { color: #4D74D0 ; } /* Keyword.Namespace */&lt;br /&gt;
.mw-highlight .kp { color: #4D74D0 ; } /* Keyword.Pseudo */&lt;br /&gt;
.mw-highlight .kr { color: #4D74D0 ; } /* Keyword.Reserved */&lt;br /&gt;
.mw-highlight .kt { color: #C1C144 ; } /* Keyword.Type */&lt;br /&gt;
.mw-highlight .ld { color: #E6E1DC ; } /* Literal.Date */&lt;br /&gt;
.mw-highlight .m { color: #A5C261 ; } /* Literal.Number */&lt;br /&gt;
.mw-highlight .s { color: #AD9361 ; } /* Literal.String */&lt;br /&gt;
.mw-highlight .na { color: #6782D3 ; } /* Name.Attribute */&lt;br /&gt;
.mw-highlight .nb { color: #E6E1DC ; } /* Name.Builtin */&lt;br /&gt;
.mw-highlight .nc { color: #E6E1DC ; } /* Name.Class */&lt;br /&gt;
.mw-highlight .no { color: #A1A1FF ; } /* Name.Constant */&lt;br /&gt;
.mw-highlight .nd { color: #E6E1DC ; } /* Name.Decorator */&lt;br /&gt;
.mw-highlight .ni { color: #47B8D6 ; } /* Name.Entity */&lt;br /&gt;
.mw-highlight .ne { color: #E6E1DC ; } /* Name.Exception */&lt;br /&gt;
.mw-highlight .nf { color: #6782D3 ; } /* Name.Function */&lt;br /&gt;
.mw-highlight .nl { color: #E6E1DC ; } /* Name.Label */&lt;br /&gt;
.mw-highlight .nn { color: #E6E1DC ; } /* Name.Namespace */&lt;br /&gt;
.mw-highlight .nx { color: #E6E1DC ; } /* Name.Other */&lt;br /&gt;
.mw-highlight .py { color: #E6E1DC ; } /* Name.Property */&lt;br /&gt;
.mw-highlight .nt { color: #4D74D0 ; } /* Name.Tag */&lt;br /&gt;
.mw-highlight .nv { color: #C1C144 ; } /* Name.Variable */&lt;br /&gt;
.mw-highlight .ow { color: #E6E1DC ; } /* Operator.Word */&lt;br /&gt;
.mw-highlight .w { color: #E6E1DC ; } /* Text.Whitespace */&lt;br /&gt;
.mw-highlight .mf { color: #A5C261 ; } /* Literal.Number.Float */&lt;br /&gt;
.mw-highlight .mh { color: #A5C261 ; } /* Literal.Number.Hex */&lt;br /&gt;
.mw-highlight .mi { color: #A5C261 ; } /* Literal.Number.Integer */&lt;br /&gt;
.mw-highlight .mo { color: #A5C261 ; } /* Literal.Number.Oct */&lt;br /&gt;
.mw-highlight .sb { color: #AD9361 ; } /* Literal.String.Backtick */&lt;br /&gt;
.mw-highlight .sc { color: #AD9361 ; } /* Literal.String.Char */&lt;br /&gt;
.mw-highlight .sd { color: #AD9361 ; } /* Literal.String.Doc */&lt;br /&gt;
.mw-highlight .s2 { color: #AD9361 ; } /* Literal.String.Double */&lt;br /&gt;
.mw-highlight .se { color: #AD9361 ; } /* Literal.String.Escape */&lt;br /&gt;
.mw-highlight .sh { color: #AD9361 ; } /* Literal.String.Heredoc */&lt;br /&gt;
.mw-highlight .si { color: #AD9361 ; } /* Literal.String.Interpol */&lt;br /&gt;
.mw-highlight .sx { color: #AD9361 ; } /* Literal.String.Other */&lt;br /&gt;
.mw-highlight .sr { color: #AD9361 ; } /* Literal.String.Regex */&lt;br /&gt;
.mw-highlight .s1 { color: #AD9361 ; } /* Literal.String.Single */&lt;br /&gt;
.mw-highlight .ss { color: #AD9361 ; } /* Literal.String.Symbol */&lt;br /&gt;
.mw-highlight .bp { color: #E6E1DC ; } /* Name.Builtin.Pseudo */&lt;br /&gt;
.mw-highlight .vc { color: #C1C144 ; } /* Name.Variable.Class */&lt;br /&gt;
.mw-highlight .vg { color: #C1C144 ; } /* Name.Variable.Global */&lt;br /&gt;
.mw-highlight .vi { color: #C1C144 ; } /* Name.Variable.Instance */&lt;br /&gt;
.mw-highlight .il { color: #A5C261 ; } /* Literal.Number.Integer.Long */&lt;br /&gt;
&lt;br /&gt;
.ace-tm { background-color: #2b2b2b !important; }&lt;br /&gt;
&lt;br /&gt;
.mw-message-box-warning { background-color: #555149; color: #fff; }&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=243</id>
		<title>MediaWiki:Darkvector.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=243"/>
		<updated>2025-01-08T05:57:33Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will affect users of the DarkVector skin */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
	font-size: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input,&lt;br /&gt;
textarea,&lt;br /&gt;
table.mw_metadata td,&lt;br /&gt;
table.mw_metadata th,&lt;br /&gt;
table.wikitable,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;th,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;td,&lt;br /&gt;
pre {&lt;br /&gt;
	background-color: #2b2b2b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*! pastels on dark syntax highlighting */&lt;br /&gt;
.mw-highlight, .mw-highlight pre, .mw-highlight table { background: #2B2B2B ; }&lt;br /&gt;
.mw-highlight .hll { background: #ffffcc ; color: #fff; }&lt;br /&gt;
.mw-highlight  { background: #2B2B2B ; color: #E6E1DC ; }&lt;br /&gt;
.mw-highlight .c { color: #555555 ; } /* Comment */&lt;br /&gt;
.mw-highlight .err { color: #E6E1DC ; } /* Error */&lt;br /&gt;
.mw-highlight .g { color: #E6E1DC ; } /* Generic */&lt;br /&gt;
.mw-highlight .k { color: #4D74D0 ; } /* Keyword */&lt;br /&gt;
.mw-highlight .l { color: #E6E1DC ; } /* Literal */&lt;br /&gt;
.mw-highlight .n, .mw-highlight .h { color: #E6E1DC ; } /* Name */&lt;br /&gt;
.mw-highlight .o { color: #E6E1DC ; } /* Operator */&lt;br /&gt;
.mw-highlight .x { color: #E6E1DC ; } /* Other */&lt;br /&gt;
.mw-highlight .p { color: #E6E1DC ; } /* Punctuation */&lt;br /&gt;
.mw-highlight .cm { color: #555555 ; } /* Comment.Multiline */&lt;br /&gt;
.mw-highlight .cp { color: #E6E1DC ; } /* Comment.Preproc */&lt;br /&gt;
.mw-highlight .c1 { color: #555555 ; } /* Comment.Single */&lt;br /&gt;
.mw-highlight .cs { color: #555555 ; } /* Comment.Special */&lt;br /&gt;
.mw-highlight .gd { color: #E6E1DC ; background: #660000 ; } /* Generic.Deleted */&lt;br /&gt;
.mw-highlight .ge { color: #E6E1DC ; } /* Generic.Emph */&lt;br /&gt;
.mw-highlight .gr { color: #FFC66D ; background: #990000 ; } /* Generic.Error */&lt;br /&gt;
.mw-highlight .gh { color: #FFFFFF ; } /* Generic.Heading */&lt;br /&gt;
.mw-highlight .gi { color: #E6E1DC ; background: #519F50 ; } /* Generic.Inserted */&lt;br /&gt;
.mw-highlight .go { color: #E6E1DC ; } /* Generic.Output */&lt;br /&gt;
.mw-highlight .gp { color: #E6E1DC ; } /* Generic.Prompt */&lt;br /&gt;
.mw-highlight .gs { color: #E6E1DC ; } /* Generic.Strong */&lt;br /&gt;
.mw-highlight .gu { color: #FFFFFF ; } /* Generic.Subheading */&lt;br /&gt;
.mw-highlight .gt { color: #E6E1DC ; } /* Generic.Traceback */&lt;br /&gt;
.mw-highlight .kc { color: #4D74D0 ; } /* Keyword.Constant */&lt;br /&gt;
.mw-highlight .kd { color: #4D74D0 ; } /* Keyword.Declaration */&lt;br /&gt;
.mw-highlight .kn { color: #4D74D0 ; } /* Keyword.Namespace */&lt;br /&gt;
.mw-highlight .kp { color: #4D74D0 ; } /* Keyword.Pseudo */&lt;br /&gt;
.mw-highlight .kr { color: #4D74D0 ; } /* Keyword.Reserved */&lt;br /&gt;
.mw-highlight .kt { color: #C1C144 ; } /* Keyword.Type */&lt;br /&gt;
.mw-highlight .ld { color: #E6E1DC ; } /* Literal.Date */&lt;br /&gt;
.mw-highlight .m { color: #A5C261 ; } /* Literal.Number */&lt;br /&gt;
.mw-highlight .s { color: #AD9361 ; } /* Literal.String */&lt;br /&gt;
.mw-highlight .na { color: #6782D3 ; } /* Name.Attribute */&lt;br /&gt;
.mw-highlight .nb { color: #E6E1DC ; } /* Name.Builtin */&lt;br /&gt;
.mw-highlight .nc { color: #E6E1DC ; } /* Name.Class */&lt;br /&gt;
.mw-highlight .no { color: #A1A1FF ; } /* Name.Constant */&lt;br /&gt;
.mw-highlight .nd { color: #E6E1DC ; } /* Name.Decorator */&lt;br /&gt;
.mw-highlight .ni { color: #47B8D6 ; } /* Name.Entity */&lt;br /&gt;
.mw-highlight .ne { color: #E6E1DC ; } /* Name.Exception */&lt;br /&gt;
.mw-highlight .nf { color: #6782D3 ; } /* Name.Function */&lt;br /&gt;
.mw-highlight .nl { color: #E6E1DC ; } /* Name.Label */&lt;br /&gt;
.mw-highlight .nn { color: #E6E1DC ; } /* Name.Namespace */&lt;br /&gt;
.mw-highlight .nx { color: #E6E1DC ; } /* Name.Other */&lt;br /&gt;
.mw-highlight .py { color: #E6E1DC ; } /* Name.Property */&lt;br /&gt;
.mw-highlight .nt { color: #4D74D0 ; } /* Name.Tag */&lt;br /&gt;
.mw-highlight .nv { color: #C1C144 ; } /* Name.Variable */&lt;br /&gt;
.mw-highlight .ow { color: #E6E1DC ; } /* Operator.Word */&lt;br /&gt;
.mw-highlight .w { color: #E6E1DC ; } /* Text.Whitespace */&lt;br /&gt;
.mw-highlight .mf { color: #A5C261 ; } /* Literal.Number.Float */&lt;br /&gt;
.mw-highlight .mh { color: #A5C261 ; } /* Literal.Number.Hex */&lt;br /&gt;
.mw-highlight .mi { color: #A5C261 ; } /* Literal.Number.Integer */&lt;br /&gt;
.mw-highlight .mo { color: #A5C261 ; } /* Literal.Number.Oct */&lt;br /&gt;
.mw-highlight .sb { color: #AD9361 ; } /* Literal.String.Backtick */&lt;br /&gt;
.mw-highlight .sc { color: #AD9361 ; } /* Literal.String.Char */&lt;br /&gt;
.mw-highlight .sd { color: #AD9361 ; } /* Literal.String.Doc */&lt;br /&gt;
.mw-highlight .s2 { color: #AD9361 ; } /* Literal.String.Double */&lt;br /&gt;
.mw-highlight .se { color: #AD9361 ; } /* Literal.String.Escape */&lt;br /&gt;
.mw-highlight .sh { color: #AD9361 ; } /* Literal.String.Heredoc */&lt;br /&gt;
.mw-highlight .si { color: #AD9361 ; } /* Literal.String.Interpol */&lt;br /&gt;
.mw-highlight .sx { color: #AD9361 ; } /* Literal.String.Other */&lt;br /&gt;
.mw-highlight .sr { color: #AD9361 ; } /* Literal.String.Regex */&lt;br /&gt;
.mw-highlight .s1 { color: #AD9361 ; } /* Literal.String.Single */&lt;br /&gt;
.mw-highlight .ss { color: #AD9361 ; } /* Literal.String.Symbol */&lt;br /&gt;
.mw-highlight .bp { color: #E6E1DC ; } /* Name.Builtin.Pseudo */&lt;br /&gt;
.mw-highlight .vc { color: #C1C144 ; } /* Name.Variable.Class */&lt;br /&gt;
.mw-highlight .vg { color: #C1C144 ; } /* Name.Variable.Global */&lt;br /&gt;
.mw-highlight .vi { color: #C1C144 ; } /* Name.Variable.Instance */&lt;br /&gt;
.mw-highlight .il { color: #A5C261 ; } /* Literal.Number.Integer.Long */&lt;br /&gt;
&lt;br /&gt;
.ace-tm { background-color: #2b2b2b !important; }&lt;br /&gt;
&lt;br /&gt;
.mw-message-box-warning { background-color: #555149; color: #fff; }&lt;br /&gt;
&lt;br /&gt;
a.external { background-color: red; mask-image: url(/w/resources/src/mediawiki.skinning/images/external-ltr.svg?59558); }&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=242</id>
		<title>MediaWiki:Darkvector.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=242"/>
		<updated>2025-01-08T05:49:54Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will affect users of the DarkVector skin */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
	font-size: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input,&lt;br /&gt;
textarea,&lt;br /&gt;
table.mw_metadata td,&lt;br /&gt;
table.mw_metadata th,&lt;br /&gt;
table.wikitable,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;th,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;td,&lt;br /&gt;
pre {&lt;br /&gt;
	background-color: #2b2b2b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*! pastels on dark syntax highlighting */&lt;br /&gt;
.mw-highlight, .mw-highlight pre, .mw-highlight table { background: #2B2B2B ; }&lt;br /&gt;
.mw-highlight .hll { background: #ffffcc ; color: #fff; }&lt;br /&gt;
.mw-highlight  { background: #2B2B2B ; color: #E6E1DC ; }&lt;br /&gt;
.mw-highlight .c { color: #555555 ; } /* Comment */&lt;br /&gt;
.mw-highlight .err { color: #E6E1DC ; } /* Error */&lt;br /&gt;
.mw-highlight .g { color: #E6E1DC ; } /* Generic */&lt;br /&gt;
.mw-highlight .k { color: #4D74D0 ; } /* Keyword */&lt;br /&gt;
.mw-highlight .l { color: #E6E1DC ; } /* Literal */&lt;br /&gt;
.mw-highlight .n, .mw-highlight .h { color: #E6E1DC ; } /* Name */&lt;br /&gt;
.mw-highlight .o { color: #E6E1DC ; } /* Operator */&lt;br /&gt;
.mw-highlight .x { color: #E6E1DC ; } /* Other */&lt;br /&gt;
.mw-highlight .p { color: #E6E1DC ; } /* Punctuation */&lt;br /&gt;
.mw-highlight .cm { color: #555555 ; } /* Comment.Multiline */&lt;br /&gt;
.mw-highlight .cp { color: #E6E1DC ; } /* Comment.Preproc */&lt;br /&gt;
.mw-highlight .c1 { color: #555555 ; } /* Comment.Single */&lt;br /&gt;
.mw-highlight .cs { color: #555555 ; } /* Comment.Special */&lt;br /&gt;
.mw-highlight .gd { color: #E6E1DC ; background: #660000 ; } /* Generic.Deleted */&lt;br /&gt;
.mw-highlight .ge { color: #E6E1DC ; } /* Generic.Emph */&lt;br /&gt;
.mw-highlight .gr { color: #FFC66D ; background: #990000 ; } /* Generic.Error */&lt;br /&gt;
.mw-highlight .gh { color: #FFFFFF ; } /* Generic.Heading */&lt;br /&gt;
.mw-highlight .gi { color: #E6E1DC ; background: #519F50 ; } /* Generic.Inserted */&lt;br /&gt;
.mw-highlight .go { color: #E6E1DC ; } /* Generic.Output */&lt;br /&gt;
.mw-highlight .gp { color: #E6E1DC ; } /* Generic.Prompt */&lt;br /&gt;
.mw-highlight .gs { color: #E6E1DC ; } /* Generic.Strong */&lt;br /&gt;
.mw-highlight .gu { color: #FFFFFF ; } /* Generic.Subheading */&lt;br /&gt;
.mw-highlight .gt { color: #E6E1DC ; } /* Generic.Traceback */&lt;br /&gt;
.mw-highlight .kc { color: #4D74D0 ; } /* Keyword.Constant */&lt;br /&gt;
.mw-highlight .kd { color: #4D74D0 ; } /* Keyword.Declaration */&lt;br /&gt;
.mw-highlight .kn { color: #4D74D0 ; } /* Keyword.Namespace */&lt;br /&gt;
.mw-highlight .kp { color: #4D74D0 ; } /* Keyword.Pseudo */&lt;br /&gt;
.mw-highlight .kr { color: #4D74D0 ; } /* Keyword.Reserved */&lt;br /&gt;
.mw-highlight .kt { color: #C1C144 ; } /* Keyword.Type */&lt;br /&gt;
.mw-highlight .ld { color: #E6E1DC ; } /* Literal.Date */&lt;br /&gt;
.mw-highlight .m { color: #A5C261 ; } /* Literal.Number */&lt;br /&gt;
.mw-highlight .s { color: #AD9361 ; } /* Literal.String */&lt;br /&gt;
.mw-highlight .na { color: #6782D3 ; } /* Name.Attribute */&lt;br /&gt;
.mw-highlight .nb { color: #E6E1DC ; } /* Name.Builtin */&lt;br /&gt;
.mw-highlight .nc { color: #E6E1DC ; } /* Name.Class */&lt;br /&gt;
.mw-highlight .no { color: #A1A1FF ; } /* Name.Constant */&lt;br /&gt;
.mw-highlight .nd { color: #E6E1DC ; } /* Name.Decorator */&lt;br /&gt;
.mw-highlight .ni { color: #47B8D6 ; } /* Name.Entity */&lt;br /&gt;
.mw-highlight .ne { color: #E6E1DC ; } /* Name.Exception */&lt;br /&gt;
.mw-highlight .nf { color: #6782D3 ; } /* Name.Function */&lt;br /&gt;
.mw-highlight .nl { color: #E6E1DC ; } /* Name.Label */&lt;br /&gt;
.mw-highlight .nn { color: #E6E1DC ; } /* Name.Namespace */&lt;br /&gt;
.mw-highlight .nx { color: #E6E1DC ; } /* Name.Other */&lt;br /&gt;
.mw-highlight .py { color: #E6E1DC ; } /* Name.Property */&lt;br /&gt;
.mw-highlight .nt { color: #4D74D0 ; } /* Name.Tag */&lt;br /&gt;
.mw-highlight .nv { color: #C1C144 ; } /* Name.Variable */&lt;br /&gt;
.mw-highlight .ow { color: #E6E1DC ; } /* Operator.Word */&lt;br /&gt;
.mw-highlight .w { color: #E6E1DC ; } /* Text.Whitespace */&lt;br /&gt;
.mw-highlight .mf { color: #A5C261 ; } /* Literal.Number.Float */&lt;br /&gt;
.mw-highlight .mh { color: #A5C261 ; } /* Literal.Number.Hex */&lt;br /&gt;
.mw-highlight .mi { color: #A5C261 ; } /* Literal.Number.Integer */&lt;br /&gt;
.mw-highlight .mo { color: #A5C261 ; } /* Literal.Number.Oct */&lt;br /&gt;
.mw-highlight .sb { color: #AD9361 ; } /* Literal.String.Backtick */&lt;br /&gt;
.mw-highlight .sc { color: #AD9361 ; } /* Literal.String.Char */&lt;br /&gt;
.mw-highlight .sd { color: #AD9361 ; } /* Literal.String.Doc */&lt;br /&gt;
.mw-highlight .s2 { color: #AD9361 ; } /* Literal.String.Double */&lt;br /&gt;
.mw-highlight .se { color: #AD9361 ; } /* Literal.String.Escape */&lt;br /&gt;
.mw-highlight .sh { color: #AD9361 ; } /* Literal.String.Heredoc */&lt;br /&gt;
.mw-highlight .si { color: #AD9361 ; } /* Literal.String.Interpol */&lt;br /&gt;
.mw-highlight .sx { color: #AD9361 ; } /* Literal.String.Other */&lt;br /&gt;
.mw-highlight .sr { color: #AD9361 ; } /* Literal.String.Regex */&lt;br /&gt;
.mw-highlight .s1 { color: #AD9361 ; } /* Literal.String.Single */&lt;br /&gt;
.mw-highlight .ss { color: #AD9361 ; } /* Literal.String.Symbol */&lt;br /&gt;
.mw-highlight .bp { color: #E6E1DC ; } /* Name.Builtin.Pseudo */&lt;br /&gt;
.mw-highlight .vc { color: #C1C144 ; } /* Name.Variable.Class */&lt;br /&gt;
.mw-highlight .vg { color: #C1C144 ; } /* Name.Variable.Global */&lt;br /&gt;
.mw-highlight .vi { color: #C1C144 ; } /* Name.Variable.Instance */&lt;br /&gt;
.mw-highlight .il { color: #A5C261 ; } /* Literal.Number.Integer.Long */&lt;br /&gt;
&lt;br /&gt;
.ace-tm { background-color: #2b2b2b !important; }&lt;br /&gt;
&lt;br /&gt;
.mw-message-box-warning { background-color: #555149; color: #fff; }&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=241</id>
		<title>MediaWiki:Darkvector.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=241"/>
		<updated>2025-01-08T05:41:33Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will affect users of the DarkVector skin */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
	font-size: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input,&lt;br /&gt;
textarea,&lt;br /&gt;
table.mw_metadata td,&lt;br /&gt;
table.mw_metadata th,&lt;br /&gt;
table.wikitable,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;th,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;td,&lt;br /&gt;
pre {&lt;br /&gt;
	background-color: #2b2b2b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*! pastels on dark syntax highlighting */&lt;br /&gt;
.mw-highlight, .mw-highlight pre, .mw-highlight table { background: #2B2B2B ; }&lt;br /&gt;
.mw-highlight .hll { background: #ffffcc ; }&lt;br /&gt;
.mw-highlight  { background: #2B2B2B ; color: #E6E1DC ; }&lt;br /&gt;
.mw-highlight .c { color: #555555 ; } /* Comment */&lt;br /&gt;
.mw-highlight .err { color: #E6E1DC ; } /* Error */&lt;br /&gt;
.mw-highlight .g { color: #E6E1DC ; } /* Generic */&lt;br /&gt;
.mw-highlight .k { color: #4D74D0 ; } /* Keyword */&lt;br /&gt;
.mw-highlight .l { color: #E6E1DC ; } /* Literal */&lt;br /&gt;
.mw-highlight .n, .mw-highlight .h { color: #E6E1DC ; } /* Name */&lt;br /&gt;
.mw-highlight .o { color: #E6E1DC ; } /* Operator */&lt;br /&gt;
.mw-highlight .x { color: #E6E1DC ; } /* Other */&lt;br /&gt;
.mw-highlight .p { color: #E6E1DC ; } /* Punctuation */&lt;br /&gt;
.mw-highlight .cm { color: #555555 ; } /* Comment.Multiline */&lt;br /&gt;
.mw-highlight .cp { color: #E6E1DC ; } /* Comment.Preproc */&lt;br /&gt;
.mw-highlight .c1 { color: #555555 ; } /* Comment.Single */&lt;br /&gt;
.mw-highlight .cs { color: #555555 ; } /* Comment.Special */&lt;br /&gt;
.mw-highlight .gd { color: #E6E1DC ; background: #660000 ; } /* Generic.Deleted */&lt;br /&gt;
.mw-highlight .ge { color: #E6E1DC ; } /* Generic.Emph */&lt;br /&gt;
.mw-highlight .gr { color: #FFC66D ; background: #990000 ; } /* Generic.Error */&lt;br /&gt;
.mw-highlight .gh { color: #FFFFFF ; } /* Generic.Heading */&lt;br /&gt;
.mw-highlight .gi { color: #E6E1DC ; background: #519F50 ; } /* Generic.Inserted */&lt;br /&gt;
.mw-highlight .go { color: #E6E1DC ; } /* Generic.Output */&lt;br /&gt;
.mw-highlight .gp { color: #E6E1DC ; } /* Generic.Prompt */&lt;br /&gt;
.mw-highlight .gs { color: #E6E1DC ; } /* Generic.Strong */&lt;br /&gt;
.mw-highlight .gu { color: #FFFFFF ; } /* Generic.Subheading */&lt;br /&gt;
.mw-highlight .gt { color: #E6E1DC ; } /* Generic.Traceback */&lt;br /&gt;
.mw-highlight .kc { color: #4D74D0 ; } /* Keyword.Constant */&lt;br /&gt;
.mw-highlight .kd { color: #4D74D0 ; } /* Keyword.Declaration */&lt;br /&gt;
.mw-highlight .kn { color: #4D74D0 ; } /* Keyword.Namespace */&lt;br /&gt;
.mw-highlight .kp { color: #4D74D0 ; } /* Keyword.Pseudo */&lt;br /&gt;
.mw-highlight .kr { color: #4D74D0 ; } /* Keyword.Reserved */&lt;br /&gt;
.mw-highlight .kt { color: #C1C144 ; } /* Keyword.Type */&lt;br /&gt;
.mw-highlight .ld { color: #E6E1DC ; } /* Literal.Date */&lt;br /&gt;
.mw-highlight .m { color: #A5C261 ; } /* Literal.Number */&lt;br /&gt;
.mw-highlight .s { color: #AD9361 ; } /* Literal.String */&lt;br /&gt;
.mw-highlight .na { color: #6782D3 ; } /* Name.Attribute */&lt;br /&gt;
.mw-highlight .nb { color: #E6E1DC ; } /* Name.Builtin */&lt;br /&gt;
.mw-highlight .nc { color: #E6E1DC ; } /* Name.Class */&lt;br /&gt;
.mw-highlight .no { color: #A1A1FF ; } /* Name.Constant */&lt;br /&gt;
.mw-highlight .nd { color: #E6E1DC ; } /* Name.Decorator */&lt;br /&gt;
.mw-highlight .ni { color: #47B8D6 ; } /* Name.Entity */&lt;br /&gt;
.mw-highlight .ne { color: #E6E1DC ; } /* Name.Exception */&lt;br /&gt;
.mw-highlight .nf { color: #6782D3 ; } /* Name.Function */&lt;br /&gt;
.mw-highlight .nl { color: #E6E1DC ; } /* Name.Label */&lt;br /&gt;
.mw-highlight .nn { color: #E6E1DC ; } /* Name.Namespace */&lt;br /&gt;
.mw-highlight .nx { color: #E6E1DC ; } /* Name.Other */&lt;br /&gt;
.mw-highlight .py { color: #E6E1DC ; } /* Name.Property */&lt;br /&gt;
.mw-highlight .nt { color: #4D74D0 ; } /* Name.Tag */&lt;br /&gt;
.mw-highlight .nv { color: #C1C144 ; } /* Name.Variable */&lt;br /&gt;
.mw-highlight .ow { color: #E6E1DC ; } /* Operator.Word */&lt;br /&gt;
.mw-highlight .w { color: #E6E1DC ; } /* Text.Whitespace */&lt;br /&gt;
.mw-highlight .mf { color: #A5C261 ; } /* Literal.Number.Float */&lt;br /&gt;
.mw-highlight .mh { color: #A5C261 ; } /* Literal.Number.Hex */&lt;br /&gt;
.mw-highlight .mi { color: #A5C261 ; } /* Literal.Number.Integer */&lt;br /&gt;
.mw-highlight .mo { color: #A5C261 ; } /* Literal.Number.Oct */&lt;br /&gt;
.mw-highlight .sb { color: #AD9361 ; } /* Literal.String.Backtick */&lt;br /&gt;
.mw-highlight .sc { color: #AD9361 ; } /* Literal.String.Char */&lt;br /&gt;
.mw-highlight .sd { color: #AD9361 ; } /* Literal.String.Doc */&lt;br /&gt;
.mw-highlight .s2 { color: #AD9361 ; } /* Literal.String.Double */&lt;br /&gt;
.mw-highlight .se { color: #AD9361 ; } /* Literal.String.Escape */&lt;br /&gt;
.mw-highlight .sh { color: #AD9361 ; } /* Literal.String.Heredoc */&lt;br /&gt;
.mw-highlight .si { color: #AD9361 ; } /* Literal.String.Interpol */&lt;br /&gt;
.mw-highlight .sx { color: #AD9361 ; } /* Literal.String.Other */&lt;br /&gt;
.mw-highlight .sr { color: #AD9361 ; } /* Literal.String.Regex */&lt;br /&gt;
.mw-highlight .s1 { color: #AD9361 ; } /* Literal.String.Single */&lt;br /&gt;
.mw-highlight .ss { color: #AD9361 ; } /* Literal.String.Symbol */&lt;br /&gt;
.mw-highlight .bp { color: #E6E1DC ; } /* Name.Builtin.Pseudo */&lt;br /&gt;
.mw-highlight .vc { color: #C1C144 ; } /* Name.Variable.Class */&lt;br /&gt;
.mw-highlight .vg { color: #C1C144 ; } /* Name.Variable.Global */&lt;br /&gt;
.mw-highlight .vi { color: #C1C144 ; } /* Name.Variable.Instance */&lt;br /&gt;
.mw-highlight .il { color: #A5C261 ; } /* Literal.Number.Integer.Long */&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=240</id>
		<title>MediaWiki:Darkvector.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=240"/>
		<updated>2025-01-08T05:41:16Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will affect users of the DarkVector skin */&lt;br /&gt;
&lt;br /&gt;
html {&lt;br /&gt;
	font-size: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input,&lt;br /&gt;
textarea,&lt;br /&gt;
table.mw_metadata td,&lt;br /&gt;
table.mw_metadata th,&lt;br /&gt;
table.wikitable,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;th,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;td,&lt;br /&gt;
pre {&lt;br /&gt;
	background-color: #2b2b2b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*! pastels on dark syntax highlighting */&lt;br /&gt;
.mw-highlight, .mw-highlight pre, .mw-highlight table { background: #2B2B2B ; }&lt;br /&gt;
.mw-highlight .hll { background: #ffffcc ; }&lt;br /&gt;
.mw-highlight  { background: #2B2B2B ; color: #E6E1DC ; }&lt;br /&gt;
.mw-highlight .c { color: #555555 ; } /* Comment */&lt;br /&gt;
.mw-highlight .err { color: #E6E1DC ; } /* Error */&lt;br /&gt;
.mw-highlight .g { color: #E6E1DC ; } /* Generic */&lt;br /&gt;
.mw-highlight .k { color: #4D74D0 ; } /* Keyword */&lt;br /&gt;
.mw-highlight .l { color: #E6E1DC ; } /* Literal */&lt;br /&gt;
.mw-highlight .n, .mw-highlight .h { color: #E6E1DC ; } /* Name */&lt;br /&gt;
.mw-highlight .o { color: #E6E1DC ; } /* Operator */&lt;br /&gt;
.mw-highlight .x { color: #E6E1DC ; } /* Other */&lt;br /&gt;
.mw-highlight .p { color: #E6E1DC ; } /* Punctuation */&lt;br /&gt;
.mw-highlight .cm { color: #555555 ; } /* Comment.Multiline */&lt;br /&gt;
.mw-highlight .cp { color: #E6E1DC ; } /* Comment.Preproc */&lt;br /&gt;
.mw-highlight .c1 { color: #555555 ; } /* Comment.Single */&lt;br /&gt;
.mw-highlight .cs { color: #555555 ; } /* Comment.Special */&lt;br /&gt;
.mw-highlight .gd { color: #E6E1DC ; background: #660000 ; } /* Generic.Deleted */&lt;br /&gt;
.mw-highlight .ge { color: #E6E1DC ; } /* Generic.Emph */&lt;br /&gt;
.mw-highlight .gr { color: #FFC66D ; background: #990000 ; } /* Generic.Error */&lt;br /&gt;
.mw-highlight .gh { color: #FFFFFF ; } /* Generic.Heading */&lt;br /&gt;
.mw-highlight .gi { color: #E6E1DC ; background: #519F50 ; } /* Generic.Inserted */&lt;br /&gt;
.mw-highlight .go { color: #E6E1DC ; } /* Generic.Output */&lt;br /&gt;
.mw-highlight .gp { color: #E6E1DC ; } /* Generic.Prompt */&lt;br /&gt;
.mw-highlight .gs { color: #E6E1DC ; } /* Generic.Strong */&lt;br /&gt;
.mw-highlight .gu { color: #FFFFFF ; } /* Generic.Subheading */&lt;br /&gt;
.mw-highlight .gt { color: #E6E1DC ; } /* Generic.Traceback */&lt;br /&gt;
.mw-highlight .kc { color: #4D74D0 ; } /* Keyword.Constant */&lt;br /&gt;
.mw-highlight .kd { color: #4D74D0 ; } /* Keyword.Declaration */&lt;br /&gt;
.mw-highlight .kn { color: #4D74D0 ; } /* Keyword.Namespace */&lt;br /&gt;
.mw-highlight .kp { color: #4D74D0 ; } /* Keyword.Pseudo */&lt;br /&gt;
.mw-highlight .kr { color: #4D74D0 ; } /* Keyword.Reserved */&lt;br /&gt;
.mw-highlight .kt { color: #C1C144 ; } /* Keyword.Type */&lt;br /&gt;
.mw-highlight .ld { color: #E6E1DC ; } /* Literal.Date */&lt;br /&gt;
.mw-highlight .m { color: #A5C261 ; } /* Literal.Number */&lt;br /&gt;
.mw-highlight .s { color: #AD9361 ; } /* Literal.String */&lt;br /&gt;
.mw-highlight .na { color: #6782D3 ; } /* Name.Attribute */&lt;br /&gt;
.mw-highlight .nb { color: #E6E1DC ; } /* Name.Builtin */&lt;br /&gt;
.mw-highlight .nc { color: #E6E1DC ; } /* Name.Class */&lt;br /&gt;
.mw-highlight .no { color: #A1A1FF ; } /* Name.Constant */&lt;br /&gt;
.mw-highlight .nd { color: #E6E1DC ; } /* Name.Decorator */&lt;br /&gt;
.mw-highlight .ni { color: #47B8D6 ; } /* Name.Entity */&lt;br /&gt;
.mw-highlight .ne { color: #E6E1DC ; } /* Name.Exception */&lt;br /&gt;
.mw-highlight .nf { color: #6782D3 ; } /* Name.Function */&lt;br /&gt;
.mw-highlight .nl { color: #E6E1DC ; } /* Name.Label */&lt;br /&gt;
.mw-highlight .nn { color: #E6E1DC ; } /* Name.Namespace */&lt;br /&gt;
.mw-highlight .nx { color: #E6E1DC ; } /* Name.Other */&lt;br /&gt;
.mw-highlight .py { color: #E6E1DC ; } /* Name.Property */&lt;br /&gt;
.mw-highlight .nt { color: #4D74D0 ; } /* Name.Tag */&lt;br /&gt;
.mw-highlight .nv { color: #C1C144 ; } /* Name.Variable */&lt;br /&gt;
.mw-highlight .ow { color: #E6E1DC ; } /* Operator.Word */&lt;br /&gt;
.mw-highlight .w { color: #E6E1DC ; } /* Text.Whitespace */&lt;br /&gt;
.mw-highlight .mf { color: #A5C261 ; } /* Literal.Number.Float */&lt;br /&gt;
.mw-highlight .mh { color: #A5C261 ; } /* Literal.Number.Hex */&lt;br /&gt;
.mw-highlight .mi { color: #A5C261 ; } /* Literal.Number.Integer */&lt;br /&gt;
.mw-highlight .mo { color: #A5C261 ; } /* Literal.Number.Oct */&lt;br /&gt;
.mw-highlight .sb { color: #AD9361 ; } /* Literal.String.Backtick */&lt;br /&gt;
.mw-highlight .sc { color: #AD9361 ; } /* Literal.String.Char */&lt;br /&gt;
.mw-highlight .sd { color: #AD9361 ; } /* Literal.String.Doc */&lt;br /&gt;
.mw-highlight .s2 { color: #AD9361 ; } /* Literal.String.Double */&lt;br /&gt;
.mw-highlight .se { color: #AD9361 ; } /* Literal.String.Escape */&lt;br /&gt;
.mw-highlight .sh { color: #AD9361 ; } /* Literal.String.Heredoc */&lt;br /&gt;
.mw-highlight .si { color: #AD9361 ; } /* Literal.String.Interpol */&lt;br /&gt;
.mw-highlight .sx { color: #AD9361 ; } /* Literal.String.Other */&lt;br /&gt;
.mw-highlight .sr { color: #AD9361 ; } /* Literal.String.Regex */&lt;br /&gt;
.mw-highlight .s1 { color: #AD9361 ; } /* Literal.String.Single */&lt;br /&gt;
.mw-highlight .ss { color: #AD9361 ; } /* Literal.String.Symbol */&lt;br /&gt;
.mw-highlight .bp { color: #E6E1DC ; } /* Name.Builtin.Pseudo */&lt;br /&gt;
.mw-highlight .vc { color: #C1C144 ; } /* Name.Variable.Class */&lt;br /&gt;
.mw-highlight .vg { color: #C1C144 ; } /* Name.Variable.Global */&lt;br /&gt;
.mw-highlight .vi { color: #C1C144 ; } /* Name.Variable.Instance */&lt;br /&gt;
.mw-highlight .il { color: #A5C261 ; } /* Literal.Number.Integer.Long */&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=239</id>
		<title>MediaWiki:Darkvector.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=239"/>
		<updated>2025-01-08T05:40:31Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will affect users of the DarkVector skin */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
	font-size: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input,&lt;br /&gt;
textarea,&lt;br /&gt;
table.mw_metadata td,&lt;br /&gt;
table.mw_metadata th,&lt;br /&gt;
table.wikitable,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;th,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;td,&lt;br /&gt;
pre {&lt;br /&gt;
	background-color: #2b2b2b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*! pastels on dark syntax highlighting */&lt;br /&gt;
.mw-highlight, .mw-highlight pre, .mw-highlight table { background: #2B2B2B ; }&lt;br /&gt;
.mw-highlight .hll { background: #ffffcc ; }&lt;br /&gt;
.mw-highlight  { background: #2B2B2B ; color: #E6E1DC ; }&lt;br /&gt;
.mw-highlight .c { color: #555555 ; } /* Comment */&lt;br /&gt;
.mw-highlight .err { color: #E6E1DC ; } /* Error */&lt;br /&gt;
.mw-highlight .g { color: #E6E1DC ; } /* Generic */&lt;br /&gt;
.mw-highlight .k { color: #4D74D0 ; } /* Keyword */&lt;br /&gt;
.mw-highlight .l { color: #E6E1DC ; } /* Literal */&lt;br /&gt;
.mw-highlight .n, .mw-highlight .h { color: #E6E1DC ; } /* Name */&lt;br /&gt;
.mw-highlight .o { color: #E6E1DC ; } /* Operator */&lt;br /&gt;
.mw-highlight .x { color: #E6E1DC ; } /* Other */&lt;br /&gt;
.mw-highlight .p { color: #E6E1DC ; } /* Punctuation */&lt;br /&gt;
.mw-highlight .cm { color: #555555 ; } /* Comment.Multiline */&lt;br /&gt;
.mw-highlight .cp { color: #E6E1DC ; } /* Comment.Preproc */&lt;br /&gt;
.mw-highlight .c1 { color: #555555 ; } /* Comment.Single */&lt;br /&gt;
.mw-highlight .cs { color: #555555 ; } /* Comment.Special */&lt;br /&gt;
.mw-highlight .gd { color: #E6E1DC ; background: #660000 ; } /* Generic.Deleted */&lt;br /&gt;
.mw-highlight .ge { color: #E6E1DC ; } /* Generic.Emph */&lt;br /&gt;
.mw-highlight .gr { color: #FFC66D ; background: #990000 ; } /* Generic.Error */&lt;br /&gt;
.mw-highlight .gh { color: #FFFFFF ; } /* Generic.Heading */&lt;br /&gt;
.mw-highlight .gi { color: #E6E1DC ; background: #519F50 ; } /* Generic.Inserted */&lt;br /&gt;
.mw-highlight .go { color: #E6E1DC ; } /* Generic.Output */&lt;br /&gt;
.mw-highlight .gp { color: #E6E1DC ; } /* Generic.Prompt */&lt;br /&gt;
.mw-highlight .gs { color: #E6E1DC ; } /* Generic.Strong */&lt;br /&gt;
.mw-highlight .gu { color: #FFFFFF ; } /* Generic.Subheading */&lt;br /&gt;
.mw-highlight .gt { color: #E6E1DC ; } /* Generic.Traceback */&lt;br /&gt;
.mw-highlight .kc { color: #4D74D0 ; } /* Keyword.Constant */&lt;br /&gt;
.mw-highlight .kd { color: #4D74D0 ; } /* Keyword.Declaration */&lt;br /&gt;
.mw-highlight .kn { color: #4D74D0 ; } /* Keyword.Namespace */&lt;br /&gt;
.mw-highlight .kp { color: #4D74D0 ; } /* Keyword.Pseudo */&lt;br /&gt;
.mw-highlight .kr { color: #4D74D0 ; } /* Keyword.Reserved */&lt;br /&gt;
.mw-highlight .kt { color: #C1C144 ; } /* Keyword.Type */&lt;br /&gt;
.mw-highlight .ld { color: #E6E1DC ; } /* Literal.Date */&lt;br /&gt;
.mw-highlight .m { color: #A5C261 ; } /* Literal.Number */&lt;br /&gt;
.mw-highlight .s { color: #AD9361 ; } /* Literal.String */&lt;br /&gt;
.mw-highlight .na { color: #6782D3 ; } /* Name.Attribute */&lt;br /&gt;
.mw-highlight .nb { color: #E6E1DC ; } /* Name.Builtin */&lt;br /&gt;
.mw-highlight .nc { color: #E6E1DC ; } /* Name.Class */&lt;br /&gt;
.mw-highlight .no { color: #A1A1FF ; } /* Name.Constant */&lt;br /&gt;
.mw-highlight .nd { color: #E6E1DC ; } /* Name.Decorator */&lt;br /&gt;
.mw-highlight .ni { color: #47B8D6 ; } /* Name.Entity */&lt;br /&gt;
.mw-highlight .ne { color: #E6E1DC ; } /* Name.Exception */&lt;br /&gt;
.mw-highlight .nf { color: #6782D3 ; } /* Name.Function */&lt;br /&gt;
.mw-highlight .nl { color: #E6E1DC ; } /* Name.Label */&lt;br /&gt;
.mw-highlight .nn { color: #E6E1DC ; } /* Name.Namespace */&lt;br /&gt;
.mw-highlight .nx { color: #E6E1DC ; } /* Name.Other */&lt;br /&gt;
.mw-highlight .py { color: #E6E1DC ; } /* Name.Property */&lt;br /&gt;
.mw-highlight .nt { color: #4D74D0 ; } /* Name.Tag */&lt;br /&gt;
.mw-highlight .nv { color: #C1C144 ; } /* Name.Variable */&lt;br /&gt;
.mw-highlight .ow { color: #E6E1DC ; } /* Operator.Word */&lt;br /&gt;
.mw-highlight .w { color: #E6E1DC ; } /* Text.Whitespace */&lt;br /&gt;
.mw-highlight .mf { color: #A5C261 ; } /* Literal.Number.Float */&lt;br /&gt;
.mw-highlight .mh { color: #A5C261 ; } /* Literal.Number.Hex */&lt;br /&gt;
.mw-highlight .mi { color: #A5C261 ; } /* Literal.Number.Integer */&lt;br /&gt;
.mw-highlight .mo { color: #A5C261 ; } /* Literal.Number.Oct */&lt;br /&gt;
.mw-highlight .sb { color: #AD9361 ; } /* Literal.String.Backtick */&lt;br /&gt;
.mw-highlight .sc { color: #AD9361 ; } /* Literal.String.Char */&lt;br /&gt;
.mw-highlight .sd { color: #AD9361 ; } /* Literal.String.Doc */&lt;br /&gt;
.mw-highlight .s2 { color: #AD9361 ; } /* Literal.String.Double */&lt;br /&gt;
.mw-highlight .se { color: #AD9361 ; } /* Literal.String.Escape */&lt;br /&gt;
.mw-highlight .sh { color: #AD9361 ; } /* Literal.String.Heredoc */&lt;br /&gt;
.mw-highlight .si { color: #AD9361 ; } /* Literal.String.Interpol */&lt;br /&gt;
.mw-highlight .sx { color: #AD9361 ; } /* Literal.String.Other */&lt;br /&gt;
.mw-highlight .sr { color: #AD9361 ; } /* Literal.String.Regex */&lt;br /&gt;
.mw-highlight .s1 { color: #AD9361 ; } /* Literal.String.Single */&lt;br /&gt;
.mw-highlight .ss { color: #AD9361 ; } /* Literal.String.Symbol */&lt;br /&gt;
.mw-highlight .bp { color: #E6E1DC ; } /* Name.Builtin.Pseudo */&lt;br /&gt;
.mw-highlight .vc { color: #C1C144 ; } /* Name.Variable.Class */&lt;br /&gt;
.mw-highlight .vg { color: #C1C144 ; } /* Name.Variable.Global */&lt;br /&gt;
.mw-highlight .vi { color: #C1C144 ; } /* Name.Variable.Instance */&lt;br /&gt;
.mw-highlight .il { color: #A5C261 ; } /* Literal.Number.Integer.Long */&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Girlwiki:Copyrights&amp;diff=238</id>
		<title>Girlwiki:Copyrights</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Girlwiki:Copyrights&amp;diff=238"/>
		<updated>2025-01-08T05:33:15Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;Most content on this site can be used, redistributed, mangled, and so on, as long as it adheres to the [https://creativecommons.org/licenses/by-nc-sa/4.0/ Creative Commons BY-NC-SA 4.0] license. Other content used or provided under different license should be noted as such.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most content on this site can be used, redistributed, mangled, and so on, as long as it adheres to the [https://creativecommons.org/licenses/by-nc-sa/4.0/ Creative Commons BY-NC-SA 4.0] license. Other content used or provided under different license should be noted as such.&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Jenkins&amp;diff=237</id>
		<title>Jenkins</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Jenkins&amp;diff=237"/>
		<updated>2025-01-08T05:30:51Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;''Not to be confused with [https://en.wikipedia.org/wiki/Jenkins,_Minnesota Jenkins, Minnesota].''  The Hell Labs Jenkins Cluster is intended to provide a number of systems for building and testing software managed by Hell Labs and friends.  To request an account, please contact snow with the email address and username you would like to use.  == Worker Agents ==  The following is a list of all persistent agents connected to the Jenkins controller. If you'd like to restri...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Not to be confused with [https://en.wikipedia.org/wiki/Jenkins,_Minnesota Jenkins, Minnesota].''&lt;br /&gt;
&lt;br /&gt;
The Hell Labs Jenkins Cluster is intended to provide a number of systems for building and testing software managed by Hell Labs and friends.&lt;br /&gt;
&lt;br /&gt;
To request an account, please contact snow with the email address and username you would like to use.&lt;br /&gt;
&lt;br /&gt;
== Worker Agents ==&lt;br /&gt;
&lt;br /&gt;
The following is a list of all persistent agents connected to the Jenkins controller. If you'd like to restrict your pipeline's builds, use the following labels:&lt;br /&gt;
&lt;br /&gt;
* Operating system labels: &amp;lt;code&amp;gt;linux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;netbsd&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
* Architecture labels: &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;aarch64&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
* Additional labels as defined in the table below: &amp;lt;code&amp;gt;docker&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name !! Labels !! OS !! Arch !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| ctr-agent-hel-1 || &amp;lt;code&amp;gt;docker&amp;lt;/code&amp;gt; || Linux || x86_64 || Currently contains no build tools on the host.&lt;br /&gt;
|-&lt;br /&gt;
| TODO: netbsd x86_64 ||  || NetBSD || x86_64 ||&lt;br /&gt;
|-&lt;br /&gt;
| TODO: linux aarch64 || &amp;lt;code&amp;gt;docker&amp;lt;/code&amp;gt;? || Linux || aarch64 || Should mimic ctr-agent-hel-1 probably &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:Callout&amp;diff=236</id>
		<title>Template:Callout</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:Callout&amp;diff=236"/>
		<updated>2025-01-08T05:25:56Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;{{Ambox | name  = Callout | subst = &amp;lt;includeonly&amp;gt;{{subst:substcheck}}&amp;lt;/includeonly&amp;gt; | type  = notice | doc   = no | text  = {{#if: {{{1|}}}   |{{{1|}}}   | The author of this page wanted to tell you something, but '''forgot to tell you what it was'''! }} }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ambox&lt;br /&gt;
| name  = Callout&lt;br /&gt;
| subst = &amp;lt;includeonly&amp;gt;{{subst:substcheck}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
| type  = notice&lt;br /&gt;
| doc   = no&lt;br /&gt;
| text  =&lt;br /&gt;
{{#if: {{{1|}}}&lt;br /&gt;
  |{{{1|}}}&lt;br /&gt;
  | The author of this page wanted to tell you something, but '''forgot to tell you what it was'''!&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:Nowrap/styles.css&amp;diff=235</id>
		<title>Template:Nowrap/styles.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:Nowrap/styles.css&amp;diff=235"/>
		<updated>2025-01-08T05:13:17Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;.nowrap, .nowrap a:before, .nowrap .selflink:before { 	white-space: nowrap; }&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.nowrap,&lt;br /&gt;
.nowrap a:before,&lt;br /&gt;
.nowrap .selflink:before {&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:Inline-code&amp;diff=234</id>
		<title>Template:Inline-code</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:Inline-code&amp;diff=234"/>
		<updated>2025-01-08T05:12:20Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;&amp;lt;onlyinclude&amp;gt;&amp;lt;!-- --&amp;gt;{{#if:{{yesno|{{{nowrap|}}}}}|&amp;lt;templatestyles src=&amp;quot;Template:Nowrap/styles.css&amp;quot;/&amp;gt;}}&amp;lt;!-- --&amp;gt;{{#tag:syntaxhighlight|{{{code|{{{1}}}}}}|inline=1 {{#if:{{{id|}}}| id = {{{id|}}}}} | class = {{#if:{{yesno|{{{nowrap|}}}}}|nowrap}} {{{class|}}} | style = {{{style|}}} | lang  = {{{lang|{{{2|php}}}}}} }}&amp;lt;/onlyinclude&amp;gt; {{Documentation}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{yesno|{{{nowrap|}}}}}|&amp;lt;templatestyles src=&amp;quot;Template:Nowrap/styles.css&amp;quot;/&amp;gt;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#tag:syntaxhighlight|{{{code|{{{1}}}}}}|inline=1&lt;br /&gt;
{{#if:{{{id|}}}| id = {{{id|}}}}}&lt;br /&gt;
| class = {{#if:{{yesno|{{{nowrap|}}}}}|nowrap}} {{{class|}}}&lt;br /&gt;
| style = {{{style|}}}&lt;br /&gt;
| lang  = {{{lang|{{{2|php}}}}}}&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Upgrading_Windows_7&amp;diff=233</id>
		<title>Upgrading Windows 7</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Upgrading_Windows_7&amp;diff=233"/>
		<updated>2023-08-08T05:32:44Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Windows 7 is the most advanced and stable Windows NT 6.1-based operating system. However, updating the system from a vanilla RTM or SP1 install can be a bit of a nightmare. People have made custom ISOs with tons of updates and drivers slipstreamed in, but I don't trust those. Thankfully, installing updates manually is super easy with the Convenience Rollup!&lt;br /&gt;
&lt;br /&gt;
== Pre-Requisites ==&lt;br /&gt;
&lt;br /&gt;
As far as I'm aware, Windows only shipped as either RTM or with Service Pack 1. This makes it really easy to figure out which you have!&lt;br /&gt;
&lt;br /&gt;
Open &amp;lt;code&amp;gt;winver&amp;lt;/code&amp;gt; with whatever means you like. Next to &amp;quot;Version 6.1&amp;quot;, you'll see either &amp;quot;(Build 7600)&amp;quot; or &amp;quot;(Build 7601: Service Pack 1)&amp;quot;. If you're on Build 7600, you'll need to install Service Pack 1 ({{MSU|KB976932}}: [https://catalog.s.download.windowsupdate.com/msdownload/update/software/svpk/2011/02/windows6.1-kb976932-x64_74865ef2562006e51d7f9333b4a8d45b7a749dab.exe x64], [https://catalog.s.download.windowsupdate.com/msdownload/update/software/svpk/2011/02/windows6.1-kb976932-x86_c3516bc5c9e69fee6d9ac4f981f5b95977a8a2fa.exe x32]) before you install the Convenience Rollup.{{TODO|Screenshot of winver?}}&lt;br /&gt;
&lt;br /&gt;
== Convenience Rollup ==&lt;br /&gt;
&lt;br /&gt;
Now ''this'' is where things get good. At some point, Microsoft realized nobody wanted to install hundreds of updates every time they brought a new system online, and not everybody knows what slipstreaming is&amp;amp;mdash;let alone who was responsible for that term. The Convenience Update is basically an &amp;quot;SP2 Lite&amp;quot; for Windows 7, rolling up every update from SP2 to 2016 into one .msu file. And moving onward, Monthly Rollups were provided that made it easy to get all of the future updates at once.&lt;br /&gt;
&lt;br /&gt;
== How To Install ==&lt;br /&gt;
&lt;br /&gt;
The below table lists all updates you'll need, and where to get them. '''Make sure to update them in order!'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! KB Number !! Download Links !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB4490628}} || [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu x64], [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x86_3cdb3df55b9cd7ef7fcb24fc4e237ea287ad0992.msu x32] || Servicing Stack Update for March 2019. This is the latest SSU available for stock Win7.&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB3125574}} || [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2016/05/windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu x64], [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2016/05/windows6.1-kb3125574-v4-x86_ba1ff5537312561795cc04db0b02fbb0a74b2cbd.msu x32] || Convenience Rollup! I recommend rebooting after you install this, if it doesn't force you to.&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB4474419}} || [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu x64], [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x86_0f687d50402790f340087c576886501b3223bec6.msu x32] || Adds SHA-2 code signing support to Windows 7. You'll ''definitely'' need to restart after this, the 2020 rollups use SHA-2 signing.&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB4539601}} || [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/updt/2020/01/windows6.1-kb4539601-x64_fb3f59fb0b1d3a4abf4a35230aa88a06996c4a4a.msu x64], [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2020/01/windows6.1-kb4539601-x86_89f30861c9a5d65b68ed1e029a68cf59be39fc13.msu x32] || Monthly Rollup for January 31, 2020. Technically a Preview Rollup, but this fixes an issue in the Jan 14 Rollup where your wallpaper won't appear.{{TODO|Link to MS KB}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What about ESU? ==&lt;br /&gt;
&lt;br /&gt;
Say what you will about C&amp;amp;Ds, but I'm just not a fan.&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Steam_Music_Database&amp;diff=232</id>
		<title>Steam Music Database</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Steam_Music_Database&amp;diff=232"/>
		<updated>2023-07-14T02:25:05Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;{{WIP|Literally any information other than the SQL schema}}  Found in &amp;lt;code&amp;gt;$STEAM_HOME/music/_database/musicdatabase_XXXX.db&amp;lt;/code&amp;gt;. Not sure what determines the &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt; yet, but mine is &amp;lt;code&amp;gt;0016&amp;lt;/code&amp;gt;.  &amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt; CREATE TABLE localartist (     artistid INTEGER PRIMARY KEY,     artistname TEXT,     artistsortname TEXT,     artistinsertname TEXT ); CREATE INDEX artistid_index ON localartist ( artistid ); CREATE INDEX artistname_index ON lo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WIP|Literally any information other than the SQL schema}}&lt;br /&gt;
&lt;br /&gt;
Found in &amp;lt;code&amp;gt;$STEAM_HOME/music/_database/musicdatabase_XXXX.db&amp;lt;/code&amp;gt;. Not sure what determines the &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt; yet, but mine is &amp;lt;code&amp;gt;0016&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE localartist (&lt;br /&gt;
    artistid INTEGER PRIMARY KEY,&lt;br /&gt;
    artistname TEXT,&lt;br /&gt;
    artistsortname TEXT,&lt;br /&gt;
    artistinsertname TEXT&lt;br /&gt;
);&lt;br /&gt;
CREATE INDEX artistid_index ON localartist ( artistid );&lt;br /&gt;
CREATE INDEX artistname_index ON localartist ( artistid, artistname );&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE localalbum (&lt;br /&gt;
    albumid INTEGER PRIMARY KEY,&lt;br /&gt;
    albumdirectory TEXT,&lt;br /&gt;
    albumname TEXT,&lt;br /&gt;
    artistname TEXT,&lt;br /&gt;
    albumsortname TEXT,&lt;br /&gt;
    artistsortname TEXT,&lt;br /&gt;
    trackcount INTEGER,&lt;br /&gt;
    discnumber INTEGER,&lt;br /&gt;
    multipleartist INTEGER,&lt;br /&gt;
    addedtime INTEGER&lt;br /&gt;
);&lt;br /&gt;
CREATE INDEX albumid_index ON localalbum( albumid );&lt;br /&gt;
CREATE INDEX albumdirectory_index ON localalbum( albumdirectory, albumname, discnumber );&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE localtrack (&lt;br /&gt;
    trackid INTEGER PRIMARY KEY,&lt;br /&gt;
    trackfile TEXT,&lt;br /&gt;
    trackposition INTEGER,&lt;br /&gt;
    lasttouchedtime INTEGER,&lt;br /&gt;
    trackname TEXT,&lt;br /&gt;
    albumname TEXT,&lt;br /&gt;
    artistname TEXT,&lt;br /&gt;
    albumartist TEXT,&lt;br /&gt;
    trackyear INTEGER,&lt;br /&gt;
    tracktrack INTEGER,&lt;br /&gt;
    lengthinmilliseconds INTEGER,&lt;br /&gt;
    bitrate INTEGER,&lt;br /&gt;
    samplerate INTEGER,&lt;br /&gt;
    channels INTEGER,&lt;br /&gt;
    discnumber INTEGER,&lt;br /&gt;
    genre TEXT,&lt;br /&gt;
    playcount INTEGER,&lt;br /&gt;
    lastplayedtime INTEGER,&lt;br /&gt;
    trackalbum INTEGER REFERENCES localalbum( albumid ) ON UPDATE CASCADE,&lt;br /&gt;
    trackartist INTEGER REFERENCES localartist( artistid ) ON UPDATE CASCADE,&lt;br /&gt;
    trackalbumartist INTEGER REFERENCES localartist( artistid ) ON UPDATE CASCADE,&lt;br /&gt;
    providescover INTEGER,&lt;br /&gt;
    coverurl TEXT&lt;br /&gt;
);&lt;br /&gt;
CREATE INDEX trackid_index ON localtrack( trackid );&lt;br /&gt;
CREATE INDEX trackfile_index ON localtrack( trackfile, trackname, lengthinmilliseconds, lasttouchedtime );&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE localplaylist (&lt;br /&gt;
    playlistid INTEGER PRIMARY KEY,&lt;br /&gt;
    playlistname TEXT,&lt;br /&gt;
    position INTEGER,&lt;br /&gt;
    tag TEXT,&lt;br /&gt;
    totaltime INTEGER,&lt;br /&gt;
    trackcount INTEGER,&lt;br /&gt;
    playcount INTEGER,&lt;br /&gt;
    lastplayedtime INTEGER&lt;br /&gt;
);&lt;br /&gt;
CREATE INDEX playlistid_index ON localplaylist( playlistid );&lt;br /&gt;
CREATE INDEX playlistname_index ON localplaylist( playlistname );&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE localplaylist_localtrack (&lt;br /&gt;
    id INTEGER PRIMARY KEY,&lt;br /&gt;
    playlistid INTEGER REFERENCES localplaylist( playlistid ) ON UPDATE CASCADE,&lt;br /&gt;
    trackfile TEXT,&lt;br /&gt;
    position INTEGER,&lt;br /&gt;
    active INTEGER,&lt;br /&gt;
    providescover INTEGER&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Valve_Data_Format&amp;diff=231</id>
		<title>Valve Data Format</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Valve_Data_Format&amp;diff=231"/>
		<updated>2023-07-11T19:06:48Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;'''Valve Data Format (VDF)''' files are key-value stores used by Source games and Steam.  == Text VDF ==  Most VDF files you'll see are text-based. The spec is pretty well-defined on the [https://developer.valvesoftware.com/wiki/KeyValues Valve Developer Community wiki].  &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt; &amp;quot;ParentElem&amp;quot; {     &amp;quot;Key1&amp;quot; &amp;quot;1.25&amp;quot;     &amp;quot;Key2&amp;quot; &amp;quot;String of text&amp;quot;     &amp;quot;ChildElem&amp;quot;     {         &amp;quot;Key3&amp;quot; &amp;quot;15&amp;quot;         // and so on     } } &amp;lt;/syntaxhighlight&amp;gt;  == Compiled VDF ==  In...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Valve Data Format (VDF)''' files are key-value stores used by Source games and Steam.&lt;br /&gt;
&lt;br /&gt;
== Text VDF ==&lt;br /&gt;
&lt;br /&gt;
Most VDF files you'll see are text-based. The spec is pretty well-defined on the [https://developer.valvesoftware.com/wiki/KeyValues Valve Developer Community wiki].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;ParentElem&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Key1&amp;quot; &amp;quot;1.25&amp;quot;&lt;br /&gt;
    &amp;quot;Key2&amp;quot; &amp;quot;String of text&amp;quot;&lt;br /&gt;
    &amp;quot;ChildElem&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;Key3&amp;quot; &amp;quot;15&amp;quot;&lt;br /&gt;
        // and so on&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiled VDF ==&lt;br /&gt;
&lt;br /&gt;
In some cases, the VDF will be in a &amp;quot;compiled&amp;quot; form.&amp;lt;ref&amp;gt;As far as I've seen, this is only really with shortcuts.vdf.&amp;lt;/ref&amp;gt; Each entry is in the following format:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;type&amp;gt; &amp;lt;key&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is exactly one byte, and appears to be related to the following enum:&amp;lt;ref&amp;gt;From [https://github.com/ValveSoftware/source-sdk-2013/blob/0d8dceea4310fde5706b3ce1c70609d72a38efdf/sp/src/public/tier1/KeyValues.h#L227-L238 ValveSoftware/source-sdk-2013] on Github.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
enum types_t&lt;br /&gt;
{&lt;br /&gt;
	TYPE_NONE = 0,&lt;br /&gt;
	TYPE_STRING,&lt;br /&gt;
	TYPE_INT,&lt;br /&gt;
	TYPE_FLOAT,&lt;br /&gt;
	TYPE_PTR,&lt;br /&gt;
	TYPE_WSTRING,&lt;br /&gt;
	TYPE_COLOR,&lt;br /&gt;
	TYPE_UINT64,&lt;br /&gt;
	TYPE_NUMTYPES, &lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; is always a null-terminated string. Arrays appear to be emulated with numeric strings; e.g., &amp;lt;code&amp;gt;&amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, ...&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; format is determined by the &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;. All values are little endian.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type !! Data format&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x00 (TYPE_NONE)&amp;lt;/code&amp;gt; || Represents a nested key-value map. The &amp;quot;value&amp;quot; is the first entry onward. All maps (including the &amp;quot;root&amp;quot; map) must be terminated with &amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x01 (TYPE_STRING)&amp;lt;/code&amp;gt; || Null-terminated string.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0x02 (TYPE_INT)&amp;lt;/code&amp;gt; || Little-endian 32-bit (unsigned?) integer.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Any types not mentioned above haven't been encountered, and I don't know if they exist in &amp;quot;compiled&amp;quot; form.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Upgrading_Windows_7&amp;diff=230</id>
		<title>Upgrading Windows 7</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Upgrading_Windows_7&amp;diff=230"/>
		<updated>2023-07-06T16:19:36Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Windows 7 is the most advanced and stable Windows NT 6.1-based operating system. However, updating the system from a vanilla RTM or SP1 install can be a bit of a nightmare. People have made custom ISOs with tons of updates and drivers slipstreamed in, but I don't trust those. Thankfully, installing updates manually is super easy with the Convenience Rollup!&lt;br /&gt;
&lt;br /&gt;
== Pre-Requisites ==&lt;br /&gt;
&lt;br /&gt;
As far as I'm aware, Windows only shipped as either RTM or with Service Pack 1. This makes it really easy to figure out which you have!&lt;br /&gt;
&lt;br /&gt;
Open &amp;lt;code&amp;gt;winver&amp;lt;/code&amp;gt; with whatever means you like. Next to &amp;quot;Version 6.1&amp;quot;, you'll see either &amp;quot;(Build 7600)&amp;quot; or &amp;quot;(Build 7601: Service Pack 1)&amp;quot;. If you're on Build 7600, you'll need to install Service Pack 1 ({{MSU|KB976932}}: [https://catalog.s.download.windowsupdate.com/msdownload/update/software/svpk/2011/02/windows6.1-kb976932-x64_74865ef2562006e51d7f9333b4a8d45b7a749dab.exe x64], [https://catalog.s.download.windowsupdate.com/msdownload/update/software/svpk/2011/02/windows6.1-kb976932-x86_c3516bc5c9e69fee6d9ac4f981f5b95977a8a2fa.exe x32]) before you install the Convenience Rollup.{{TODO|Screenshot of winver?}}&lt;br /&gt;
&lt;br /&gt;
== Convenience Rollup ==&lt;br /&gt;
&lt;br /&gt;
Now ''this'' is where things get good. At some point, Microsoft realized nobody wanted to install hundreds of updates every time they brought a new system online, and not everybody knows what slipstreaming is&amp;amp;mdash;let alone who was responsible for that term. The Convenience Update is basically an &amp;quot;SP2 Lite&amp;quot; for Windows 7, rolling up every update from SP2 to 2016 into one .msu file. And moving onward, Monthly Rollups were provided that made it easy to get all of the future updates at once.&lt;br /&gt;
&lt;br /&gt;
== How To Install ==&lt;br /&gt;
&lt;br /&gt;
The below table lists all updates you'll need, and where to get them. '''Make sure to update them in order!'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! KB Number !! Download Links !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB3020369}} || [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2015/04/windows6.1-kb3020369-x64_5393066469758e619f21731fc31ff2d109595445.msu x64], [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2015/04/windows6.1-kb3020369-x86_82e168117c23f7c479a97ee96c82af788d07452e.msu x32] || April 2015 Servicing Stack Update, a pre-requisite for the Convenience Rollup.&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB3125574}} || [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2016/05/windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu x64], [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2016/05/windows6.1-kb3125574-v4-x86_ba1ff5537312561795cc04db0b02fbb0a74b2cbd.msu x32] || Convenience Rollup! I recommend rebooting after you install this, if it doesn't force you to.&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB4474419}} || [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu x64], [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x86_0f687d50402790f340087c576886501b3223bec6.msu x32] || Adds SHA-2 code signing support to Windows 7.&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB4490628}} || [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu x64], [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x86_3cdb3df55b9cd7ef7fcb24fc4e237ea287ad0992.msu x32] || Servicing Stack Update for March 2019.{{TODO|Could this replace Apr2015 SSU?}}&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB4539601}} || [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/updt/2020/01/windows6.1-kb4539601-x64_fb3f59fb0b1d3a4abf4a35230aa88a06996c4a4a.msu x64], [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2020/01/windows6.1-kb4539601-x86_89f30861c9a5d65b68ed1e029a68cf59be39fc13.msu x32] || Monthly Rollup for January 31, 2020. Technically a Preview Rollup, but this fixes an issue in the Jan 14 Rollup where your wallpaper won't appear.{{TODO|Link to MS KB}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What about ESU? ==&lt;br /&gt;
&lt;br /&gt;
Say what you will about C&amp;amp;Ds, but I'm just not a fan.&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=229</id>
		<title>Template:TODO</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=229"/>
		<updated>2023-07-06T07:20:55Z</updated>

		<summary type="html">&lt;p&gt;Flurry: c'moooon, do something&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
{{Fix&lt;br /&gt;
|name={{{name|TODO}}}&lt;br /&gt;
|link=Girlwiki:TODO&lt;br /&gt;
|text=TODO&lt;br /&gt;
|post-text={{#if:{{{1|}}}|&amp;amp;mdash;{{{1|}}}}}&lt;br /&gt;
|class=Template-Fact&lt;br /&gt;
|title={{{reason|This line indicates some content is a work in progress.}}}&lt;br /&gt;
|date={{{date|}}}&lt;br /&gt;
}}&lt;br /&gt;
}}[[Category:Articles with TODO lines]]&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=228</id>
		<title>Template:TODO</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=228"/>
		<updated>2023-07-06T07:20:16Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
{{Fix&lt;br /&gt;
|name={{{name|TODO}}}&lt;br /&gt;
|link=Girlwiki:TODO&lt;br /&gt;
|text=TODO&lt;br /&gt;
|post-text={{#if:{{{1|}}}|&amp;amp;mdash;{{{1|}}}}}&lt;br /&gt;
|class=Template-Fact&lt;br /&gt;
|title={{{reason|This line indicates some content is a work in progress.}}}&lt;br /&gt;
|date={{{date|}}}&lt;br /&gt;
|special=[[Category:Articles with TODO lines]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:Fix&amp;diff=227</id>
		<title>Template:Fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:Fix&amp;diff=227"/>
		<updated>2023-07-06T07:19:59Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#if:{{{text|}}}&lt;br /&gt;
 |&amp;lt;sup class=&amp;quot;{{{class|noprint Inline-Template}}}&amp;quot; style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;{{#if:{{{pre-text|}}}&lt;br /&gt;
  |{{{pre-text}}}&amp;amp;#32;&lt;br /&gt;
 }}[[{{{link|Girlwiki:404}}}|&amp;lt;span title=&amp;quot;{{{title|{{{link|Wikipedia:Cleanup}}}}}}{{#if:{{{date|}}}|&amp;lt;nowiki/&amp;gt; ({{{date}}})}}&amp;quot;&amp;gt;{{{text|}}}&amp;lt;/span&amp;gt;]]{{#if:{{{post-text|}}}&lt;br /&gt;
  |&amp;amp;#32;{{{post-text}}}&lt;br /&gt;
 }}&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/sup&amp;gt;|{{{special|}}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=226</id>
		<title>Template:TODO</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=226"/>
		<updated>2023-07-06T07:19:21Z</updated>

		<summary type="html">&lt;p&gt;Flurry: oops!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
{{Fix&lt;br /&gt;
|name={{{name|TODO}}}&lt;br /&gt;
|link=Girlwiki:TODO&lt;br /&gt;
|text=TODO&lt;br /&gt;
|post-text={{#if:{{{1|}}}|&amp;amp;mdash;{{{1|}}}}}&lt;br /&gt;
|class=Template-Fact&lt;br /&gt;
|title={{{reason|This line indicates some content is a work in progress.}}}&lt;br /&gt;
|date={{{date|}}}&lt;br /&gt;
|cat=[[Category:Articles with TODO lines]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=225</id>
		<title>Template:TODO</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=225"/>
		<updated>2023-07-06T07:19:13Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
{{Fix&lt;br /&gt;
|name={{{name|TODO}}}&lt;br /&gt;
|link=Girlwiki:TODO&lt;br /&gt;
|text=TODO&lt;br /&gt;
|post-text={{#if:{{{1|}}}|&amp;amp;mdash;{{{1|}}}}}&lt;br /&gt;
|class=Template-Fact&lt;br /&gt;
|title={{{reason|This line indicates some content is a work in progress.}}}&lt;br /&gt;
|date={{{date|}}}&lt;br /&gt;
|cat=[[Category:Articles with TODO lines]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=224</id>
		<title>Template:TODO</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=224"/>
		<updated>2023-07-06T07:18:51Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
{{Fix&lt;br /&gt;
|name={{{name|TODO}}}&lt;br /&gt;
|link=Girlwiki:TODO&lt;br /&gt;
|text=TODO&lt;br /&gt;
|post-text={{#if:{{{1|}}}|&amp;amp;mdash;{{{1|}}}}}&lt;br /&gt;
|class=Template-Fact&lt;br /&gt;
|title={{{reason|This line indicates some content is a work in progress.}}}&lt;br /&gt;
|date={{{date|}}}&lt;br /&gt;
|cat=[[Category:Articles with TODO lines]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Upgrading_Windows_7&amp;diff=223</id>
		<title>Upgrading Windows 7</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Upgrading_Windows_7&amp;diff=223"/>
		<updated>2023-07-06T07:15:44Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Windows 7 is the most advanced and stable Windows NT 6.1-based operating system. However, updating the system from a vanilla RTM or SP1 install can be a bit of a nightmare. People have made custom ISOs with tons of updates and drivers slipstreamed in, but I don't trust those. Thankfully, installing updates manually is super easy with the Convenience Rollup!&lt;br /&gt;
&lt;br /&gt;
== Pre-Requisites ==&lt;br /&gt;
&lt;br /&gt;
As far as I'm aware, Windows only shipped as either RTM or with Service Pack 1. This makes it really easy to figure out which you have!&lt;br /&gt;
&lt;br /&gt;
Open &amp;lt;code&amp;gt;winver&amp;lt;/code&amp;gt; with whatever means you like. Next to &amp;quot;Version 6.1&amp;quot;, you'll see either &amp;quot;(Build 7600)&amp;quot; or &amp;quot;(Build 7601: Service Pack 1)&amp;quot;. If you're on Build 7600, you'll need to install Service Pack 1 ({{MSU|KB976932}}: [https://catalog.s.download.windowsupdate.com/msdownload/update/software/svpk/2011/02/windows6.1-kb976932-x64_74865ef2562006e51d7f9333b4a8d45b7a749dab.exe x64], [https://catalog.s.download.windowsupdate.com/msdownload/update/software/svpk/2011/02/windows6.1-kb976932-x86_c3516bc5c9e69fee6d9ac4f981f5b95977a8a2fa.exe x32]) before you install the Convenience Rollup.{{TODO|Screenshot of winver?}}&lt;br /&gt;
&lt;br /&gt;
== Convenience Rollup ==&lt;br /&gt;
&lt;br /&gt;
Now ''this'' is where things get good. At some point, Microsoft realized nobody wanted to install hundreds of updates every time they brought a new system online, and not everybody knows what slipstreaming is&amp;amp;mdash;let alone who was responsible for that term.&lt;br /&gt;
&lt;br /&gt;
First, install the April 2015 Servicing Stack Update ({{MSU|KB3020369}}: [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2015/04/windows6.1-kb3020369-x64_5393066469758e619f21731fc31ff2d109595445.msu x64], [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2015/04/windows6.1-kb3020369-x86_82e168117c23f7c479a97ee96c82af788d07452e.msu x32]) and reboot your system.&lt;br /&gt;
&lt;br /&gt;
Then, install the Convenience Rollup ({{MSU|KB3125574}}: [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2016/05/windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu x64], [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2016/05/windows6.1-kb3125574-v4-x86_ba1ff5537312561795cc04db0b02fbb0a74b2cbd.msu x32]). Welcome to 2016!&lt;br /&gt;
&lt;br /&gt;
== Last Non-ESU Updates ==&lt;br /&gt;
&lt;br /&gt;
These updates are a bit more boring than SP1 and the Convenience Rollup, so I'm throwing them into a table with a little blurb about what they do. '''Make sure you install them in the order shown!'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! KB Number !! Download Links !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB4474419}} || [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu x64], [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x86_0f687d50402790f340087c576886501b3223bec6.msu x32] || Adds SHA-2 code signing support to Windows 7.&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB4490628}} || [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu x64], [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x86_3cdb3df55b9cd7ef7fcb24fc4e237ea287ad0992.msu x32] || Servicing Stack Update for March 2019.{{TODO|Could this replace Apr2015 SSU?}}&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB4539601}} || [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/updt/2020/01/windows6.1-kb4539601-x64_fb3f59fb0b1d3a4abf4a35230aa88a06996c4a4a.msu x64], [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2020/01/windows6.1-kb4539601-x86_89f30861c9a5d65b68ed1e029a68cf59be39fc13.msu x32] || Monthly Rollup for January 31, 2020. Technically a Preview Rollup, but this fixes an issue in the Jan 14 Rollup where your wallpaper won't appear.{{TODO|Link to MS KB}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What about ESU? ==&lt;br /&gt;
&lt;br /&gt;
Say what you will about C&amp;amp;Ds, but I'm just not a fan.&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Upgrading_Windows_7&amp;diff=222</id>
		<title>Upgrading Windows 7</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Upgrading_Windows_7&amp;diff=222"/>
		<updated>2023-07-06T07:13:59Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;Windows 7 is the most advanced and stable Windows NT 6.1-based operating system. However, updating the system from a vanilla RTM or SP1 install can be a bit of a nightmare. People have made custom ISOs with tons of updates and drivers slipstreamed in, but I don't trust those. Thankfully, installing updates manually is super easy with the Convenience Rollup!  == Pre-Requisites ==  As far as I'm aware, Windows only shipped as either RTM or with Service Pack 1. This makes i...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Windows 7 is the most advanced and stable Windows NT 6.1-based operating system. However, updating the system from a vanilla RTM or SP1 install can be a bit of a nightmare. People have made custom ISOs with tons of updates and drivers slipstreamed in, but I don't trust those. Thankfully, installing updates manually is super easy with the Convenience Rollup!&lt;br /&gt;
&lt;br /&gt;
== Pre-Requisites ==&lt;br /&gt;
&lt;br /&gt;
As far as I'm aware, Windows only shipped as either RTM or with Service Pack 1. This makes it really easy to figure out which you have!&lt;br /&gt;
&lt;br /&gt;
Open &amp;lt;code&amp;gt;winver&amp;lt;/code&amp;gt; with whatever means you like. Next to &amp;quot;Version 6.1&amp;quot;, you'll see either &amp;quot;(Build 7600)&amp;quot; or &amp;quot;(Build 7601: Service Pack 1)&amp;quot;. If you're on Build 7600, you'll need to install Service Pack 1 ({{MSU|KB976932}}: [https://catalog.s.download.windowsupdate.com/msdownload/update/software/svpk/2011/02/windows6.1-kb976932-x64_74865ef2562006e51d7f9333b4a8d45b7a749dab.exe x64], [https://catalog.s.download.windowsupdate.com/msdownload/update/software/svpk/2011/02/windows6.1-kb976932-x86_c3516bc5c9e69fee6d9ac4f981f5b95977a8a2fa.exe x32]) before you install the Convenience Rollup.{{TODO|Screenshot of winver?}}&lt;br /&gt;
&lt;br /&gt;
== Convenience Rollup ==&lt;br /&gt;
&lt;br /&gt;
Now ''this'' is where things get good. At some point, Microsoft realized nobody wanted to install hundreds of updates every time they brought a new system online, and not everybody knows what slipstreaming is&amp;amp;mdash;let alone who was responsible for that term.&lt;br /&gt;
&lt;br /&gt;
First, install the April 2015 Servicing Stack Update ({{MSU|KB3020369}}: [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2015/04/windows6.1-kb3020369-x64_5393066469758e619f21731fc31ff2d109595445.msu x64], [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2015/04/windows6.1-kb3020369-x86_82e168117c23f7c479a97ee96c82af788d07452e.msu x32]) and reboot your system.&lt;br /&gt;
&lt;br /&gt;
Then, install the Convenience Rollup ({{MSU|KB3125574}}: [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2016/05/windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu x64], [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2016/05/windows6.1-kb3125574-v4-x86_ba1ff5537312561795cc04db0b02fbb0a74b2cbd.msu x32]). Welcome to 2016!&lt;br /&gt;
&lt;br /&gt;
== Last Non-ESU Updates ==&lt;br /&gt;
&lt;br /&gt;
These updates are a bit more boring than SP1 and the Convenience Rollup, so I'm throwing them into a table with a little blurb about what they do. '''Make sure you install them in the order shown!'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! KB Number !! Download Links !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB4474419}} || [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu x64], [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x86_0f687d50402790f340087c576886501b3223bec6.msu x32] || Adds SHA-2 code signing support to Windows 7.&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB4490628}} || [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu x64], [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x86_3cdb3df55b9cd7ef7fcb24fc4e237ea287ad0992.msu x32] || Servicing Stack Update for March 2019.{{TODO|Could this replace Apr2015 SSU?}}&lt;br /&gt;
|-&lt;br /&gt;
| {{MSU|KB4539601}} || [https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/updt/2020/01/windows6.1-kb4539601-x64_fb3f59fb0b1d3a4abf4a35230aa88a06996c4a4a.msu x64], [https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2020/01/windows6.1-kb4539601-x86_89f30861c9a5d65b68ed1e029a68cf59be39fc13.msu x32] || Monthly Rollup for January 31, 2020. Technically a Preview Rollup, but this fixes an issue in the Jan 14 Rollup where your wallpaper won't appear.{{TODO|Link to MS KB}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:MSU&amp;diff=221</id>
		<title>Template:MSU</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:MSU&amp;diff=221"/>
		<updated>2023-07-06T07:05:27Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://catalog.update.microsoft.com/search.aspx?q={{{1|}}} {{{1|}}}]&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Template to make linking to the [https://catalog.update.microsoft.com Microsoft Update Catalog] a bit easier. Used like so: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{MSU|KB12345678}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:MSU&amp;diff=220</id>
		<title>Template:MSU</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:MSU&amp;diff=220"/>
		<updated>2023-07-06T07:03:14Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;[https://catalog.update.microsoft.com/search.aspx?q={{{1|}}} {{{1|}}}] &amp;lt;noinclude&amp;gt; test &amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://catalog.update.microsoft.com/search.aspx?q={{{1|}}} {{{1|}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
test&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=219</id>
		<title>Template:TODO</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=219"/>
		<updated>2023-07-06T06:30:29Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
{{Fix&lt;br /&gt;
|name={{{name|TODO}}}&lt;br /&gt;
|link=Girlwiki:TODO&lt;br /&gt;
|text=TODO&lt;br /&gt;
|post-text={{#if:{{{1|}}}|&amp;amp;mdash;{{{1|}}}}}&lt;br /&gt;
|class=Template-Fact&lt;br /&gt;
|title={{{reason|This line indicates some content is a work in progress.}}}&lt;br /&gt;
|date={{{date|}}}&lt;br /&gt;
|cat=[[Category:Articles with TODO lines]]&lt;br /&gt;
|cat-date=Category:Articles with TODO lines&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Girlwiki:WIP&amp;diff=218</id>
		<title>Girlwiki:WIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Girlwiki:WIP&amp;diff=218"/>
		<updated>2023-07-06T06:27:56Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Redirected page to Category:WIPs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Category:WIPs]]&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Module:Message_box/ambox.css&amp;diff=217</id>
		<title>Module:Message box/ambox.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Module:Message_box/ambox.css&amp;diff=217"/>
		<updated>2023-07-06T06:27:12Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=y}} */&lt;br /&gt;
.ambox {&lt;br /&gt;
	border: 1px solid #a2a9b1;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #36c;  /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
	background-color: #fbfbfb;&lt;br /&gt;
	box-sizing: border-box;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Single border between stacked boxes. Take into account base templatestyles,&lt;br /&gt;
 * user styles, and Template:Dated maintenance category.&lt;br /&gt;
 * remove link selector when T200206 is fixed&lt;br /&gt;
 */&lt;br /&gt;
.ambox + link + .ambox,&lt;br /&gt;
.ambox + link + style + .ambox,&lt;br /&gt;
.ambox + link + link + .ambox,&lt;br /&gt;
/* TODO: raise these as &amp;quot;is this really that necessary???&amp;quot;. the change was Dec 2021 */&lt;br /&gt;
.ambox + .mw-empty-elt + link + .ambox,&lt;br /&gt;
.ambox + .mw-empty-elt + link + style + .ambox,&lt;br /&gt;
.ambox + .mw-empty-elt + link + link + .ambox {&lt;br /&gt;
	margin-top: -1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox .mbox-text {&lt;br /&gt;
	color: #111;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For the &amp;quot;small=left&amp;quot; option. */&lt;br /&gt;
/* must override .ambox + .ambox styles above */&lt;br /&gt;
html body.mediawiki .ambox.mbox-small-left {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 4px 1em 4px 0;&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
	width: 238px;&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
	line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-speedy {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #b32424;    /* Red */&lt;br /&gt;
	background-color: #fee7e6;          /* Pink */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-delete {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #b32424;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-content {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-style {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #fc3;       /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-move {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-protection {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #a2a9b1;    /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox .mbox-text {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 0.25em 0.5em;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox .mbox-image {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 2px 0 2px 0.5em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox .mbox-imageright {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 2px 0.5em 2px 0;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* An empty narrow cell */&lt;br /&gt;
.ambox .mbox-empty-cell {&lt;br /&gt;
	border: none;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	width: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox .mbox-image-div {&lt;br /&gt;
	width: 52px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hack around MobileFrontend being opinionated */&lt;br /&gt;
html.client-js body.skin-minerva .mbox-text-span {&lt;br /&gt;
	margin-left: 23px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.ambox {&lt;br /&gt;
		margin: 0 10%;                  /* 10% = Will not overlap with other elements */&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Module:Message_box/ambox.css&amp;diff=216</id>
		<title>Module:Message box/ambox.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Module:Message_box/ambox.css&amp;diff=216"/>
		<updated>2023-07-06T06:26:01Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=y}} */&lt;br /&gt;
.ambox {&lt;br /&gt;
	border: 1px solid #a2a9b1;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #36c;  /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
	background-color: #fbfbfb;&lt;br /&gt;
	box-sizing: border-box;&lt;br /&gt;
	color: #111;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Single border between stacked boxes. Take into account base templatestyles,&lt;br /&gt;
 * user styles, and Template:Dated maintenance category.&lt;br /&gt;
 * remove link selector when T200206 is fixed&lt;br /&gt;
 */&lt;br /&gt;
.ambox + link + .ambox,&lt;br /&gt;
.ambox + link + style + .ambox,&lt;br /&gt;
.ambox + link + link + .ambox,&lt;br /&gt;
/* TODO: raise these as &amp;quot;is this really that necessary???&amp;quot;. the change was Dec 2021 */&lt;br /&gt;
.ambox + .mw-empty-elt + link + .ambox,&lt;br /&gt;
.ambox + .mw-empty-elt + link + style + .ambox,&lt;br /&gt;
.ambox + .mw-empty-elt + link + link + .ambox {&lt;br /&gt;
	margin-top: -1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For the &amp;quot;small=left&amp;quot; option. */&lt;br /&gt;
/* must override .ambox + .ambox styles above */&lt;br /&gt;
html body.mediawiki .ambox.mbox-small-left {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 4px 1em 4px 0;&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
	width: 238px;&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
	line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-speedy {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #b32424;    /* Red */&lt;br /&gt;
	background-color: #fee7e6;          /* Pink */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-delete {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #b32424;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-content {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-style {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #fc3;       /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-move {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-protection {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #a2a9b1;    /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox .mbox-text {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 0.25em 0.5em;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox .mbox-image {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 2px 0 2px 0.5em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox .mbox-imageright {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 2px 0.5em 2px 0;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* An empty narrow cell */&lt;br /&gt;
.ambox .mbox-empty-cell {&lt;br /&gt;
	border: none;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	width: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox .mbox-image-div {&lt;br /&gt;
	width: 52px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hack around MobileFrontend being opinionated */&lt;br /&gt;
html.client-js body.skin-minerva .mbox-text-span {&lt;br /&gt;
	margin-left: 23px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.ambox {&lt;br /&gt;
		margin: 0 10%;                  /* 10% = Will not overlap with other elements */&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Category:Articles_with_TODO_lines&amp;diff=215</id>
		<title>Category:Articles with TODO lines</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Category:Articles_with_TODO_lines&amp;diff=215"/>
		<updated>2023-07-06T06:22:43Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;If there's a specific thing I want to work on and it's easier to write a TODO in the middle of the article, it'll end up here. This should only be for small but useful things like diagrams, images, examples, etc. If an article is missing information that makes it useful to others, I should probably use the WIP Template so it ends up in the right category.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If there's a specific thing I want to work on and it's easier to write a TODO in the middle of the article, it'll end up here. This should only be for small but useful things like diagrams, images, examples, etc. If an article is missing information that makes it useful to others, I should probably use the [[Template:WIP|WIP Template]] so it ends up in the [[:Category:WIPs|right category]].&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Girlwiki:TODO&amp;diff=214</id>
		<title>Girlwiki:TODO</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Girlwiki:TODO&amp;diff=214"/>
		<updated>2023-07-06T06:18:12Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Redirected page to Category:Articles with TODO lines&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Category:Articles with TODO lines]]&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=213</id>
		<title>Template:TODO</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=213"/>
		<updated>2023-07-06T06:17:20Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
{{Fix&lt;br /&gt;
|name={{{name|TODO}}}&lt;br /&gt;
|link=Girlwiki:TODO&lt;br /&gt;
|text=TODO&lt;br /&gt;
|class=Template-Fact&lt;br /&gt;
|title={{{reason|This line indicates some content is a work in progress.}}}&lt;br /&gt;
|date={{{date|}}}&lt;br /&gt;
|cat=[[Category:Articles with TODO lines]]&lt;br /&gt;
|cat-date=Category:Articles with TODO lines&lt;br /&gt;
}}{{#if:{{{1|}}}|[[Category:Pages containing TODO template with deprecated parameters]]}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=212</id>
		<title>Template:TODO</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:TODO&amp;diff=212"/>
		<updated>2023-07-06T06:16:39Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B= {{Fix |name={{{name|TODO}}} |link=Girlwiki:TODO List |text=TODO |class=Template-Fact |title={{{reason|This line indicates some content is a work in progress.}}} |date={{{date|}}} |cat=Category:Articles with TODO lines |cat-date=Category:Articles with TODO lines }}{{#if:{{{1|}}}|Category:Pages containing TODO template with deprecated parameters}} }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
{{Fix&lt;br /&gt;
|name={{{name|TODO}}}&lt;br /&gt;
|link=Girlwiki:TODO List&lt;br /&gt;
|text=TODO&lt;br /&gt;
|class=Template-Fact&lt;br /&gt;
|title={{{reason|This line indicates some content is a work in progress.}}}&lt;br /&gt;
|date={{{date|}}}&lt;br /&gt;
|cat=[[Category:Articles with TODO lines]]&lt;br /&gt;
|cat-date=Category:Articles with TODO lines&lt;br /&gt;
}}{{#if:{{{1|}}}|[[Category:Pages containing TODO template with deprecated parameters]]}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:Citation_Needed&amp;diff=211</id>
		<title>Template:Citation Needed</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:Citation_Needed&amp;diff=211"/>
		<updated>2023-07-06T05:36:13Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B= {{Fix |name={{{name|Citation needed}}} |link=Citation needed |text=citation needed |class=Template-Fact |title={{{reason|This claim needs references to reliable sources.}}} |date={{{date|}}} |cat=Category:All articles with unsourced statements |cat-date=Category:Articles with unsourced statements }}{{#if:{{{1|}}}|Category:Pages containing citation needed template with deprecated parameters}} }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
{{Fix&lt;br /&gt;
|name={{{name|Citation needed}}}&lt;br /&gt;
|link=Citation needed&lt;br /&gt;
|text=citation needed&lt;br /&gt;
|class=Template-Fact&lt;br /&gt;
|title={{{reason|This claim needs references to reliable sources.}}}&lt;br /&gt;
|date={{{date|}}}&lt;br /&gt;
|cat=[[Category:All articles with unsourced statements]]&lt;br /&gt;
|cat-date=Category:Articles with unsourced statements&lt;br /&gt;
}}{{#if:{{{1|}}}|[[Category:Pages containing citation needed template with deprecated parameters]]}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:Fix&amp;diff=210</id>
		<title>Template:Fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:Fix&amp;diff=210"/>
		<updated>2023-07-05T22:39:25Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;{{#if:{{{text|}}}  |&amp;lt;sup class=&amp;quot;{{{class|noprint Inline-Template}}}&amp;quot; style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;{{#if:{{{pre-text|}}}   |{{{pre-text}}}&amp;amp;#32;  }}}}}&amp;lt;/span&amp;gt;{{#if:{{{post-text|}}}   |&amp;amp;#32;{{{post-text}}}  }}&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/sup&amp;gt;|{{{special|}}} }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#if:{{{text|}}}&lt;br /&gt;
 |&amp;lt;sup class=&amp;quot;{{{class|noprint Inline-Template}}}&amp;quot; style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;{{#if:{{{pre-text|}}}&lt;br /&gt;
  |{{{pre-text}}}&amp;amp;#32;&lt;br /&gt;
 }}[[{{{link|Wikipedia:Cleanup}}}|&amp;lt;span title=&amp;quot;{{{title|{{{link|Wikipedia:Cleanup}}}}}}{{#if:{{{date|}}}|&amp;lt;nowiki/&amp;gt; ({{{date}}})}}&amp;quot;&amp;gt;{{{text|}}}&amp;lt;/span&amp;gt;]]{{#if:{{{post-text|}}}&lt;br /&gt;
  |&amp;amp;#32;{{{post-text}}}&lt;br /&gt;
 }}&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/sup&amp;gt;|{{{special|}}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Module:Unsubst&amp;diff=209</id>
		<title>Module:Unsubst</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Module:Unsubst&amp;diff=209"/>
		<updated>2023-07-05T22:37:03Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Import unsubst from MediaWiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local checkType = require('libraryUtil').checkType&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local BODY_PARAM = '$B'&lt;br /&gt;
&lt;br /&gt;
local specialParams = {&lt;br /&gt;
	['$params'] = 'parameter list',&lt;br /&gt;
	['$aliases'] = 'parameter aliases',&lt;br /&gt;
	['$flags'] = 'flags',&lt;br /&gt;
	['$B'] = 'template content'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame, body)&lt;br /&gt;
	-- If we are substing, this function returns a template invocation, and if&lt;br /&gt;
	-- not, it returns the template body. The template body can be specified in&lt;br /&gt;
	-- the body parameter, or in the template parameter defined in the&lt;br /&gt;
	-- BODY_PARAM variable. This function can be called from Lua or from&lt;br /&gt;
	-- #invoke.&lt;br /&gt;
&lt;br /&gt;
	-- Return the template body if we aren't substing.&lt;br /&gt;
	if not mw.isSubsting() then&lt;br /&gt;
		if body ~= nil then&lt;br /&gt;
			return body&lt;br /&gt;
		elseif frame.args[BODY_PARAM] ~= nil then&lt;br /&gt;
			return frame.args[BODY_PARAM]&lt;br /&gt;
		else&lt;br /&gt;
			error(string.format(&lt;br /&gt;
				&amp;quot;no template content specified (use parameter '%s' from #invoke)&amp;quot;,&lt;br /&gt;
				BODY_PARAM&lt;br /&gt;
			), 2)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Sanity check for the frame object.&lt;br /&gt;
	if type(frame) ~= 'table'&lt;br /&gt;
		or type(frame.getParent) ~= 'function'&lt;br /&gt;
		or not frame:getParent()&lt;br /&gt;
	then&lt;br /&gt;
		error(&lt;br /&gt;
			&amp;quot;argument #1 to 'main' must be a frame object with a parent &amp;quot; ..&lt;br /&gt;
			&amp;quot;frame available&amp;quot;,&lt;br /&gt;
			2&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Find the invocation name.&lt;br /&gt;
	local mTemplateInvocation = require('Module:Template invocation')&lt;br /&gt;
	local name = mTemplateInvocation.name(frame:getParent():getTitle())&lt;br /&gt;
&lt;br /&gt;
	-- Combine passed args with passed defaults&lt;br /&gt;
	local args = {}&lt;br /&gt;
	if string.find( ','..(frame.args['$flags'] or '')..',', ',%s*override%s*,' ) then&lt;br /&gt;
		for k, v in pairs( frame:getParent().args ) do&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
		for k, v in pairs( frame.args ) do&lt;br /&gt;
			if not specialParams[k] then&lt;br /&gt;
				if v == '__DATE__' then&lt;br /&gt;
					v = mw.getContentLanguage():formatDate( 'F Y' )&lt;br /&gt;
				end&lt;br /&gt;
				args[k] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		for k, v in pairs( frame.args ) do&lt;br /&gt;
			if not specialParams[k] then&lt;br /&gt;
				if v == '__DATE__' then&lt;br /&gt;
					v = mw.getContentLanguage():formatDate( 'F Y' )&lt;br /&gt;
				end&lt;br /&gt;
				args[k] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		for k, v in pairs( frame:getParent().args ) do&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Trim parameters, if not specified otherwise&lt;br /&gt;
	if not string.find( ','..(frame.args['$flags'] or '')..',', ',%s*keep%-whitespace%s*,' ) then&lt;br /&gt;
		for k, v in pairs( args ) do args[k] = mw.ustring.match(v, '^%s*(.*)%s*$') or '' end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Pull information from parameter aliases&lt;br /&gt;
	local aliases = {}&lt;br /&gt;
	if frame.args['$aliases'] then&lt;br /&gt;
		local list = mw.text.split( frame.args['$aliases'], '%s*,%s*' )&lt;br /&gt;
		for k, v in ipairs( list ) do&lt;br /&gt;
			local tmp = mw.text.split( v, '%s*&amp;gt;%s*' )&lt;br /&gt;
			aliases[tonumber(mw.ustring.match(tmp[1], '^[1-9][0-9]*$')) or tmp[1]] = ((tonumber(mw.ustring.match(tmp[2], '^[1-9][0-9]*$'))) or tmp[2])&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for k, v in pairs( aliases ) do&lt;br /&gt;
		if args[k] and ( not args[v] or args[v] == '' ) then&lt;br /&gt;
			args[v] = args[k]&lt;br /&gt;
		end&lt;br /&gt;
		args[k] = nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Remove empty parameters, if specified&lt;br /&gt;
	if string.find( ','..(frame.args['$flags'] or '')..',', ',%s*remove%-empty%s*,' ) then&lt;br /&gt;
		local tmp = 0&lt;br /&gt;
		for k, v in ipairs( args ) do&lt;br /&gt;
			if v ~= '' or ( args[k+1] and args[k+1] ~= '' ) or ( args[k+2] and args[k+2] ~= '' ) then&lt;br /&gt;
				tmp = k&lt;br /&gt;
			else&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		for k, v in pairs( args ) do&lt;br /&gt;
			if v == '' then&lt;br /&gt;
				if not (type(k) == 'number' and k &amp;lt; tmp) then args[k] = nil end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Order parameters&lt;br /&gt;
	if frame.args['$params'] then&lt;br /&gt;
		local params, tmp = mw.text.split( frame.args['$params'], '%s*,%s*' ), {}&lt;br /&gt;
		for k, v in ipairs(params) do&lt;br /&gt;
			v = tonumber(mw.ustring.match(v, '^[1-9][0-9]*$')) or v&lt;br /&gt;
			if args[v] then tmp[v], args[v] = args[v], nil end&lt;br /&gt;
		end&lt;br /&gt;
		for k, v in pairs(args) do tmp[k], args[k] = args[k], nil end&lt;br /&gt;
		args = tmp&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return mTemplateInvocation.invocation(name, args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p[''] = p.main -- For backwards compatibility&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=File:Test_Template_Info-Icon_-_Version_(2).svg&amp;diff=208</id>
		<title>File:Test Template Info-Icon - Version (2).svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=File:Test_Template_Info-Icon_-_Version_(2).svg&amp;diff=208"/>
		<updated>2023-04-17T05:49:18Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:Userbox&amp;diff=207</id>
		<title>Template:Userbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:Userbox&amp;diff=207"/>
		<updated>2023-04-17T05:48:00Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;{| cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;width:238px; background:{{{info-background|{{{2|{{{info-c|#EEE}}}}}}}}}; float:{{{float|none}}}; border:{{{border-width|{{{border-s|1}}}}}}px solid {{{border-color|{{{1|{{{border-c|{{{id-c|#999}}}}}}}}}}}}; margin:1px;&amp;quot; class=&amp;quot;wikipediauserbox&amp;quot; {{#if:{{{logo|{{{3|{{{id|id}}}}}}}}}| ! style=&amp;quot;width:{{{logo-width|{{{id-w|45}}}}}}px; height:{{{logo-height|{{{id-h|45}}}}}}px; background:{{{logo-background|{{{1|{{{id-c|#DDD}}}}}}}}}; text-align:{{{id-...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;width:238px; background:{{{info-background|{{{2|{{{info-c|#EEE}}}}}}}}}; float:{{{float|none}}}; border:{{{border-width|{{{border-s|1}}}}}}px solid {{{border-color|{{{1|{{{border-c|{{{id-c|#999}}}}}}}}}}}}; margin:1px;&amp;quot; class=&amp;quot;wikipediauserbox&amp;quot;&lt;br /&gt;
{{#if:{{{logo|{{{3|{{{id|id}}}}}}}}}|&lt;br /&gt;
! style=&amp;quot;width:{{{logo-width|{{{id-w|45}}}}}}px; height:{{{logo-height|{{{id-h|45}}}}}}px; background:{{{logo-background|{{{1|{{{id-c|#DDD}}}}}}}}}; text-align:{{{id-a|center}}}; font-size:{{{logo-size|{{{5|{{{id-s|14}}}}}}}}}pt; color:{{{logo-color|{{{id-fc|black}}}}}}; padding:{{{logo-padding|{{{id-p|1px}}}}}}; line-height:{{{logo-line-height|{{{id-lh|1.25em}}}}}}; vertical-align: middle; {{{logo-other-param|{{{id-op|}}}}}}&amp;quot; {{!}} {{{logo|{{{3|{{{id|id}}}}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
| style=&amp;quot;text-align:{{{info-a|left}}}; font-size:{{{info-size|{{{info-s|8}}}}}}pt; padding:{{{info-padding|{{{info-p|4px}}}}}}; height:{{{logo-height|{{{id-h|45}}}}}}px; line-height:{{{info-line-height|{{{info-lh|1.25em}}}}}}; color:{{{info-color|{{{info-fc|black}}}}}}; vertical-align: middle; {{{info-other-param|{{{info-op|}}}}}}&amp;quot; | {{{info|{{{4|{{{info|''info''}}}}}}}}}&lt;br /&gt;
|}{{#if:{{{nocat|}}}||{{#if:{{{usercategory|}}}|{{#switch:{{NAMESPACE}}&lt;br /&gt;
 |User = [[Category:{{{usercategory}}}]]&lt;br /&gt;
 |Template = [[Category:Userboxes{{#translation:}}| ]]&lt;br /&gt;
}}}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Template:Userbox/doc&amp;diff=206</id>
		<title>Template:Userbox/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Template:Userbox/doc&amp;diff=206"/>
		<updated>2023-04-17T05:47:47Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;{{Documentation subpage}} &amp;lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&amp;gt;  This template can be used to quickly create a userbox for display on a user's user page without having to know HTML or Wikitable syntax.  == Usage == &amp;lt;!-- Abstract usage of the template, one variable per row. --&amp;gt; &amp;lt;pre style=&amp;quot;overflow: auto&amp;quot;&amp;gt; {{userbox | bodyclass     = &amp;lt;!--Adds an HTML class attribute to the entire templ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation subpage}}&lt;br /&gt;
&amp;lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template can be used to quickly create a [[w:Wikipedia:Userboxes|userbox]] for display on a user's [[w:Wikipedia:User pages|user page]] without having to know HTML or Wikitable syntax.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;!-- Abstract usage of the template, one variable per row. --&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow: auto&amp;quot;&amp;gt;&lt;br /&gt;
{{userbox&lt;br /&gt;
| bodyclass     = &amp;lt;!--Adds an HTML class attribute to the entire template's HTML table, to allow for styling, emission of microformats, etc.--&amp;gt;&lt;br /&gt;
| border-c      = &amp;lt;!--border color (default=id-c)--&amp;gt;&lt;br /&gt;
| border-s      = &amp;lt;!--border width in pixels (default=1)--&amp;gt;&lt;br /&gt;
| float         = &amp;lt;!--left|right|none (default=left)--&amp;gt;&lt;br /&gt;
| id            = &amp;lt;!--id image and/or text--&amp;gt; non connect&lt;br /&gt;
| id-a          = &amp;lt;!--id horizontal alignment left/center/right/justify (default=center)--&amp;gt;&lt;br /&gt;
| id-c          = &amp;lt;!--id background color (default=#d0d0d0)--&amp;gt;&lt;br /&gt;
| id-fc         = &amp;lt;!--id font color (default=black)--&amp;gt;&lt;br /&gt;
| id-h          = &amp;lt;!--id box height in pixels (default=45)--&amp;gt;&lt;br /&gt;
| id-lh         = &amp;lt;!--id line height (default=1.25em)--&amp;gt;&lt;br /&gt;
| id-op         = &amp;lt;!--id other CSS parameters--&amp;gt;&lt;br /&gt;
| id-p          = &amp;lt;!--id cell padding (default=0 1px 0 0)--&amp;gt;&lt;br /&gt;
| id-s          = &amp;lt;!--id text size in points (default=14)--&amp;gt;&lt;br /&gt;
| id-w          = &amp;lt;!--id box width in pixels (default=45)--&amp;gt;&lt;br /&gt;
| info-class    = &amp;lt;!--Adds an HTML class attribute to the &amp;quot;info&amp;quot; HTML table-row, to allow for styling, emission of microformats, etc.--&amp;gt;&lt;br /&gt;
| info          = &amp;lt;!--info text and/or image--&amp;gt;&lt;br /&gt;
| info-a        = &amp;lt;!--info horizontal alignment left/center/right/justify (default=left)--&amp;gt;&lt;br /&gt;
| info-c        = &amp;lt;!--info background color (default=#e0e0e0)--&amp;gt;&lt;br /&gt;
| info-fc       = &amp;lt;!--info font color (default=black)--&amp;gt;&lt;br /&gt;
| info-lh       = &amp;lt;!--info line height (default=1.25em)--&amp;gt;&lt;br /&gt;
| info-op       = &amp;lt;!--info other CSS parameters--&amp;gt;&lt;br /&gt;
| info-p        = &amp;lt;!--info padding (default=0 4px 0 4px)--&amp;gt;&lt;br /&gt;
| info-s        = &amp;lt;!--info text size in points (default=8)--&amp;gt;&lt;br /&gt;
| nocat         = &amp;lt;!--block page category declarations (default=false)--&amp;gt;&lt;br /&gt;
| usercategory  = &amp;lt;!--user category (optional)--&amp;gt;&lt;br /&gt;
| usercategory2 = &amp;lt;!--user category (optional)--&amp;gt;&lt;br /&gt;
| usercategory3 = &amp;lt;!--user category (optional)--&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* All parameters are optional&lt;br /&gt;
* Images should normally be scaled to x45px or less.&lt;br /&gt;
&amp;lt;!-- explain what this template's parameters do -- if no params, delete the definition --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most HTML-based tables use only a handful of these attributes. The following subset can be used to quickly convert an HTML userbox into the format used here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{userbox&lt;br /&gt;
| border-c      = &lt;br /&gt;
| id            = &lt;br /&gt;
| id-c          = &lt;br /&gt;
| id-fc         = &lt;br /&gt;
| id-s          = &lt;br /&gt;
| info          = &lt;br /&gt;
| info-c        = &lt;br /&gt;
| info-fc       = &lt;br /&gt;
| info-lh       = &lt;br /&gt;
| info-s        = &lt;br /&gt;
| nocat         = {{{nocat|}}}&lt;br /&gt;
| usercategory  = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
{|&lt;br /&gt;
!style=&amp;quot;width: 300px;&amp;quot;| Code&lt;br /&gt;
!Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{userbox}}&amp;lt;/pre&amp;gt; || {{userbox}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{userbox&lt;br /&gt;
| border-c      = #aaffaa&lt;br /&gt;
| border-s      = 2&lt;br /&gt;
| id            = foo&lt;br /&gt;
| id-c          = #ffffee&lt;br /&gt;
| id-s          = 20&lt;br /&gt;
| info          = ''foo bar''&lt;br /&gt;
| info-c        = #ffeeff&lt;br /&gt;
| info-s        = 12&lt;br /&gt;
}}&amp;lt;/pre&amp;gt; || {{userbox|id=foo|id-s=20|id-c=#ffffee|info=''foo bar''|info-c=#ffeeff|info-s=12|border-c=#aaffaa|border-s=2}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;| Below example shows the default appearance of a userbox, which is (much) higher than the 45px. Compare the height of the one below with the above userbox.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{userbox&lt;br /&gt;
| border-c      = #aaffaa&lt;br /&gt;
| border-s      = 2&lt;br /&gt;
| id            = foo logo&lt;br /&gt;
| id-c          = #ffffee&lt;br /&gt;
| info          = ''We are trying to see &lt;br /&gt;
default distance in between text &lt;br /&gt;
lines, see the distance in &lt;br /&gt;
between cell content and its border, &lt;br /&gt;
and also see total height.''&lt;br /&gt;
| info-c        = #ffeeff&lt;br /&gt;
}}&amp;lt;/pre&amp;gt; || {{userbox|id=foo logo|id-c=#ffffee|info=''We are trying to see default distance in between text lines, see the distance in between cell content and its border, and also see total height.''|info-c=#ffeeff|border-c=#aaffaa|border-s=2}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;| Below example shows how we can change that userbox and further specify parameters to bring down the overall height of the userbox to the recommended height of 45px, even with four text lines. Cell padding parameter &amp;quot;''info-p''&amp;quot; can also be set at &amp;quot;''1pt 1pt 1pt 2pt''&amp;quot;, or &amp;quot;''1pt 2pt''&amp;quot; for better appearance, when there are 4 text lines.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{userbox&lt;br /&gt;
| border-c      = #aaffaa&lt;br /&gt;
| border-s      = 1&lt;br /&gt;
| id            = foo logo&lt;br /&gt;
| id-c          = #ffffee&lt;br /&gt;
| id-lh         = 1.1em&lt;br /&gt;
| id-s          = 14&lt;br /&gt;
| info          = ''We have specified values &lt;br /&gt;
to lessen the distance in between &lt;br /&gt;
text lines &amp;amp; padding space in between &lt;br /&gt;
cell content and its border.''&lt;br /&gt;
| info-c        = #ffeeff&lt;br /&gt;
| info-lh       = 1.05em&lt;br /&gt;
| info-p        = 1pt&lt;br /&gt;
| info-s        = 8&lt;br /&gt;
}}&amp;lt;/pre&amp;gt; || {{userbox|id=foo logo|id-s=14|id-lh=1.1em|id-c=#ffffee|info=''We have specified values to lessen the distance in between text lines &amp;amp; padding space in between cell content and its border.''|info-c=#ffeeff|info-s=8|info-p=1pt|info-lh=1.05em|border-c=#aaffaa|border-s=1}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;| Below example is for advanced users, showing how we can specify other [[w:Cascading Style Sheets|CSS]] properties, for example, &amp;quot;''font-family''&amp;quot;, to change the font or &amp;quot;''text-align''&amp;quot; to change the alignment from the default parameters. At below, on the right side are two userboxes: top one is displayed without the &amp;quot;''font-family''&amp;quot; or &amp;quot;''text-align''&amp;quot; parameters; and the bottom userbox is displayed by using the below codes, with the help of the &amp;quot;''info-op''&amp;quot; field. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{userbox&lt;br /&gt;
| border-c      = #afa&lt;br /&gt;
| border-s      = 2&lt;br /&gt;
| id            = foo logo&lt;br /&gt;
| id-c          = #ffe&lt;br /&gt;
| id-lh         = 1.1em&lt;br /&gt;
| id-s          = 14&lt;br /&gt;
| info          = foo bar&lt;br /&gt;
| info-c        = #fef&lt;br /&gt;
| info-op       = font-family:'Courier New'; text-align:center;&lt;br /&gt;
| info-s        = 14&lt;br /&gt;
}}&amp;lt;/pre&amp;gt; || colspan=&amp;quot;2&amp;quot;| {{Userbox|id=foo logo|id-s=14|id-lh=1.1em|id-c=#ffe|info=foo bar|info-c=#fef|info-s=14|border-c=#afa|border-s=2}} &amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;#160;&amp;lt;br /&amp;gt; {{Userbox|id=foo logo|id-s=14|id-lh=1.1em|id-c=#ffe|info=foo bar|info-c=#fef|info-s=14|info-op=font-family:'Courier New'; text-align:center;|border-c=#afa|border-s=2}}&lt;br /&gt;
|}&amp;lt;!-- customize if needed to illustrate parameter use --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Microformats==&lt;br /&gt;
;bodyclass : This parameter is inserted into the &amp;quot;class&amp;quot; attribute for the userbox as a whole.&lt;br /&gt;
;info-class : This parameter is inserted into the &amp;quot;class&amp;quot; attribute for the info component.&lt;br /&gt;
&lt;br /&gt;
This template supports the addition of [[w:Microformat|microformat]] information. This is done by adding &amp;quot;class&amp;quot; attributes to various data cells, indicating what kind of information is contained within. To flag a userbox as containing [[w:hCard|hCard]] information about a person, for example, add the following parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
| bodyclass     = vcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''or''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
| info-class    = vcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''then'' (for example):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
| title         = …the books of &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;[[Iain Banks]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
...and so forth.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;!-- ADD CATEGORIES BELOW THIS LINE --&amp;gt;&lt;br /&gt;
[[Category:Userboxes| ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ADD INTERWIKIS BELOW THIS LINE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=205</id>
		<title>MediaWiki:Darkvector.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=MediaWiki:Darkvector.css&amp;diff=205"/>
		<updated>2023-04-17T05:42:44Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;/* CSS placed here will affect users of the DarkVector skin */  input, textarea, table.mw_metadata td, table.mw_metadata th, table.wikitable, table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;th, table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;td, pre { 	background-color: #2b2b2b; }  /*! pastels on dark syntax highlighting */ .mw-highlight, .mw-highlight pre, .mw-highlight table { background: #2B2B2B ; } .mw-highlight .hll { background: #ffffcc ; } .mw-highlight  { background: #2B2B2B ; color: #E6E1DC ; } .mw-highlight .c { c...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will affect users of the DarkVector skin */&lt;br /&gt;
&lt;br /&gt;
input,&lt;br /&gt;
textarea,&lt;br /&gt;
table.mw_metadata td,&lt;br /&gt;
table.mw_metadata th,&lt;br /&gt;
table.wikitable,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;th,&lt;br /&gt;
table.wikitable&amp;gt;*&amp;gt;tr&amp;gt;td,&lt;br /&gt;
pre {&lt;br /&gt;
	background-color: #2b2b2b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*! pastels on dark syntax highlighting */&lt;br /&gt;
.mw-highlight, .mw-highlight pre, .mw-highlight table { background: #2B2B2B ; }&lt;br /&gt;
.mw-highlight .hll { background: #ffffcc ; }&lt;br /&gt;
.mw-highlight  { background: #2B2B2B ; color: #E6E1DC ; }&lt;br /&gt;
.mw-highlight .c { color: #555555 ; } /* Comment */&lt;br /&gt;
.mw-highlight .err { color: #E6E1DC ; } /* Error */&lt;br /&gt;
.mw-highlight .g { color: #E6E1DC ; } /* Generic */&lt;br /&gt;
.mw-highlight .k { color: #4D74D0 ; } /* Keyword */&lt;br /&gt;
.mw-highlight .l { color: #E6E1DC ; } /* Literal */&lt;br /&gt;
.mw-highlight .n, .mw-highlight .h { color: #E6E1DC ; } /* Name */&lt;br /&gt;
.mw-highlight .o { color: #E6E1DC ; } /* Operator */&lt;br /&gt;
.mw-highlight .x { color: #E6E1DC ; } /* Other */&lt;br /&gt;
.mw-highlight .p { color: #E6E1DC ; } /* Punctuation */&lt;br /&gt;
.mw-highlight .cm { color: #555555 ; } /* Comment.Multiline */&lt;br /&gt;
.mw-highlight .cp { color: #E6E1DC ; } /* Comment.Preproc */&lt;br /&gt;
.mw-highlight .c1 { color: #555555 ; } /* Comment.Single */&lt;br /&gt;
.mw-highlight .cs { color: #555555 ; } /* Comment.Special */&lt;br /&gt;
.mw-highlight .gd { color: #E6E1DC ; background: #660000 ; } /* Generic.Deleted */&lt;br /&gt;
.mw-highlight .ge { color: #E6E1DC ; } /* Generic.Emph */&lt;br /&gt;
.mw-highlight .gr { color: #FFC66D ; background: #990000 ; } /* Generic.Error */&lt;br /&gt;
.mw-highlight .gh { color: #FFFFFF ; } /* Generic.Heading */&lt;br /&gt;
.mw-highlight .gi { color: #E6E1DC ; background: #519F50 ; } /* Generic.Inserted */&lt;br /&gt;
.mw-highlight .go { color: #E6E1DC ; } /* Generic.Output */&lt;br /&gt;
.mw-highlight .gp { color: #E6E1DC ; } /* Generic.Prompt */&lt;br /&gt;
.mw-highlight .gs { color: #E6E1DC ; } /* Generic.Strong */&lt;br /&gt;
.mw-highlight .gu { color: #FFFFFF ; } /* Generic.Subheading */&lt;br /&gt;
.mw-highlight .gt { color: #E6E1DC ; } /* Generic.Traceback */&lt;br /&gt;
.mw-highlight .kc { color: #4D74D0 ; } /* Keyword.Constant */&lt;br /&gt;
.mw-highlight .kd { color: #4D74D0 ; } /* Keyword.Declaration */&lt;br /&gt;
.mw-highlight .kn { color: #4D74D0 ; } /* Keyword.Namespace */&lt;br /&gt;
.mw-highlight .kp { color: #4D74D0 ; } /* Keyword.Pseudo */&lt;br /&gt;
.mw-highlight .kr { color: #4D74D0 ; } /* Keyword.Reserved */&lt;br /&gt;
.mw-highlight .kt { color: #C1C144 ; } /* Keyword.Type */&lt;br /&gt;
.mw-highlight .ld { color: #E6E1DC ; } /* Literal.Date */&lt;br /&gt;
.mw-highlight .m { color: #A5C261 ; } /* Literal.Number */&lt;br /&gt;
.mw-highlight .s { color: #AD9361 ; } /* Literal.String */&lt;br /&gt;
.mw-highlight .na { color: #6782D3 ; } /* Name.Attribute */&lt;br /&gt;
.mw-highlight .nb { color: #E6E1DC ; } /* Name.Builtin */&lt;br /&gt;
.mw-highlight .nc { color: #E6E1DC ; } /* Name.Class */&lt;br /&gt;
.mw-highlight .no { color: #A1A1FF ; } /* Name.Constant */&lt;br /&gt;
.mw-highlight .nd { color: #E6E1DC ; } /* Name.Decorator */&lt;br /&gt;
.mw-highlight .ni { color: #47B8D6 ; } /* Name.Entity */&lt;br /&gt;
.mw-highlight .ne { color: #E6E1DC ; } /* Name.Exception */&lt;br /&gt;
.mw-highlight .nf { color: #6782D3 ; } /* Name.Function */&lt;br /&gt;
.mw-highlight .nl { color: #E6E1DC ; } /* Name.Label */&lt;br /&gt;
.mw-highlight .nn { color: #E6E1DC ; } /* Name.Namespace */&lt;br /&gt;
.mw-highlight .nx { color: #E6E1DC ; } /* Name.Other */&lt;br /&gt;
.mw-highlight .py { color: #E6E1DC ; } /* Name.Property */&lt;br /&gt;
.mw-highlight .nt { color: #4D74D0 ; } /* Name.Tag */&lt;br /&gt;
.mw-highlight .nv { color: #C1C144 ; } /* Name.Variable */&lt;br /&gt;
.mw-highlight .ow { color: #E6E1DC ; } /* Operator.Word */&lt;br /&gt;
.mw-highlight .w { color: #E6E1DC ; } /* Text.Whitespace */&lt;br /&gt;
.mw-highlight .mf { color: #A5C261 ; } /* Literal.Number.Float */&lt;br /&gt;
.mw-highlight .mh { color: #A5C261 ; } /* Literal.Number.Hex */&lt;br /&gt;
.mw-highlight .mi { color: #A5C261 ; } /* Literal.Number.Integer */&lt;br /&gt;
.mw-highlight .mo { color: #A5C261 ; } /* Literal.Number.Oct */&lt;br /&gt;
.mw-highlight .sb { color: #AD9361 ; } /* Literal.String.Backtick */&lt;br /&gt;
.mw-highlight .sc { color: #AD9361 ; } /* Literal.String.Char */&lt;br /&gt;
.mw-highlight .sd { color: #AD9361 ; } /* Literal.String.Doc */&lt;br /&gt;
.mw-highlight .s2 { color: #AD9361 ; } /* Literal.String.Double */&lt;br /&gt;
.mw-highlight .se { color: #AD9361 ; } /* Literal.String.Escape */&lt;br /&gt;
.mw-highlight .sh { color: #AD9361 ; } /* Literal.String.Heredoc */&lt;br /&gt;
.mw-highlight .si { color: #AD9361 ; } /* Literal.String.Interpol */&lt;br /&gt;
.mw-highlight .sx { color: #AD9361 ; } /* Literal.String.Other */&lt;br /&gt;
.mw-highlight .sr { color: #AD9361 ; } /* Literal.String.Regex */&lt;br /&gt;
.mw-highlight .s1 { color: #AD9361 ; } /* Literal.String.Single */&lt;br /&gt;
.mw-highlight .ss { color: #AD9361 ; } /* Literal.String.Symbol */&lt;br /&gt;
.mw-highlight .bp { color: #E6E1DC ; } /* Name.Builtin.Pseudo */&lt;br /&gt;
.mw-highlight .vc { color: #C1C144 ; } /* Name.Variable.Class */&lt;br /&gt;
.mw-highlight .vg { color: #C1C144 ; } /* Name.Variable.Global */&lt;br /&gt;
.mw-highlight .vi { color: #C1C144 ; } /* Name.Variable.Instance */&lt;br /&gt;
.mw-highlight .il { color: #A5C261 ; } /* Literal.Number.Integer.Long */&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Make_Anything_Into_an_App_on_macOS&amp;diff=204</id>
		<title>Make Anything Into an App on macOS</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Make_Anything_Into_an_App_on_macOS&amp;diff=204"/>
		<updated>2023-04-17T05:10:08Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;If you've used macOS/MacOSX and never poked around the structure of an App, I have some mind-blowing information for you: it's just a folder. A folder with more folders, in fact!  == How macOS Apps Work ==  The basic structure of a macOS app is a-like so:  &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt; - MyCool.app/   + Contents/     + Info.plist     + MacOS/       + CoolApp     + Resources/       + AppIcon.icns       + SomeOtherJunk.txt  &amp;lt;/syntaxhighlight&amp;gt;  This isn't just specific to a...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you've used macOS/MacOSX and never poked around the structure of an App, I have some mind-blowing information for you: it's just a folder. A folder with more folders, in fact!&lt;br /&gt;
&lt;br /&gt;
== How macOS Apps Work ==&lt;br /&gt;
&lt;br /&gt;
The basic structure of a macOS app is a-like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
- MyCool.app/&lt;br /&gt;
  + Contents/&lt;br /&gt;
    + Info.plist&lt;br /&gt;
    + MacOS/&lt;br /&gt;
      + CoolApp&lt;br /&gt;
    + Resources/&lt;br /&gt;
      + AppIcon.icns&lt;br /&gt;
      + SomeOtherJunk.txt &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This isn't just specific to applications! Kernel extensions, some plugins, and frameworks also follow this &amp;quot;actually a directory&amp;quot; format. These are called Bundles.&amp;lt;ref&amp;gt;[https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFBundles/AboutBundles/AboutBundles.html ''About Bundles''], from the Bundle Programming Guide by Apple.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components of an App Bundle ==&lt;br /&gt;
&lt;br /&gt;
=== Info.plist ===&lt;br /&gt;
&lt;br /&gt;
The core component to a bundle is its &amp;lt;code&amp;gt;Info.plist&amp;lt;/code&amp;gt;. All usable keys are provided in Apple Developer docs&amp;lt;ref&amp;gt;[https://developer.apple.com/documentation/bundleresources/information_property_list/bundle_configuration ''Bundle configuration''], from Apple Developer Documentation.&amp;lt;/ref&amp;gt;, but these should get you started:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;xyz.datagirl.cool-app&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;!-- arbitrary, set by Xcode. prolly don't change it --&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;CFBundleInfoDictionaryVersion&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;6.0&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
         This can only be up to 15 characters! Use CFBundleDisplayName if you&lt;br /&gt;
         need a longer version for Siri and the sort.&lt;br /&gt;
      --&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;CFBundleName&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;CoolApp&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;CFBundleVersion&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;1.0.69&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;!-- relative to Resources/ --&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;CFBundleIconFile&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;AppIcon.icns&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;CFBundleIconName&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;AppIcon&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;!-- relative to MacOS/. technically should be the same as your .app name --&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;CFBundleExecutable&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;CoolApp&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;!-- APPL = we're an App --&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;CFBundlePackageType&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;APPL&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Do we support Retina? (idk if this matters for our purposes) --&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;NSHighResolutionCapable&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;true/&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== The program itself ===&lt;br /&gt;
&lt;br /&gt;
Make a program named the same as what you set &amp;lt;code&amp;gt;CFBundleExecutable&amp;lt;/code&amp;gt; to in your Info.plist. This can be a macOS binary, or interpreted code, such as a shell script. You'll need to make sure it's executable, of course. Save it to the &amp;lt;code&amp;gt;Contents/MacOS&amp;lt;/code&amp;gt; directory in your app.&lt;br /&gt;
&lt;br /&gt;
=== App Icon ===&lt;br /&gt;
&lt;br /&gt;
Generating an ICNS file is an exercise left to the reader.&amp;lt;ref&amp;gt;But [https://gist.github.com/jamieweavis/b4c394607641e1280d447deed5fc85fc this gist] worked well for me.&amp;lt;/ref&amp;gt; Once you have it, save it with the same name you set as &amp;lt;code&amp;gt;CFBundleIconFile&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;Contents/Resources&amp;lt;/code&amp;gt; directory in your app.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=SMF_on_illumos&amp;diff=203</id>
		<title>SMF on illumos</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=SMF_on_illumos&amp;diff=203"/>
		<updated>2023-02-19T23:22:10Z</updated>

		<summary type="html">&lt;p&gt;Flurry: mention how you import this&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maybe I just suck at finding docs, but SMF feels like a bit of a mess. It seems like Solaris users get [https://docs.oracle.com/cd/E36784_01/html/E36871/svcbundle-1m.html#REFMAN1Msvcbundle-1m some nice tools] for creating manifests, but I'm guessing that's post-illumos fork. Refer to [https://www.oracle.com/technetwork/server-storage/solaris10/solaris-smf-manifest-wp-167902.pdf this PDF] for more in-depth info.&lt;br /&gt;
&lt;br /&gt;
This assumes you're using [https://illumos.org/man/8/svc.startd svc.startd(8)] as your &amp;quot;restarter&amp;quot;, which mainly affects the &amp;lt;code&amp;gt;exec_method&amp;lt;/code&amp;gt; elements (AIUI). If you (like me) don't know what that means, this is likely the case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE service_bundle SYSTEM &amp;quot;/usr/share/lib/xml/dtd/service_bundle.dtd.1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- name seems to be arbitrary. best to set it to the service name --&amp;gt;&lt;br /&gt;
&amp;lt;service_bundle type=&amp;quot;manifest&amp;quot; name=&amp;quot;service_name&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!--&lt;br /&gt;
    name is how you'll refer to the service in svcs/svcadm. I typically&lt;br /&gt;
    use &amp;quot;application/&amp;lt;service_name&amp;gt;&amp;quot;, no idea if that's idiomatic or not.&lt;br /&gt;
&lt;br /&gt;
    version must be an integer.&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;scarlet/my_service&amp;quot; type=&amp;quot;service&amp;quot; version=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- this sample service should only ever have one instance --&amp;gt;&lt;br /&gt;
    &amp;lt;single_instance /&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      if you want multiple instances, don't use that tag. instead, use:&lt;br /&gt;
      &amp;lt;create_default_instance enabled=&amp;quot;(true|false)&amp;quot; /&amp;gt;&lt;br /&gt;
      depending on whether you want application/my_service:default to exist.&lt;br /&gt;
      --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      say this service relies on networking and fs to function. if the&lt;br /&gt;
      relevant SMF services get refreshed (reconfigured) or restarted,&lt;br /&gt;
      we need to restart too. so we'll use restart_on='refresh' ('restart' is&lt;br /&gt;
      implied) and since we need all the services, grouping='require_all'.&lt;br /&gt;
      --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- TODO: the DTD seems to imply multiple service_fmri tags work, but&lt;br /&gt;
         nobody seems to do this. is this ok? works fine for me so far --&amp;gt;&lt;br /&gt;
    &amp;lt;dependency name=&amp;quot;net_fs&amp;quot; grouping=&amp;quot;require_all&amp;quot; restart_on=&amp;quot;refresh&amp;quot; type=&amp;quot;service&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;service_fmri value=&amp;quot;svc:/milestone/network:default&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;service_fmri value=&amp;quot;svc:/system/filesystem/local&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/dependency&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- You can also depend on stuff like files existing! --&amp;gt;&lt;br /&gt;
    &amp;lt;dependency name=&amp;quot;config_file&amp;quot; grouping=&amp;quot;require_all&amp;quot; restart_on=&amp;quot;refresh&amp;quot; type=&amp;quot;path&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;service_fmri value=&amp;quot;file://localhost/etc/serviced.conf&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/dependency&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- name should be 'start', 'refresh' (reconfigure), or 'stop'. --&amp;gt;&lt;br /&gt;
    &amp;lt;exec_method type=&amp;quot;method&amp;quot;&lt;br /&gt;
        name=&amp;quot;start&amp;quot;&lt;br /&gt;
        exec=&amp;quot;/opt/local/bin/serviced --with-args &amp;quot;stuff&amp;quot;&amp;quot;&lt;br /&gt;
        timeout_seconds=&amp;quot;60&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;method_context&amp;gt;&lt;br /&gt;
        &amp;lt;!-- you can add other groups with supp_groups (comma/space delim) --&amp;gt;&lt;br /&gt;
        &amp;lt;method_credential user='svcuser' group='svcgrp' /&amp;gt;&lt;br /&gt;
        &amp;lt;method_environment&amp;gt;&lt;br /&gt;
          &amp;lt;envvar name=&amp;quot;HOME&amp;quot; value=&amp;quot;/var/lib/service&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/method_environment&amp;gt;&lt;br /&gt;
      &amp;lt;/method_context&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!--&lt;br /&gt;
        not sure where it's documented, but ':kill' works to just kill&lt;br /&gt;
        the service PID.&lt;br /&gt;
        --&amp;gt;&lt;br /&gt;
      &amp;lt;exec_method type=&amp;quot;method&amp;quot;&lt;br /&gt;
          name=&amp;quot;stop&amp;quot;&lt;br /&gt;
          exec=&amp;quot;:kill&amp;quot;&lt;br /&gt;
          timeout_methods=&amp;quot;60&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- svc.startd specific options --&amp;gt;&lt;br /&gt;
      &amp;lt;property_group name=&amp;quot;startd&amp;quot; type=&amp;quot;framework&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &lt;br /&gt;
          startd durations:&lt;br /&gt;
          - 'child': long-running foreground process&lt;br /&gt;
          - 'contract': &amp;quot;daemonizing&amp;quot; process (uses fork)&lt;br /&gt;
          - 'transient': similar to systemd's 'oneshot'&lt;br /&gt;
          --&amp;gt;&lt;br /&gt;
        &amp;lt;propval name=&amp;quot;duration&amp;quot; type=&amp;quot;astring&amp;quot; value=&amp;quot;child&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;!-- don't restart on some errors --&amp;gt;&lt;br /&gt;
        &amp;lt;propval name=&amp;quot;ignore_error&amp;quot; type=&amp;quot;astring&amp;quot; value=&amp;quot;core,signal&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &lt;br /&gt;
          if you need a separate session for the service:&lt;br /&gt;
            &amp;lt;propval name=&amp;quot;need_session&amp;quot; type=&amp;quot;boolean&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
          &lt;br /&gt;
          there's also utmpx_prefix, but unless your service is *very*&lt;br /&gt;
          unix-y, you probably don't need this.&lt;br /&gt;
          --&amp;gt;&lt;br /&gt;
      &amp;lt;/property_group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;template&amp;gt;&lt;br /&gt;
        &amp;lt;!-- locale-specific names for your service --&amp;gt;&lt;br /&gt;
        &amp;lt;common_name&amp;gt;&lt;br /&gt;
          &amp;lt;loctext xml:lang=&amp;quot;C&amp;quot;&amp;gt;Sample Service Daemon&amp;lt;/loctext&amp;gt;&lt;br /&gt;
        &amp;lt;/common_name&amp;gt;&lt;br /&gt;
        &amp;lt;!-- optional: link some docs --&amp;gt;&lt;br /&gt;
        &amp;lt;documentation&amp;gt;&lt;br /&gt;
          &amp;lt;manpage title=&amp;quot;serviced&amp;quot; section=&amp;quot;8&amp;quot; manpath=&amp;quot;/opt/local/share/man&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;doc_link name=&amp;quot;docs-home&amp;quot; uri=&amp;quot;https://example.com/docs/&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/documentation&amp;gt;&lt;br /&gt;
      &amp;lt;/template&amp;gt;&lt;br /&gt;
  &amp;lt;/service&amp;gt;&lt;br /&gt;
&amp;lt;/service_bundle&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Okay, but how do I use this? ==&lt;br /&gt;
&lt;br /&gt;
That's the easy part! As root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# svccfg import your-manifest.xml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can now use it like every other service on your system. Use &amp;lt;code&amp;gt;svcs my_service&amp;lt;/code&amp;gt; to see its status, &amp;lt;code&amp;gt;svcadm (enable|disable|refresh|restart) my_service&amp;lt;/code&amp;gt; to do all of those relevant things, etc etc.&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=SMF_on_illumos&amp;diff=202</id>
		<title>SMF on illumos</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=SMF_on_illumos&amp;diff=202"/>
		<updated>2023-02-19T23:07:58Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;Maybe I just suck at finding docs, but SMF feels like a bit of a mess. It seems like Solaris users get [https://docs.oracle.com/cd/E36784_01/html/E36871/svcbundle-1m.html#REFMAN1Msvcbundle-1m some nice tools] for creating manifests, but I'm guessing that's post-illumos fork. Refer to [https://www.oracle.com/technetwork/server-storage/solaris10/solaris-smf-manifest-wp-167902.pdf this PDF] for more in-depth info.  This assumes you're using [https://illumos.org/man/8/svc.st...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maybe I just suck at finding docs, but SMF feels like a bit of a mess. It seems like Solaris users get [https://docs.oracle.com/cd/E36784_01/html/E36871/svcbundle-1m.html#REFMAN1Msvcbundle-1m some nice tools] for creating manifests, but I'm guessing that's post-illumos fork. Refer to [https://www.oracle.com/technetwork/server-storage/solaris10/solaris-smf-manifest-wp-167902.pdf this PDF] for more in-depth info.&lt;br /&gt;
&lt;br /&gt;
This assumes you're using [https://illumos.org/man/8/svc.startd svc.startd(8)] as your &amp;quot;restarter&amp;quot;, which mainly affects the &amp;lt;code&amp;gt;exec_method&amp;lt;/code&amp;gt; elements (AIUI). If you (like me) don't know what that means, this is likely the case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE service_bundle SYSTEM &amp;quot;/usr/share/lib/xml/dtd/service_bundle.dtd.1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- name seems to be arbitrary. best to set it to the service name --&amp;gt;&lt;br /&gt;
&amp;lt;service_bundle type=&amp;quot;manifest&amp;quot; name=&amp;quot;service_name&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!--&lt;br /&gt;
    name is how you'll refer to the service in svcs/svcadm. I typically&lt;br /&gt;
    use &amp;quot;application/&amp;lt;service_name&amp;gt;&amp;quot;, no idea if that's idiomatic or not.&lt;br /&gt;
&lt;br /&gt;
    version must be an integer.&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;scarlet/my_service&amp;quot; type=&amp;quot;service&amp;quot; version=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- this sample service should only ever have one instance --&amp;gt;&lt;br /&gt;
    &amp;lt;single_instance /&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      if you want multiple instances, don't use that tag. instead, use:&lt;br /&gt;
      &amp;lt;create_default_instance enabled=&amp;quot;(true|false)&amp;quot; /&amp;gt;&lt;br /&gt;
      depending on whether you want application/my_service:default to exist.&lt;br /&gt;
      --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      say this service relies on networking and fs to function. if the&lt;br /&gt;
      relevant SMF services get refreshed (reconfigured) or restarted,&lt;br /&gt;
      we need to restart too. so we'll use restart_on='refresh' ('restart' is&lt;br /&gt;
      implied) and since we need all the services, grouping='require_all'.&lt;br /&gt;
      --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- TODO: the DTD seems to imply multiple service_fmri tags work, but&lt;br /&gt;
         nobody seems to do this. is this ok? works fine for me so far --&amp;gt;&lt;br /&gt;
    &amp;lt;dependency name=&amp;quot;net_fs&amp;quot; grouping=&amp;quot;require_all&amp;quot; restart_on=&amp;quot;refresh&amp;quot; type=&amp;quot;service&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;service_fmri value=&amp;quot;svc:/milestone/network:default&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;service_fmri value=&amp;quot;svc:/system/filesystem/local&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/dependency&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- You can also depend on stuff like files existing! --&amp;gt;&lt;br /&gt;
    &amp;lt;dependency name=&amp;quot;config_file&amp;quot; grouping=&amp;quot;require_all&amp;quot; restart_on=&amp;quot;refresh&amp;quot; type=&amp;quot;path&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;service_fmri value=&amp;quot;file://localhost/etc/serviced.conf&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/dependency&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- name should be 'start', 'refresh' (reconfigure), or 'stop'. --&amp;gt;&lt;br /&gt;
    &amp;lt;exec_method type=&amp;quot;method&amp;quot;&lt;br /&gt;
        name=&amp;quot;start&amp;quot;&lt;br /&gt;
        exec=&amp;quot;/opt/local/bin/serviced --with-args &amp;quot;stuff&amp;quot;&amp;quot;&lt;br /&gt;
        timeout_seconds=&amp;quot;60&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;method_context&amp;gt;&lt;br /&gt;
        &amp;lt;!-- you can add other groups with supp_groups (comma/space delim) --&amp;gt;&lt;br /&gt;
        &amp;lt;method_credential user='svcuser' group='svcgrp' /&amp;gt;&lt;br /&gt;
        &amp;lt;method_environment&amp;gt;&lt;br /&gt;
          &amp;lt;envvar name=&amp;quot;HOME&amp;quot; value=&amp;quot;/var/lib/service&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/method_environment&amp;gt;&lt;br /&gt;
      &amp;lt;/method_context&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!--&lt;br /&gt;
        not sure where it's documented, but ':kill' works to just kill&lt;br /&gt;
        the service PID.&lt;br /&gt;
        --&amp;gt;&lt;br /&gt;
      &amp;lt;exec_method type=&amp;quot;method&amp;quot;&lt;br /&gt;
          name=&amp;quot;stop&amp;quot;&lt;br /&gt;
          exec=&amp;quot;:kill&amp;quot;&lt;br /&gt;
          timeout_methods=&amp;quot;60&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- svc.startd specific options --&amp;gt;&lt;br /&gt;
      &amp;lt;property_group name=&amp;quot;startd&amp;quot; type=&amp;quot;framework&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &lt;br /&gt;
          startd durations:&lt;br /&gt;
          - 'child': long-running foreground process&lt;br /&gt;
          - 'contract': &amp;quot;daemonizing&amp;quot; process (uses fork)&lt;br /&gt;
          - 'transient': similar to systemd's 'oneshot'&lt;br /&gt;
          --&amp;gt;&lt;br /&gt;
        &amp;lt;propval name=&amp;quot;duration&amp;quot; type=&amp;quot;astring&amp;quot; value=&amp;quot;child&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;!-- don't restart on some errors --&amp;gt;&lt;br /&gt;
        &amp;lt;propval name=&amp;quot;ignore_error&amp;quot; type=&amp;quot;astring&amp;quot; value=&amp;quot;core,signal&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &lt;br /&gt;
          if you need a separate session for the service:&lt;br /&gt;
            &amp;lt;propval name=&amp;quot;need_session&amp;quot; type=&amp;quot;boolean&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
          &lt;br /&gt;
          there's also utmpx_prefix, but unless your service is *very*&lt;br /&gt;
          unix-y, you probably don't need this.&lt;br /&gt;
          --&amp;gt;&lt;br /&gt;
      &amp;lt;/property_group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;template&amp;gt;&lt;br /&gt;
        &amp;lt;!-- locale-specific names for your service --&amp;gt;&lt;br /&gt;
        &amp;lt;common_name&amp;gt;&lt;br /&gt;
          &amp;lt;loctext xml:lang=&amp;quot;C&amp;quot;&amp;gt;Sample Service Daemon&amp;lt;/loctext&amp;gt;&lt;br /&gt;
        &amp;lt;/common_name&amp;gt;&lt;br /&gt;
        &amp;lt;!-- optional: link some docs --&amp;gt;&lt;br /&gt;
        &amp;lt;documentation&amp;gt;&lt;br /&gt;
          &amp;lt;manpage title=&amp;quot;serviced&amp;quot; section=&amp;quot;8&amp;quot; manpath=&amp;quot;/opt/local/share/man&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;doc_link name=&amp;quot;docs-home&amp;quot; uri=&amp;quot;https://example.com/docs/&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/documentation&amp;gt;&lt;br /&gt;
      &amp;lt;/template&amp;gt;&lt;br /&gt;
  &amp;lt;/service&amp;gt;&lt;br /&gt;
&amp;lt;/service_bundle&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Category:Pages_with_syntax_highlighting_errors&amp;diff=201</id>
		<title>Category:Pages with syntax highlighting errors</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Category:Pages_with_syntax_highlighting_errors&amp;diff=201"/>
		<updated>2023-01-31T18:01:59Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;lol skill issue, use a real language like clisp nerd&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;lol skill issue, use a real language like clisp nerd&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Linux_on_a_NanoPi&amp;diff=200</id>
		<title>Linux on a NanoPi</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Linux_on_a_NanoPi&amp;diff=200"/>
		<updated>2023-01-31T17:55:53Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WIP|&lt;br /&gt;
* Assembling the full image}}&lt;br /&gt;
[[File:Linux on a NanoPi.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
The [https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R5S NanoPi R5S] and [https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R5C NanoPi R5C] don't yet have mainline Linux or U-Boot support, but that doesn't mean we can't finagle a custom distro anyway, right?&lt;br /&gt;
&lt;br /&gt;
Most of the build steps on the official wiki pages assume you're comfortable using the repo utility and their shell scripts. Unlike those, this article assumes the user wants to suffer for little gain.&lt;br /&gt;
&lt;br /&gt;
== Pre-Requisites ==&lt;br /&gt;
&lt;br /&gt;
You'll need to install the GCC toolchain for aarch64-linux-gnu along with the usual build tools. For Debianish systems:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo apt install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu build-essential&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling U-Boot ==&lt;br /&gt;
&lt;br /&gt;
I cheated a bit here, opting to use the provided &amp;lt;code&amp;gt;make.sh&amp;lt;/code&amp;gt; script since it depends on multiple random binaries anyway. Assuming you have a directory set aside for this build process:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone -b nanopi5 https://github.com/friendlyarm/rkbin.git&lt;br /&gt;
$ git clone -b nanopi5-v2017.09 https://github.com/friendlyarm/uboot-rockchip.git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From here, the build process for uboot is straightforward. Note that &amp;lt;code&amp;gt;make.sh&amp;lt;/code&amp;gt; uses the result of &amp;lt;code&amp;gt;nproc&amp;lt;/code&amp;gt; to determine how many make jobs to run, so all of your cores will be at full throttle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$ cd uboot-rockchip&lt;br /&gt;
$ ./make.sh nanopi5&lt;br /&gt;
$ ./make.sh --idblock --spl    # Argument order is important here!&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Along with a bunch of other files, you should now have &amp;lt;code&amp;gt;idblock.bin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;uboot.bin&amp;lt;/code&amp;gt; in your current directory.&lt;br /&gt;
&lt;br /&gt;
== Compiling the kernel ==&lt;br /&gt;
&lt;br /&gt;
As with U-Boot, grab the BSP kernel sources:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone -b nanopi5-v5.10.y_opt https://github.com/friendlyarm/kernel-rockchip.git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rest is a standard cross-compilation of Linux, so I won't delve into the details. The commands I used are below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$ export ARCH=arm64&lt;br /&gt;
$ export CROSS_COMPILE=aarch64-linux-gnu-&lt;br /&gt;
$ make nanopi5_linux_defconfig&lt;br /&gt;
$ make -j9&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We'll get to installing once we have Debian installed on our image.&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Category:WIPs&amp;diff=199</id>
		<title>Category:WIPs</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Category:WIPs&amp;diff=199"/>
		<updated>2023-01-31T17:54:23Z</updated>

		<summary type="html">&lt;p&gt;Flurry: Created page with &amp;quot;This category contains all the pages I haven't gotten around to finishing. Enjoy your stay at the Museum of Oops I Got Distracted.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category contains all the pages I haven't gotten around to finishing. Enjoy your stay at the Museum of Oops I Got Distracted.&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Linux_on_a_NanoPi&amp;diff=198</id>
		<title>Linux on a NanoPi</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Linux_on_a_NanoPi&amp;diff=198"/>
		<updated>2023-01-31T17:52:54Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WIP|&lt;br /&gt;
* Assembling the full image}}&lt;br /&gt;
[[File:Linux on a NanoPi.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
The [https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R5S NanoPi R5S] and [https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R5C NanoPi R5C] don't yet have mainline Linux or U-Boot support, but that doesn't mean we can't finagle a custom distro anyway, right?&lt;br /&gt;
&lt;br /&gt;
Most of the build steps on the official wiki pages assume you're comfortable using the repo utility and their shell scripts. Unlike those, this article assumes the user wants to suffer for little gain.&lt;br /&gt;
&lt;br /&gt;
== Pre-Requisites ==&lt;br /&gt;
&lt;br /&gt;
You'll need to install the GCC toolchain for aarch64-linux-gnu along with the usual build tools. For Debianish systems:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo apt install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu build-essential&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling U-Boot ==&lt;br /&gt;
&lt;br /&gt;
I cheated a bit here, opting to use the provided &amp;lt;code&amp;gt;make.sh&amp;lt;/code&amp;gt; script since it depends on multiple random binaries anyway. Assuming you have a directory set aside for this build process:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone -b nanopi5 https://github.com/friendlyarm/rkbin.git&lt;br /&gt;
$ git clone -b nanopi5-v2017.09 https://github.com/friendlyarm/uboot-rockchip.git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From here, the build process for uboot is straightforward. Note that &amp;lt;code&amp;gt;make.sh&amp;lt;/code&amp;gt; uses the result of &amp;lt;code&amp;gt;nproc&amp;lt;/code&amp;gt; to determine how many make jobs to run, so all of your cores will be at full throttle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$ cd uboot-rockchip&lt;br /&gt;
$ ./make.sh nanopi5&lt;br /&gt;
$ ./make.sh --idblock --spl    # Argument order is important here!&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Along with a bunch of other files, you should now have &amp;lt;code&amp;gt;idblock.bin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;uboot.bin&amp;lt;/code&amp;gt; in your current directory.&lt;br /&gt;
&lt;br /&gt;
== Compiling the kernel ==&lt;br /&gt;
&lt;br /&gt;
You'll need to install the As with U-Boot, grab the BSP kernel sources:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone -b nanopi5-v5.10.y_opt https://github.com/friendlyarm/kernel-rockchip.git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rest is a standard cross-compilation of Linux, so I won't delve into the details. The commands I used are below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
$ export ARCH=arm64&lt;br /&gt;
$ export CROSS_COMPILE=aarch64-linux-gnu-&lt;br /&gt;
$ make nanopi5_linux_defconfig&lt;br /&gt;
$ make -j9&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We'll get to installing once we have Debian installed on our image.&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
	<entry>
		<id>https://wiki.datagirl.xyz/w/index.php?title=Linux_on_a_NanoPi&amp;diff=197</id>
		<title>Linux on a NanoPi</title>
		<link rel="alternate" type="text/html" href="https://wiki.datagirl.xyz/w/index.php?title=Linux_on_a_NanoPi&amp;diff=197"/>
		<updated>2023-01-31T17:51:50Z</updated>

		<summary type="html">&lt;p&gt;Flurry: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WIP|&lt;br /&gt;
* Assembling the full image}}&lt;br /&gt;
[[File:Linux on a NanoPi.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
The [https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R5S NanoPi R5S] and [https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R5C NanoPi R5C] don't yet have mainline Linux or U-Boot support, but that doesn't mean we can't finagle a custom distro anyway, right?&lt;br /&gt;
&lt;br /&gt;
Most of the build steps on the official wiki pages assume you're comfortable using the repo utility and their shell scripts. Unlike those, this article assumes the user wants to suffer for little gain.&lt;br /&gt;
&lt;br /&gt;
== Pre-Requisites ==&lt;br /&gt;
&lt;br /&gt;
You'll need to install the GCC toolchain for aarch64-linux-gnu along with the usual build tools. For Debianish systems:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ sudo apt install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu build-essential&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling U-Boot ==&lt;br /&gt;
&lt;br /&gt;
I cheated a bit here, opting to use the provided &amp;lt;code&amp;gt;make.sh&amp;lt;/code&amp;gt; script since it depends on multiple random binaries anyway. Assuming you have a directory set aside for this build process:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ git clone -b nanopi5 https://github.com/friendlyarm/rkbin.git&lt;br /&gt;
$ git clone -b nanopi5-v2017.09 https://github.com/friendlyarm/uboot-rockchip.git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From here, the build process for uboot is straightforward. Note that &amp;lt;code&amp;gt;make.sh&amp;lt;/code&amp;gt; uses the result of &amp;lt;code&amp;gt;nproc&amp;lt;/code&amp;gt; to determine how many make jobs to run, so all of your cores will be at full throttle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ cd uboot-rockchip&lt;br /&gt;
$ ./make.sh nanopi5&lt;br /&gt;
$ ./make.sh --idblock --spl    # Argument order is important here!&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Along with a bunch of other files, you should now have &amp;lt;code&amp;gt;idblock.bin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;uboot.bin&amp;lt;/code&amp;gt; in your current directory.&lt;br /&gt;
&lt;br /&gt;
== Compiling the kernel ==&lt;br /&gt;
&lt;br /&gt;
You'll need to install the As with U-Boot, grab the BSP kernel sources:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ git clone -b nanopi5-v5.10.y_opt https://github.com/friendlyarm/kernel-rockchip.git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rest is a standard cross-compilation of Linux, so I won't delve into the details. The commands I used are below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ export ARCH=arm64&lt;br /&gt;
$ export CROSS_COMPILE=aarch64-linux-gnu-&lt;br /&gt;
$ make nanopi5_linux_defconfig&lt;br /&gt;
$ make -j9&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We'll get to installing once we have Debian installed on our image.&lt;/div&gt;</summary>
		<author><name>Flurry</name></author>
	</entry>
</feed>