Files
hosts/stats.nb
T

746 lines
34 KiB
Mathematica

(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='WolframDesktop 13.1' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 161, 7]
NotebookDataLength[ 34944, 737]
NotebookOptionsPosition[ 34154, 715]
NotebookOutlinePosition[ 34547, 731]
CellTagsIndexPosition[ 34504, 728]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[CellGroupData[{
Cell[BoxData["\[AliasDelimiter]"], "Input",
CellChangeTimes->{3.931804384010314*^9},
CellLabel->
"In[204]:=",ExpressionUUID->"7134d186-2f8f-4a5d-b8fd-e1205134ab62"],
Cell[BoxData["\[AliasDelimiter]"], "Output",
CellChangeTimes->{{3.931804387524592*^9, 3.9318044059991903`*^9},
3.9321123850124197`*^9, 3.932387643037456*^9, 3.9328025295152884`*^9,
3.9329341818122463`*^9, 3.933185624470751*^9, 3.933683992176692*^9,
3.933944168442651*^9, 3.934049100907174*^9, 3.934134035639214*^9,
3.934454107475078*^9, 3.9346630739785833`*^9, 3.934969542910392*^9,
3.935238771709779*^9, 3.935503361187483*^9, 3.935869095494813*^9,
3.935941745079809*^9, 3.936030388772883*^9, 3.936280154713859*^9,
3.936444367251707*^9, 3.9368054886510687`*^9, 3.936959096230813*^9,
3.937168650948542*^9, 3.937300611375231*^9, 3.9374896704758387`*^9,
3.937558235209944*^9, 3.937671079070621*^9, 3.937761518611168*^9,
3.937858089679325*^9, 3.9380347882547083`*^9, 3.9382909290330772`*^9,
3.9387187900204887`*^9, 3.938985928014577*^9, 3.939327116227829*^9,
3.939554161527875*^9, 3.940022647070471*^9, 3.940365417966402*^9,
3.9405877575915213`*^9, 3.9410410832399483`*^9, 3.941391259844369*^9,
3.941465459938279*^9, 3.941819366244154*^9},
CellLabel->
"Out[204]=",ExpressionUUID->"4b06b58f-c6fd-46c5-9e3c-858451a7bb05"]
}, Open ]],
Cell[BoxData[{
RowBox[{
RowBox[{"SetDirectory", "[",
RowBox[{"NotebookDirectory", "[", "]"}], "]"}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"data", "=",
RowBox[{"Import", "[", "\"\<stats.out\>\"", "]"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"graphtitle", "=", "\"\<Hosts file size history\>\""}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
"graphsubtitle", " ", "=", " ",
"\"\<base version: (adware + malware) only\>\""}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"data", "=",
RowBox[{
RowBox[{"(",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"DateObject", "[",
RowBox[{"#1", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}],
"]"}], ",",
RowBox[{
"#1", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], "}"}],
"&"}], ")"}], "/@", "data"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"lastitem", "=",
RowBox[{"Callout", "[",
RowBox[{
RowBox[{"Last", "[", "data", "]"}], ",",
RowBox[{"ToString", "[",
RowBox[{
RowBox[{"Last", "[", "data", "]"}], "[",
RowBox[{"[", "2", "]"}], "]"}], "]"}], ",", "Right", ",", " ",
RowBox[{"LabelStyle", "->", "Small"}], ",", " ",
RowBox[{"Background", "->", "LightBlue"}]}], "]"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"data", "[",
RowBox[{"[",
RowBox[{"Length", "[", "data", "]"}], "]"}], "]"}], "=", "lastitem"}],
";"}]}], "Input",
CellChangeTimes->{{3.867182545948308*^9, 3.867182555077017*^9}, {
3.8671856323646584`*^9, 3.867185655249*^9}, 3.867187032420275*^9, {
3.867187218478177*^9, 3.867187234045384*^9}, {3.867187352932571*^9,
3.867187371829939*^9}, {3.8671903940899982`*^9, 3.8671904257542353`*^9},
3.867190458276375*^9, {3.867190733940156*^9, 3.867190734419613*^9}, {
3.867190798905361*^9, 3.86719081289338*^9}, {3.867190843782461*^9,
3.867190868878964*^9}, {3.867191008084812*^9, 3.867191008823593*^9}, {
3.867191045756618*^9, 3.86719109928176*^9}, {3.867191132601091*^9,
3.867191153305139*^9}, {3.867191256528245*^9, 3.867191304159674*^9}, {
3.867191352877194*^9, 3.867191356182763*^9}, {3.867191386467814*^9,
3.867191411094434*^9}, {3.867191451576531*^9, 3.867191464669776*^9}, {
3.867191517397131*^9, 3.867191585673174*^9}, {3.867191623805966*^9,
3.867191637345644*^9}, {3.867191694067857*^9, 3.867191832972144*^9}, {
3.867443529594183*^9, 3.867443565893339*^9}, {3.867445761749815*^9,
3.86744582007928*^9}, {3.867445877108981*^9, 3.867445877563551*^9}, {
3.88987554010293*^9, 3.889875542354431*^9}, {3.890909771395684*^9,
3.890909773446272*^9}, {3.89765774638717*^9, 3.897657747223047*^9}, {
3.898379436246955*^9, 3.898379440050661*^9}, {3.90338401735606*^9,
3.9033840200448112`*^9}, {3.906908185436775*^9, 3.9069081879516287`*^9}, {
3.925848183308426*^9, 3.925848185881434*^9}, {3.926438108465784*^9,
3.92643813766343*^9}, {3.928879584090178*^9, 3.928879587280989*^9}, {
3.9293606429237022`*^9, 3.929360645945132*^9}, {3.931376802792758*^9,
3.931376805515088*^9}},
CellLabel->
"In[205]:=",ExpressionUUID->"e5e34011-aa3d-4e95-90b1-863054ac32f5"],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{
RowBox[{"graph", "=",
RowBox[{"DateListPlot", "[",
RowBox[{"data", "\[IndentingNewLine]", ",",
RowBox[{"PlotTheme", "\[Rule]", "\"\<Detailed\>\""}],
"\[IndentingNewLine]", ",",
RowBox[{"FrameLabel", "\[Rule]",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"HoldForm", "[",
RowBox[{"Unique", " ", "domains"}], "]"}], ",", "None"}], "}"}],
",",
RowBox[{"{",
RowBox[{
RowBox[{"HoldForm", "[", "Year", "]"}], ",", "None"}], "}"}]}],
"}"}]}], "\[IndentingNewLine]", ",",
RowBox[{"FrameTicks", "->",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"All", ",", "All"}], "}"}], ",", "Automatic"}], "}"}]}],
"\[IndentingNewLine]", ",", " ",
RowBox[{"GridLines", "->",
RowBox[{"{",
RowBox[{
RowBox[{"Table", "[",
RowBox[{
RowBox[{"DateObject", "[",
RowBox[{"{", "x", "}"}], "]"}], ",",
RowBox[{"{",
RowBox[{"x", ",", "2017", ",", "2025"}], "}"}]}], "]"}], ",", " ",
"Automatic"}], "}"}]}], "\[IndentingNewLine]", ",",
RowBox[{"ImageMargins", "\[Rule]", "10"}], "\[IndentingNewLine]", ",",
RowBox[{"ImageSize", " ", "->", " ", "Large"}], "\[IndentingNewLine]",
",",
RowBox[{"PlotLabel", " ", "->", " ", "\[IndentingNewLine]",
RowBox[{"Column", "[", "\[IndentingNewLine]",
RowBox[{
RowBox[{"{", "\[IndentingNewLine]",
RowBox[{
RowBox[{"Style", "[",
RowBox[{"graphtitle", ",", "16", ",", "Bold"}], "]"}],
"\[IndentingNewLine]", ",",
RowBox[{"Style", "[",
RowBox[{"graphsubtitle", ",", "12", ",", "Bold"}], "]"}],
"\[IndentingNewLine]", ",",
RowBox[{"Style", "[",
RowBox[{
RowBox[{"\"\<updated: \>\"", "<>",
RowBox[{"DateString", "[",
RowBox[{"TimeZone", "->", "\"\<Zulu\>\""}], "]"}], " ", "<>",
" ", "\"\< UTC\>\""}], ",", "12"}], "]"}]}],
"\[IndentingNewLine]", "}"}], "\[IndentingNewLine]", ",", "Center"}],
"\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]", ",",
RowBox[{"LabelStyle", "\[Rule]",
RowBox[{"{",
RowBox[{"GrayLevel", "[", "0", "]"}], "}"}]}]}], "\[IndentingNewLine]",
"]"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"Export", "[",
RowBox[{
RowBox[{
RowBox[{"StringReplace", "[",
RowBox[{
RowBox[{"ToLowerCase", "[", "graphtitle", "]"}], ",",
RowBox[{"\"\< \>\"", "->", "\"\<_\>\""}]}], "]"}], "<>", " ",
"\"\<.png\>\""}], ",", " ", "graph"}], "]"}],
";"}], "\[IndentingNewLine]", "graph"}], "Input",
CellChangeTimes->{{3.867186565207215*^9, 3.867186567959504*^9}, {
3.867186655694774*^9, 3.867186670522201*^9}, {3.867186775392453*^9,
3.867186776891725*^9}, 3.867186837903651*^9, {3.867186904930146*^9,
3.867186940968878*^9}, {3.867187286976087*^9, 3.867187304612606*^9}, {
3.867187379649686*^9, 3.867187384392969*^9}, {3.8671874248081408`*^9,
3.867187425393301*^9}, {3.867187462942827*^9, 3.867187467876066*^9}, {
3.867187585120219*^9, 3.867187592332826*^9}, {3.867190421572784*^9,
3.867190455350173*^9}, {3.867191170483214*^9, 3.867191170658471*^9}, {
3.867191203296914*^9, 3.867191245177144*^9}, {3.867443579626745*^9,
3.867443615991692*^9}, {3.867445864801002*^9, 3.867445865695055*^9}, {
3.867585461992905*^9, 3.867585470469511*^9}, {3.904556674711198*^9,
3.90455667849632*^9}, {3.9218516314196*^9, 3.921851639595783*^9}, {
3.92185167067825*^9, 3.9218517351487503`*^9}, 3.9218517880751457`*^9},
NumberMarks->False,
CellLabel->
"In[212]:=",ExpressionUUID->"55c17c4f-14a9-40f1-a01c-ab0b0c9b3309"],
Cell[BoxData[
GraphicsBox[{{}, {{{}, {},
TagBox[
{RGBColor[0.368417, 0.506779, 0.709798], PointSize[
0.0055000000000000005`], AbsoluteThickness[2], LineBox[CompressedData["
1:eJyN2Hd4FNX6B/ChJ9QV0dCEoVdhqFIEhnJJUIQNAqHKQH40QVgQEaWNCAIC
YShipOhc4dIisGBMELkyImgQkAUChj70UEIWEEmo9+b9fvePvQ8+z88/jJ/n
nPOe97znzM4ZqwwZ22NofkVRNv/3X3l///uPOT/tRvu8/3DjbujPsD/lb+z0
DbfZXewptg/We4t9g2i7l9ieGzLiBb6lHViL+I3uJ7YG0G5/sfMJrS8PtzpQ
rJ4KjYfNhvthYwjy7Uurw5HvZtqG9YxQ/yVZz7Iv/wF6DfLvTatJyD+J1r8V
G8doZxvW85S2YXXaQa7vw3DbrZH/EVrNvi75P6L1m2K35u/0ZbE+mTbOiJXq
h+hzYufA3/mIOPgXrcLe1wP0Fsz/VSC0Psy/j1ZgvdJhnodksS+GdteIjQpH
uL4kzD+WdhZivlu0aSH+6KMcP1Vsv5DO8aY40I5WYSuTVvpgPa8eYzts/nAs
dH5RnxJ/cL6zGD8vZFesFs1gfR5i/XNo91OcnzO0vQDnYdYJzr8y3O6KcDuw
dpJWU3FeCp7kfIdwXhrQ+klxcAZtFrgp+dQ7xXiRYl/639gtIQ7UPk2/JLYO
02aGOFjjDPPveUvqtYZWY8VuDu2myPMQ2H+W41PF6t1z7D9Z7B/nsn0xnp/y
57meXIwfE3I+ia8uu8B6thJ7Rl5kPvFibdglth8XO5dodw7Gt7xMNxF740Ou
g3jFr4Tlr0VeZb6bxNZA2vX+j/uKg1tpp4/YnZlJ30a9C1zjevuj3nG0kY3f
q7rXOV9R9F97g+uHlRo32X8q+h+k7fH4/bKzOH4Kzs+dW8zvMzxfFbPZf4LY
kxhkPueu5VnfHbIHz8POO6xvoWCe7e/vsn1jtuR/MeTtYiflT663q9jb7B69
QKxH/MX554uthvfpS9iPDNq4LA7UyaWfl/7Bmg/opXdkP2NpO1LaPdUfcr3Z
OA9VHjH/exckv69oFfZVeMJ4OWJtD62XuSj9Ozxle5RYX6rchFWxNjwfrBQV
mwn5YaeQ2J5XADYjEG9OQY4vgv6NCtG/Yf5NhRlvs9i7sQjsrhXrUyPYP0Vs
rYmEdb/YfL8oxyehv1qM+cwWGy8VZ7y+YndMCY4fivmXlWR7I8nPuk6r9ZB/
mVJcD+y/GnJ51GeYh+NfEKvFS4e1e5uHXA79I5+H7ZaYTytDt0D8l19gPDhQ
90X6Kuo/PeRM5PeYtm+K3QdR9F2xklOW8+di/N4K9CPkt7si48GeUS+x/Sn6
j6hEd7+U56CnMuMPEZsLaXOW2P99yAvEWrEqjL8M7QOqsn2FWJlZje6PeuSv
zvqXDrczKNz281h/fVpZLfF862twf9dh/tiajLdZ7O1Wi+OTxUalOpx/GOKN
D3kE6nObth9If3dsXca/JrZu1OP5zA63Datv1+f672D+pSE/QbzSL3P8U/Qv
0ZDzZ6C+g2nDFXtc2r6O9Z3RWJ9Sl2U9RRoxPuw9SeulxYF6TcKs9KbduVj/
E9qJx3k83JTtb+F8PaRN7IfubfZsq+hvvd+c7UPEwf20jf7ma6/Q7yL+lyGP
wvkf14Ljs8VGkFaeZkq+nVqGzmu4nf+xosjvvffnlqH6S7s/qhXr8UDsGU27
p8X6MlpdKTaWtGZ7GYmnvvoq3UxsWrReF++Xlm2YX0OxVrwt82kjdj6l1Q4Y
36Qd47X+f1k/Teutwq3C2had7V3Fwbj2PE866vENbXcSe3p1oA1x4DHtKHif
TulIV8Z98gGtvIH74OpOnC8e99+q/+B8U3D/7UqreB8r+0Pt0xG/cmeur1a4
jSW4j3ah7fmYfxWtfI73d8Voxt+GfDqHnIL7s492UpHfXtpA/0DHGMY7KdYS
aTvzmQ7qXRiP9+FrtHIf9422r7H9FuJfodVY3G+Hvs56RYVbrY37zfyurEeU
3IfcFNquE261rlgv9gbX00isnaWd2mLvqW4cn09sFupOFxbb+b2MVw733zqx
PL8lET+2B/vDRrc32f8x7uMHaKMg5qvSk/Pn4nvyT9otdjPMDhwY3yv0fEt/
ZRWtPxR79/TmeObzeRznq4V8lvZhfg0w//C+7L8K9bpM64swvlU/us0zHdhO
O1PEqtuf7ScQv+gArv8c6tmUdtDuzqHdBMQ/Qxv3sN8nBzLf+mK33iC2D8P3
0ZNBod9LfA/XHBx6v6Ge1Yaw/9eIp8Zzv37H+Yn+P+aTjv/fUH4ox2/A91QW
7U7G/TpqGOuP8+i/Ttvl8X1kjWB7EupRaiTjfYz1x9PKKHzfNH+b8w/D982n
tF0D3xNNRrF+rWW8M3BUWHtwNm3WEZuFRz/bansZ75lFKy2k3S7wDvPrj++b
Ge+E3veIX3cM5xuD/ekxlvVcg+enho/te7HeHFpPxvdK5fFs34Lzd4c25mE9
nd9l+wScl720aeF5uzmB9U9EfXe9x/g/op6LJ7L/c1lhVkrje3JnuN0rtNsW
6y05ie0G6j0kZHyPOvNpezriDfqA+S9EvLm0uwz7N+BD7ucOxN9Kuyn43pw5
mflXwvfQ5pBP4nslbgrjPxD7kmj1Eb6P1k9luyrfX2qtaaH3q9gbS3vni33d
psP+CWKjisl4Y8X+mI/Yf51Y/5W27sj3lOKbAWtF7uY52OFjjq8j9t+grSTp
H8icyf5TpN35YRb3p+efkq/nE9gz4W6YvTMQL4EOpIg9F2l3g9gePJv16i4O
zKOdN8VKCu3pH257POb7dg7z/wXzNZrLeGcx3ye08w3G9/0U9t0QW3/QXl3W
40+fx/GNxcqj+cw/Eu3vJ3D+g8h3wkL6X6jnOIvrSxObQVrLQT5jF9H3UM/r
i7n/1RD/30sYr4PYvUo7mvTXSn3G+KOl3VlAW4vEZvNl7J8hDgz8HA62v5dn
75ZErkcVuy9/wf3sKA4oy1mfE2KlHm3n/0vmO0oHfka8HisYv4i0ex7SelWx
XmMl25eKtRzamyxW96/ifKvFvjtfht6fYiv7K9anOfqPsVm/aLG5m7bHigPX
/sn+azFf26/5vBzG+OdWc73nxe73tHb1mbaHrOF6d2F88r/4e3IF+Z5ay3yz
xUq/dVxPFvLPoD2R96VeH61nvn5x4MgGji+YE2argDh4aCPX85v0909K4nr2
ivX7tJku9lX5hvV9IFZsWq8n8axKm5hPQ7ETQ2sxYn+FzXyeFortW3RwVrgD
llh7Zwvnn434P9GeRLGq+zl+g9jNpH0zJD/Ns439T4iNVrRvj9hJoAPXUb8S
33I9OyWeJ4U26ufK+osm083EdlPa7YX6vkUHx6C+/b9j/VcgvwYp3J/TiN+X
di6F24ID+VK5/kzUM50O7Jd8zanbuV/HsR+Hvmf8o6hfLm3ORf3e2MH9WIX6
HaCNVLGp/sD9jRb77tLWO2Ljl52h/VXy/nq/+Df7xz2Q/c2itffEtvMj++8W
GyN3cb1ZYrW0w/pVeCjrv0xb5cR2/E/ML0ZsFN/N+Isx/jtaHYb6DvyZ49dK
f30bbX8n1mbt4f40Egdf3sv6GWJX+YXjox5JPZ/Qxnv58v46a3/lemeJ1Ye0
PkDGm93TGH+82Fd1H9e3U/INTKSto+G2YfXL37ieoU+lHuP2c/8mon+5A9z/
HWJrN+3f9VjW8+JB9j8kNj+j/a701547BGf8gvUspJ3VSpjnwOolWntb1uMf
EqBzkV8qbZeR/r5ihzl/UNq1ZDqiIuLNPgK3aCPWZx6FM9uJA/nTmU9f5HOM
jvgA563nMTjnM7HnMW1uQLxax+FJqWKj+h8cvw3zH6QDaYh3n95+UOy+l8H9
OY/1/Ekr2cgv5gRdVOpn3aaNJmL/rZP8fWmQP++vpp/m/OPE6vNn2P8LsX8R
PcIW+1qd5fpdcSCBXn8b8S7SvjtiZ/A5OLFIAanHXBfu01GsDDjP8zlZbG66
wPUZ6F//Ius/UKz3ptV+YmvqJZ6fdLGzLuQjYv+Hl5nfasQ7RPsWIV4unZaE
fL6+wny/FmsH6O2fYz71Kuu1G/O9RrsXkP9dWksVu9GZ3I99mG8lndGxoNSv
/DW4dhbmG3st9Hsl7d7R13ney4vd6yE3FvtG3mA9m4uNV29yfd3FjkXPeRPx
SmXxfC8S++NpewXyMW7x9+G82IrM5vhcxGtCby9ZSOJtoxNfEbtakPN3FisN
brP/LLExg85JEXue3GF9WhfO+2tPucv8DLFR40/+Pr8v9ubQ2ndid+I9zp8k
9t2jrVTEq/wX6/0T4qXR2iNxsPN91r9hEdmfMTlwzDyxEpXL/fhR7Oyi09LF
vtYPub4uEbJ/l2glXqymPmJ+88RmsceM91e4Ew9jP8/SGZfEysAn3J9+Ui9t
Nu0dLnYKPeXz87ZY7Ud7PxGbm2nrG7Eep2SJJ20UB47RxkXsT898dDWpjzWN
jogWm7H54RGjxf7JtOET6w/o7bvEql0QbuGRevkrFYLXN0X9fqWDb4jt27TX
i/p3LgwnDhJrPjpisthYTrewxNaeULsf+3WLnrNWHCxbBHa/Ers36IjjmH9p
BGxeQ/w2kbBSUvbL6ykKa63EbgK9PVocGFwMzvxQrMyny07DeZhbHPYnY//P
0PYOsf5JCTjnAs5T35KwFRkp6/mDjukqDuYrxfy7i9X6tP+johLfpCd9KXbT
aRXr933xAvOHlbIvwgEHz7tDu2vwPmoXxXxTxOZI2rMM76NXy8Jpq8TKD7SN
9592mY44Jg4uKAdnBMX+5uXZPlzeV65BT5oqtiMrwE6iONCEbrFebGyj007j
/lC4IutxAe+/E3QfvP98M15i/1ix/Q3tHYn323F6+wd4n22oxPqliL21K/M8
HMH7cgptXcb4D1TO1xC/77/Taje8P7pW4XmZJg5OpJVPxeo/6RYJeH9NqEpj
/b402lon9o6pzvPTBfW7SQc+EnuiarAes1GfxTW5PxvFZutazO+QWL9Et8gU
Kwtqs92D9SfXYb4rxW7jupz/J9TzFK1mon4Z9bi/rWU93rj6rF+82J72Msen
iY1aDZjvGIyfTBsJYrN6Q67vrFiZqPH5TUa9bTotBfWu1IjnuRbef7fpOcvF
9p7G7N8Yv68/NeH+7xT7lzZlvqXxvmnTjO3D8H7xNGf+m/C+ukhb+/H7WeIV
5huB58UNedATPe9P0xZ8nmaI1QEtuT/LxW7BVjz/ReX+6vuY9g0WW2Zrtr8i
Vp/Srldse9vw97cR7ptft2V+GchnXzuex1icj6DO3+cteH5+bs/1Fcf5djpw
/9eJjXYduT/7sF9L6BFqgTDXHob7kdWJ652N+9FluuwO3McS/sH5c3H/Kt6Z
9Wgi+6XOo9NwX3WbRHP9t/B8b4sO/X7jfJ2m3crI50QMz6MP+Rzvwv0Yj/7T
X2N9EpFPOq3/jPNZ+3Web9w31cN0RDmcr+5dub6WOF9V3+D5mYv3+/u08gXu
b/vpxF/FZlo31rMM7kvR3dmu430+jg52E/tW0GV74L7Qycv9mobzvJte/yXu
b+1juT+tcL/cFRt6H+M+0rYH8x0t1q7SI14Pt7eAfI9ard/kefxRvsfUHbSu
SLtZsifrW02sp9J2T7FdrBfrMQLftwZtjxQbybTeRexE9ObzPlQcbBzyaLE6
kNbWhNtah3y29g79/ok9Whz3c6vYN5PWd2L+uD5sP4d4Sl/Od1zsrqf9NeX7
Vn9MG33ExoN+9EZ8D0/qz3p9ju/h+7S6Sez7bQDP81ax9u5AzpeEeKtod75Y
7fwW1+s81v8DbSclOA==
"]]},
Annotation[#, "Charting`Private`Tag#1"]& ]},
TagBox[
{Opacity[0.], PointBox[{{3.9417408*^9, 121859.}}]},
Annotation[#, {{Callout}, Charting`Private`Tag, {686}}]& ]}, {{{}, {{},
GraphicsGroupBox[{
{RGBColor[0.87, 0.94, 1], AbsoluteThickness[4], Opacity[
NCache[
Rational[2, 3], 0.6666666666666666]], CapForm["Butt"], JoinForm[
"Round"],
BSplineCurveBox[{
Offset[{3., 0.}, {3.94238061225*^9, 121859.}],
Offset[{8., 0.}, {3.94238061225*^9, 121859.}],
Offset[{10., 0.}, {3.94238061225*^9, 121859.}],
Offset[{12., 0.}, {3.94238061225*^9, 121859.}],
Offset[{12., 0.}, {3.94238061225*^9, 121859.}]}]},
{RGBColor[0.6666666666666666, 0.6666666666666666, 0.6666666666666666],
AbsoluteThickness[1.25],
BSplineCurveBox[{
Offset[{3., 0.}, {3.94238061225*^9, 121859.}],
Offset[{8., 0.}, {3.94238061225*^9, 121859.}],
Offset[{10., 0.}, {3.94238061225*^9, 121859.}],
Offset[{12., 0.}, {3.94238061225*^9, 121859.}],
Offset[{12., 0.}, {3.94238061225*^9, 121859.}]}]},
{EdgeForm[None], FaceForm[{RGBColor[0.87, 0.94, 1], Opacity[
NCache[
Rational[2, 3], 0.6666666666666666]]}],
PolygonBox[{
Offset[{48., 5.5000000000000036`}, {3.94238061225*^9, 121859.}],
Offset[{48., -5.4999999999999964`}, {3.94238061225*^9, 121859.}],
Offset[{12., -5.5000000000000036`}, {3.94238061225*^9, 121859.}],
Offset[{12., 5.4999999999999964`}, {3.94238061225*^9, 121859.}]}]},
{RGBColor[0.6666666666666666, 0.6666666666666666, 0.6666666666666666],
AbsoluteThickness[1.25], EdgeForm[None]}, {}, InsetBox[
StyleBox[
RotationBox["\<\"121859\"\>",
BoxRotation->0.],
StripOnInput->False,
LineColor->GrayLevel[0],
LineOpacity->1,
FrontFaceColor->GrayLevel[0],
BackFaceColor->GrayLevel[0],
FrontFaceOpacity->1,
BackFaceOpacity->1,
GraphicsColor->GrayLevel[0],
Opacity->1,
FontSize->Small,
FontColor->GrayLevel[0],
FontOpacity->1], Offset[{30., 0.}, {3.94238061225*^9, 121859.}],
NCache[ImageScaled[{Rational[1, 2], Rational[1, 2]}],
ImageScaled[{0.5, 0.5}]]]}]}}, {}}},
AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
Axes->{False, False},
AxesLabel->{None, None},
AxesOrigin->{3.729024*^9, 0},
DisplayFunction->Identity,
Frame->{{True, True}, {True, True}},
FrameLabel->{{
FormBox[
TagBox[
TagBox[
RowBox[{"Unique", " ", "domains"}], HoldForm], HoldForm],
TraditionalForm], None}, {
FormBox[
TagBox[
TagBox["Year", HoldForm], HoldForm], TraditionalForm], None}},
FrameStyle->Automatic,
FrameTicks->FrontEndValueCache[{{All, All}, {
Charting`DateTicksFunction[Automatic, DateTicksFormat -> {Automatic}],
Charting`DateTicksFunction[
Automatic, DateTicksFormat -> {Automatic}, "TickLabels" -> None]}}, {{
All, All}, {{{3.7237536*^9,
FormBox[
StyleBox["\"2018\"",
Directive[], {}, StripOnInput -> False], TraditionalForm],
Automatic,
Directive[]}, {3.7868256*^9,
FormBox[
StyleBox["\"2020\"",
Directive[], {}, StripOnInput -> False], TraditionalForm],
Automatic,
Directive[]}, {3.849984*^9,
FormBox[
StyleBox["\"2022\"",
Directive[], {}, StripOnInput -> False], TraditionalForm],
Automatic,
Directive[]}, {3.913056*^9,
FormBox[
StyleBox["\"2024\"",
Directive[], {}, StripOnInput -> False], TraditionalForm],
Automatic,
Directive[]}, {3.9762144*^9,
FormBox[
StyleBox["\"2026\"",
Directive[], {}, StripOnInput -> False], TraditionalForm],
Automatic,
Directive[]}, {3.7237536*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.7552896*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.7868256*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.7868256*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.818448*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.849984*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.849984*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.88152*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.913056*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.913056*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.9446784*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.9762144*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}}, {{3.7237536*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.7868256*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.849984*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.913056*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.9762144*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.7237536*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.7552896*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.7868256*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.7868256*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.818448*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.849984*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.849984*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.88152*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.913056*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.913056*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.9446784*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}, {3.9762144*^9,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], Automatic,
Directive[]}}}}],
GridLines->{{3.6922176*^9, 3.7237536*^9, 3.7552896*^9, 3.7868256*^9,
3.818448*^9, 3.849984*^9, 3.88152*^9, 3.913056*^9, 3.9446784*^9},
Automatic},
GridLinesStyle->Directive[
GrayLevel[0.4, 0.5],
AbsoluteThickness[1],
AbsoluteDashing[{1, 2}]],
ImageMargins->10,
ImagePadding->{{All, All}, {All, All}},
ImageSize->Large,
LabelStyle->{
GrayLevel[0]},
Method->{
"NoShowPlotTheme" -> "Detailed", "AxisPadding" -> Scaled[0.02],
"DefaultBoundaryStyle" -> Automatic,
"DefaultGraphicsInteraction" -> {
"Version" -> 1.2, "TrackMousePosition" -> {True, False},
"Effects" -> {
"Highlight" -> {"ratio" -> 2}, "HighlightPoint" -> {"ratio" -> 2},
"Droplines" -> {
"freeformCursorMode" -> True,
"placement" -> {"x" -> "All", "y" -> "None"}}}}, "DefaultMeshStyle" ->
AbsolutePointSize[6], "DefaultPlotStyle" -> {
Directive[
RGBColor[0.368417, 0.506779, 0.709798],
AbsoluteThickness[2]],
Directive[
RGBColor[0.880722, 0.611041, 0.142051],
AbsoluteThickness[2]],
Directive[
RGBColor[0.560181, 0.691569, 0.194885],
AbsoluteThickness[2]],
Directive[
RGBColor[0.922526, 0.385626, 0.209179],
AbsoluteThickness[2]],
Directive[
RGBColor[0.528488, 0.470624, 0.701351],
AbsoluteThickness[2]],
Directive[
RGBColor[0.772079, 0.431554, 0.102387],
AbsoluteThickness[2]],
Directive[
RGBColor[0.363898, 0.618501, 0.782349],
AbsoluteThickness[2]],
Directive[
RGBColor[1, 0.75, 0],
AbsoluteThickness[2]],
Directive[
RGBColor[0.647624, 0.37816, 0.614037],
AbsoluteThickness[2]],
Directive[
RGBColor[0.571589, 0.586483, 0.],
AbsoluteThickness[2]],
Directive[
RGBColor[0.915, 0.3325, 0.2125],
AbsoluteThickness[2]],
Directive[
RGBColor[0.40082222609352647`, 0.5220066643438841, 0.85],
AbsoluteThickness[2]],
Directive[
RGBColor[0.9728288904374106, 0.621644452187053, 0.07336199581899142],
AbsoluteThickness[2]],
Directive[
RGBColor[0.736782672705901, 0.358, 0.5030266573755369],
AbsoluteThickness[2]],
Directive[
RGBColor[0.28026441037696703`, 0.715, 0.4292089322474965],
AbsoluteThickness[2]]}, "DomainPadding" -> Scaled[0.02],
"PointSizeFunction" -> "SmallPointSize", "RangePadding" -> Scaled[0.05],
"AllowMicroRanges" -> {True, False}, "OptimizePlotMarkers" -> True,
"IncludeHighlighting" -> "CurrentSet", "HighlightStyle" -> Automatic,
"OptimizePlotMarkers" -> True,
"CoordinatesToolOptions" -> {"DisplayFunction" -> (({
DateString[
Part[#, 1], "DateShort"],
Part[#, 2]}& )[{
Identity[
Part[#, 1]],
Identity[
Part[#, 2]]}]& ), "CopiedValueFunction" -> (({
DateString[
Part[#, 1], "DateShort"],
Part[#, 2]}& )[{
Identity[
Part[#, 1]],
Identity[
Part[#, 2]]}]& )}},
PlotLabel->FormBox[
TagBox[
GridBox[{{
StyleBox[
"\"Hosts file size history\"", 16, Bold, StripOnInput -> False]}, {
StyleBox[
"\"base version: (adware + malware) only\"", 12, Bold, StripOnInput ->
False]}, {
StyleBox[
"\"updated: Thu 28 Nov 2024 21:49:26 UTC\"", 12, StripOnInput ->
False]}}, GridBoxAlignment -> {"Columns" -> {{Center}}},
DefaultBaseStyle -> "Column",
GridBoxItemSize -> {
"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Column"],
TraditionalForm],
PlotRange->{{3.729024*^9, 3.9417408*^9}, {0, 218063.}},
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.02],
Scaled[0.08090169943749476]}},
Ticks->{{}, Automatic}]], "Output",
CellChangeTimes->{
3.867186551570758*^9, {3.867186680772122*^9, 3.867186699782072*^9},
3.867186777935874*^9, 3.86718694202357*^9, 3.867187051044989*^9,
3.867187255654533*^9, 3.867187310041932*^9, 3.867187431429256*^9,
3.867187477376759*^9, 3.867187602705633*^9, {3.867190444725642*^9,
3.86719046295945*^9}, 3.867190761611189*^9, 3.867190819779409*^9, {
3.867190852467555*^9, 3.867190875035033*^9}, 3.867191085771729*^9, {
3.867191139927058*^9, 3.867191174532995*^9}, {3.867191217100472*^9,
3.867191249934973*^9}, {3.867191282486545*^9, 3.867191309118765*^9},
3.867191362884745*^9, {3.86719139757495*^9, 3.867191417861985*^9},
3.867191469212702*^9, 3.867191534117766*^9, {3.867191566041802*^9,
3.867191590853747*^9}, {3.867191700666916*^9, 3.867191770546698*^9}, {
3.867191813970607*^9, 3.867191837153657*^9}, {3.8674436061237383`*^9,
3.867443624613255*^9}, 3.867444944515202*^9, 3.867445839945568*^9, {
3.867445870303279*^9, 3.867445881911745*^9}, 3.867584995471957*^9,
3.867585478130906*^9, 3.86774687062293*^9, 3.868098851430778*^9,
3.868523516725683*^9, 3.86906681078651*^9, 3.869308928711943*^9,
3.869735161175044*^9, 3.870007810203533*^9, 3.870340372505321*^9,
3.870340403401229*^9, 3.87045361082372*^9, 3.870942972286525*^9,
3.8713065010498323`*^9, 3.871395829118849*^9, 3.871641630959985*^9,
3.871642275253429*^9, 3.871899229411577*^9, 3.8720932523644876`*^9,
3.87242839478826*^9, 3.8729292766301403`*^9, 3.8736608832707767`*^9,
3.874069338302347*^9, 3.874325909186389*^9, 3.874696457503956*^9,
3.874861895344188*^9, 3.875050962875978*^9, 3.87526519097518*^9,
3.875891090297274*^9, 3.876342003848527*^9, 3.876998312579729*^9,
3.8772936096656237`*^9, 3.877382516377141*^9, 3.877964348832008*^9,
3.87804450687954*^9, 3.878470212323723*^9, 3.8786395885601797`*^9,
3.878639620334971*^9, 3.878757847201033*^9, 3.879112223224792*^9,
3.879170520951467*^9, 3.879289724404871*^9, 3.879371591147833*^9,
3.879797285624524*^9, 3.879923975629261*^9, 3.880151317819726*^9,
3.880393658429194*^9, 3.880543046724104*^9, 3.881056375670085*^9,
3.881325738216374*^9, 3.881334367469533*^9, 3.881592959478129*^9,
3.882027365892887*^9, 3.88219345383886*^9, 3.882466370101098*^9,
3.882613249735723*^9, 3.883174805016778*^9, 3.883439999108673*^9,
3.883605359783735*^9, 3.883843869256338*^9, 3.883866592728613*^9,
3.883867143448183*^9, 3.884153915891087*^9, 3.884641124197339*^9,
3.884773401559798*^9, 3.884775165607097*^9, 3.88477566967144*^9,
3.885548303427269*^9, 3.885831123028147*^9, 3.886191584864834*^9,
3.886621436378044*^9, 3.886855243870946*^9, 3.887106308113074*^9,
3.887235622274569*^9, 3.887498860649525*^9, 3.887834971429055*^9,
3.8884179282247667`*^9, 3.888752672205769*^9, 3.889131678960092*^9,
3.889875549917007*^9, 3.890245716755601*^9, {3.890686789876093*^9,
3.8906868143380527`*^9}, 3.8908207849213142`*^9, 3.890908186110266*^9,
3.89090978001711*^9, 3.891285151358225*^9, 3.891545263571479*^9,
3.8916073042523813`*^9, 3.891872341652968*^9, 3.892072401751935*^9,
3.89228235594491*^9, 3.892544999424947*^9, 3.892806179970969*^9,
3.893095552437428*^9, 3.893172375102555*^9, 3.89362060069613*^9,
3.893686053639799*^9, 3.89397203764882*^9, 3.894751203039884*^9,
3.895084844111672*^9, 3.895439490125032*^9, 3.895526321693917*^9,
3.895657784061549*^9, 3.8957448599055853`*^9, 3.895931247787265*^9,
3.896013566564756*^9, 3.896095386373332*^9, 3.8965191786429*^9,
3.896893631393726*^9, 3.897216178858164*^9, 3.897657754621402*^9,
3.897926194231195*^9, 3.898379414999449*^9, 3.8983794476037083`*^9,
3.898434292317229*^9, 3.898951274337104*^9, 3.899121622375916*^9,
3.899475149831279*^9, 3.899911501496304*^9, 3.900175205856585*^9,
3.900270527812401*^9, 3.900491563343502*^9, {3.903025185560467*^9,
3.903025205982198*^9}, 3.903174150401764*^9, 3.903182074275147*^9,
3.903383990135808*^9, 3.903384025396119*^9, 3.903726387165244*^9,
3.903971852825098*^9, 3.904336629052966*^9, 3.904556665826528*^9,
3.904660734636202*^9, 3.905083048189001*^9, 3.905285129053268*^9,
3.905441042720232*^9, 3.905782272103561*^9, 3.906106379419388*^9,
3.90620708413487*^9, 3.906558811905631*^9, 3.906635301595938*^9,
3.906908194396344*^9, 3.907055587466549*^9, 3.907452024145508*^9,
3.90783837173269*^9, 3.90797214412626*^9, 3.908034764359009*^9,
3.908469310792593*^9, 3.908732154353013*^9, 3.908732190062996*^9,
3.908901085229148*^9, {3.909427575397406*^9, 3.909427588602787*^9},
3.909612415221402*^9, 3.909847575834868*^9, 3.909936481017467*^9,
3.909991254378272*^9, 3.910005424673617*^9, 3.910456143107051*^9,
3.910647476573389*^9, 3.911433387460314*^9, 3.911728222756092*^9,
3.9118237070907784`*^9, 3.912544596386341*^9, 3.912962757486238*^9,
3.91332901505127*^9, 3.913585485561975*^9, 3.914191899559814*^9,
3.91452905381531*^9, 3.914864261401607*^9, 3.915353459292568*^9,
3.915612436883578*^9, 3.916243653217845*^9, 3.916581681635819*^9,
3.916758553791595*^9, 3.917042927532581*^9, 3.91779822205876*^9,
3.917830311292558*^9, 3.918163568568325*^9, 3.918587407268053*^9,
3.9190016728292847`*^9, 3.9195037040688963`*^9, 3.9198942834595957`*^9,
3.920234712218867*^9, 3.920662078423338*^9, 3.921093853155019*^9,
3.921237317218327*^9, 3.921696325797345*^9, 3.921851598339695*^9,
3.921851647511963*^9, {3.921851723783431*^9, 3.921851736631104*^9},
3.921851789631633*^9, 3.922439881880352*^9, 3.922748366740074*^9,
3.923045431914585*^9, 3.923572464604835*^9, 3.923778956655144*^9,
3.924544421212076*^9, 3.925203572822671*^9, 3.925848169754739*^9,
3.925848217744079*^9, 3.926438083805722*^9, {3.9264381205815907`*^9,
3.9264381421853952`*^9}, 3.9268502289991503`*^9, 3.927388977392035*^9,
3.92757446555766*^9, 3.92782075468937*^9, 3.927990566625127*^9,
3.928273181747738*^9, 3.928273253177276*^9, 3.928445235964464*^9,
3.928879595108038*^9, 3.929093886948715*^9, {3.9293606314921618`*^9,
3.929360652965334*^9}, 3.929714464833693*^9, 3.929988766810141*^9,
3.930079284149286*^9, 3.930510896991767*^9, 3.930510938300539*^9,
3.931113466961287*^9, {3.9313767836902103`*^9, 3.931376810889453*^9},
3.9316146196756153`*^9, {3.931804387786202*^9, 3.931804406214263*^9},
3.9321123856670113`*^9, 3.9323876432660027`*^9, 3.932802530588872*^9,
3.932934182040694*^9, 3.933185625332106*^9, 3.933683992394909*^9,
3.933944168693449*^9, 3.934049101145823*^9, 3.9341340358613033`*^9,
3.9344541086606693`*^9, 3.934663074849002*^9, 3.9349695431536903`*^9,
3.9352387720342407`*^9, 3.93550336171005*^9, 3.93586909609081*^9,
3.935941745580612*^9, 3.936030389292848*^9, 3.93628015526616*^9,
3.936444367786038*^9, 3.936805488935912*^9, 3.9369590965559273`*^9,
3.937168651459606*^9, 3.937300611594054*^9, 3.937489671622321*^9,
3.937558235442833*^9, 3.937671079329116*^9, 3.9377615200370893`*^9,
3.93785808991883*^9, 3.938034788460722*^9, 3.938290929252728*^9,
3.938718791109577*^9, 3.938985933523465*^9, 3.93932711736786*^9,
3.9395541667847223`*^9, 3.94002264823391*^9, 3.940365418251431*^9,
3.940587757835065*^9, 3.941041083594245*^9, 3.941391262071135*^9,
3.941465460154566*^9, 3.941819366459153*^9},
CellLabel->
"Out[214]=",ExpressionUUID->"18661ea8-0649-4b86-9166-5bb515bb6c0e"]
}, Open ]]
},
WindowSize->{1234, 1257},
WindowMargins->{{0, Automatic}, {Automatic, 0}},
FrontEndVersion->"14.1 for Mac OS X ARM (64-bit) (July 16, 2024)",
StyleDefinitions->"Default.nb",
ExpressionUUID->"a68abeaf-41ba-46e4-a91b-e09f414e080e"
]
(* End of Notebook Content *)
(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[583, 22, 168, 3, 29, "Input",ExpressionUUID->"7134d186-2f8f-4a5d-b8fd-e1205134ab62"],
Cell[754, 27, 1175, 17, 33, "Output",ExpressionUUID->"4b06b58f-c6fd-46c5-9e3c-858451a7bb05"]
}, Open ]],
Cell[1944, 47, 3247, 72, 151, "Input",ExpressionUUID->"e5e34011-aa3d-4e95-90b1-863054ac32f5"],
Cell[CellGroupData[{
Cell[5216, 123, 3849, 86, 417, "Input",ExpressionUUID->"55c17c4f-14a9-40f1-a01c-ab0b0c9b3309"],
Cell[9068, 211, 25070, 501, 461, "Output",ExpressionUUID->"18661ea8-0649-4b86-9166-5bb515bb6c0e"]
}, Open ]]
}
]
*)