Skip to content

Commit

Permalink
Ch 3 done, Ch 4 most, problem with vskip fixed
Browse files Browse the repository at this point in the history
Remains to fix space before warnings
  • Loading branch information
aphalo committed Sep 9, 2023
1 parent 12bd8f4 commit 726ab85
Show file tree
Hide file tree
Showing 32 changed files with 406,008 additions and 405,422 deletions.
Binary file added CRC-2nd-ed/krantz.cls-shashi1.zip
Binary file not shown.
Binary file modified CRC-2nd-ed/krantz.cls.zip
Binary file not shown.
217 changes: 154 additions & 63 deletions R.as.calculator.Rnw

Large diffs are not rendered by default.

428 changes: 428 additions & 0 deletions R.as.calculator.tex

Large diffs are not rendered by default.

19 changes: 15 additions & 4 deletions R.data.containers.Rnw
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,9 @@ Any \Rlang object can have attributes, allowing objects to carry along additiona

\section{Lists}\label{sec:calc:lists}
\index{lists|(}\qRclass{list}
\emph{Lists'} main difference from vectors is, in \Rlang, that they can be heterogeneous. While the member elements of a vector must be \emph{atomic} values, any \Rlang object can be a list member. In \Rlang, the members of a list can be considered as following a sequence, and accessible through numerical indexes, the same as members of vectors. Members of a list as well as members of a vector can be named, and retrieved (indexed) through their names. In practice, named lists are more frequently used than named vectors. Lists are created using function \Rfunction{list()} similarly as \Rfunction{c()} is used for vectors. Members of a list can be objects differing both in their class and in their size. Lists can be nested to construct lists of lists.
In \Rlang, objects of class \Rclass{list} are in several respects similar the vectors described in chapter \ref{chap:R:as:calc} but differently to vectors, the members they contain can be heterogeneous, i.e., different members of the same list can belong to different classes. In addition, while the member elements of a vector must be \emph{atomic} values like numbers or character strings, any \Rlang object can be a list member including other lists.

In \Rlang, the members of a list can be considered as following a sequence, and accessible through numerical indexes, the same as the members of vectors. Members of a list as well as members of a vector can be named, and retrieved (indexed) through their names. In practice, named lists are more frequently used than named vectors. Lists are created using function \Rfunction{list()} similarly as \Rfunction{c()} is used for vectors.

\begin{explainbox}
In \Rlang lists can have as members not only objects storing data on observations and categories, but also function definitions, model formulas, unevaluated expressions, matrices, arrays, and objects of user defined classes.
Expand Down Expand Up @@ -315,7 +317,8 @@ rm(list = setdiff(ls(pattern="*"), to.keep))
\section{Data frames}\label{sec:R:data:frames}
\index{data frames|(}\qRclass{data.frame}
\index{worksheet@`worksheet'|see{data frame}}
Data frames are a special type of list, in which each element is a vector or a factor of the same length (or rarely a matrix with the same number of rows as the enclosing data frame). They are central to most data manipulation and analysis procedures in \Rlang. They are commonly used to store observations, so that some columns (or member variables) are numeric vectors containing values from measurements and others are factors describing membership into a category, such as a treatment or genotype. Columns can also be date-, time-, character-, or logical vectors. In the diagram below column \code{treatment} is a factor with two levels encoding two conditions, \code{hot} and \code{cold}. Columns \code{height} and \code{weight} are numeric vectors containing measurements.
Data frames are a special type of list, in which all members have the same length, giving origin to a matrix-like object, in which columns can belong to different classes. Most commonly the member ``columns'' are vectors or factors, but they can also be matrices with the same number of rows as the enclosing data frame, or lists with the same number of members as rows in the enclosing data frame.
Data frames are central to most data manipulation and analysis procedures in \Rlang. They are commonly used to store observations, with \code{numeric} columns holding data for continuous variables and \code{factor} columns data for categorical variables. Binary variables can be stored in \code{logical} columns. Text data can be stored in \code{character} columns. Date and time can be stored in columns of specific classes, such as \code{POSIXct}. In the diagram below, column \code{treatment} is a factor with two levels encoding two conditions, \code{hot} and \code{cold}. Columns \code{height} and \code{weight} are numeric vectors containing measurements.

\begin{center}
\begin{footnotesize}
Expand Down Expand Up @@ -368,6 +371,8 @@ is.data.frame(a.df)
is.list(a.df)
@

We can see above that when printed each row of a \code{data.frame} is preceded by a row name. Row names are character strings, just like column names. The \Rfunction{data.frame()} constructor adds by default row names representing running numbers. Default row names are rarely of much use, except to track insertions and deletions of rows during debugging.

\begin{playground}
As the expectation is that all member variables (or ``columns'') have equal length, if vectors of different lengths are supplied as arguments, the shorter vector(s) is/are recycled, possibly several times, until the required full length is reached, as shown below for \code{treatment}.

Expand Down Expand Up @@ -853,7 +858,7 @@ detach(my_data_frame.df)
head(my_data_frame.df, 2)
@

Use of \Rscoping{attach()} and \Rscoping{detach()}, which function as a pair of ON and OFF switches, can result in an undesired after-effect on name lookup if the script terminates after \Rscoping{attach()} is executed but before \Rscoping{detach()} is called, as cleanup is not automatic. In contrast, \Rscoping{with()} and \Rscoping{within()}, being self-contained, guarantee that cleanup takes place. Consequently, the usual recommendation is to give preference to the use of \Rscoping{with()} and \Rscoping{within()} over \Rscoping{attach()} and \Rscoping{detach()}. Use of these functions not only saves typing but also makes code more readable.
Use of \Rscoping{attach()} and \Rscoping{detach()}, which function as a pair of ON and OFF switches, can result in an undesired after-effect on name lookup if the script terminates after \Rscoping{attach()} is executed but before \Rscoping{detach()} is called, as the attached object is not detached. In contrast, \Rscoping{with()} and \Rscoping{within()}, being self-contained, guarantee that cleanup takes place. Consequently, the usual recommendation is to give preference to the use of \Rscoping{with()} and \Rscoping{within()} over \Rscoping{attach()} and \Rscoping{detach()}. Use of these functions not only saves typing but also makes code more readable.
\end{explainbox}

\section{Reshaping and editing data frames}\label{sec:calc:reshape}
Expand Down Expand Up @@ -928,12 +933,18 @@ attributes(a.df)
\begin{explainbox}
The attributes used internally by \Rlang can be directly modified by user code. In most cases this is unnecessary as \Rlang provides pairs of functions to query and set the relevant attributes. This is true for the attributes \code{dim}, \code{names} and \code{levels}. In the example below we read the attributes from a matrix.

<<attibutes-ebx-01>>=
<<attibutes-ebx-01a>>=
M <- matrix(1:10, ncol = 2)
M
@

<<attibutes-ebx-01b>>=
attr(M, "dim")
attr(M, "dim") <- c(2, 5)
M
@

<<attibutes-ebx-01c>>=
attr(M, "dim") <- NULL
is.vector(M)
M
Expand Down
6 changes: 3 additions & 3 deletions R.learning.Rnw
Original file line number Diff line number Diff line change
Expand Up @@ -66,16 +66,16 @@ Signals \emph{advanced playgrounds} sections that require more time to play with

\subsection{Code conventions and syntax highlighting}

Small sections of program code interspersed within the main text, receive the name of \emph{code chunks}. In this book \Rlang code chunks are typeset in a typewriter font, using colour to highlight the different elements of the syntax, such as variables, functions, constant values, etc. \Rlang code elements embedded in the text are similarly typeset but always black. For example in the code chunk below \code{mean()} and \code{print()} are functions; 1, 5 and 3 are constant numeric values, and \code{z} is the name of a variable where the result of the computation done in the first line of code is stored. The line starting with \code{\#\# } shows what is printed or shown when executing the second statement: \code{[1] 1}. In the book \code{\#\# } is used as a marker to signal output from \Rlang, it is not part of the output.
Small sections of program code interspersed within the main text, receive the name of \emph{code chunks}. In this book \Rlang code chunks are typeset in a typewriter font, using colour to highlight the different elements of the syntax, such as variables, functions, constant values, etc. \Rlang code elements embedded in the text are similarly typeset but always black. For example in the code chunk below \code{mean()} and \code{print()} are functions; 1, 5 and 3 are constant numeric values, and \code{z} is the name of a variable where the result of the computation done in the first line of code is stored. The line starting with \code{\#\#} shows what is printed or shown when executing the second statement: \code{[1] 1}. In the book \code{\#\#} is used as a marker to signal output from \Rlang, it is not part of the output. As \code{\#} is the marker for comments in the \Rlang language, prepending \code{\#} to the output makes it possible to copy and pasted into the \Rlang console the whole contents of the code chunks as they appear in the book.

<<syntax-highlight-1>>=
z <- mean(1, 5, 3)
print(z)
@

When naming objects (or variables) when explaining general concepts I use short abstract names, while for real-life examples I use meaningful names. Although not required, for clarity, I use names hinting at the structure of objects stored, such as \code{mat1} for a matrix.
When explaining general concepts I use short abstract names, while for real-life examples I use descriptive names. Although not required, for clarity, I use abstract names that hint at the structure of objects stored, such as \code{mat1} for a matrix or \code{vct4} for a vector.

Code in playgrounds does not modify objects created by code examples listed outside playgrounds, and is self-contained in the sense that if earlier code is use, this is mentioned in the text of the playground. The code outside playgrounds does reuse objects created earlier in the same chapter, but is independent from code or data used in earlier chapters.
Code in playgrounds either works in isolation or if it depends on objects created in the examples in the main text, this is mentioned within the playground. In playgrounds I use names in capital letters so that they are distinct. The code outside playgrounds does reuse objects created earlier in the same section, and occasionally in earlier sections of the same chapter.

\subsection{Diagrams}

Expand Down
50 changes: 28 additions & 22 deletions appendixes.prj
Original file line number Diff line number Diff line change
Expand Up @@ -4,67 +4,73 @@
1
1
using-r-main-crc.Rnw
20
15
6
22
17
7

using-r-main-crc.Rnw
TeX:RNW:UTF-8
134217730 0 191 13 191 17 6074 -1 6458 208 1 1 372 350 1 906 254 255 -1 0 0 33 1 0 17 191 0 -1 0
134217730 0 114 45 114 47 6074 -1 6458 208 1 1 793 825 1 906 254 255 -1 0 0 33 1 0 47 114 0 -1 0
using-r-main-crc.tex
TeX
1060859 0 -1 110482 -1 110454 152 152 1845 1073 1 1 148 925 -1 -1 0 0 49 -1 -1 49 1 0 110454 -1 0 -1 0
rbooks.bib
BibTeX
1049586 0 667 7 905 56 38 38 1429 959 1 1 918 1300 -1 -1 0 0 21 0 0 21 1 0 56 905 0 -1 0
references.bib
BibTeX
1049586 0 122 22 113 22 76 76 1467 997 1 1 442 1275 -1 -1 0 0 23 0 0 23 1 0 22 113 0 -1 0
preface.Rnw
TeX:RNW
1060859 2 -1 20 -1 0 266 266 1252 1324 1 1 148 0 -1 -1 0 0 18 -1 -1 18 1 0 0 -1 0 -1 0
R.learning.Rnw
TeX:RNW
17838075 0 -1 7751 -1 8096 304 304 1290 1362 1 1 1436 650 -1 -1 0 0 40 -1 -1 40 1 0 8096 -1 0 -1 0
17838075 0 -1 9191 -1 9189 304 304 1290 1362 1 1 1702 275 -1 -1 0 0 40 -1 -1 40 1 0 9189 -1 0 -1 0
R.intro.Rnw
TeX:RNW
17838075 0 -1 264 -1 204 228 228 1214 1286 1 1 372 200 -1 -1 0 0 30 -1 -1 30 1 0 204 -1 0 -1 0
R.as.calculator.Rnw
preface.Rnw
TeX:RNW
286273531 0 -1 50222 -1 50225 190 190 1324 1242 1 1 1156 700 -1 -1 0 0 31 -1 -1 31 3 0 50225 -1 1 113423 -1 2 16514 -1 0 -1 0
1060859 0 -1 7713 -1 7699 266 266 1252 1324 1 1 848 850 -1 -1 0 0 18 -1 -1 18 1 0 7699 -1 0 -1 0
R.data.containers.Rnw
TeX:RNW
17838075 2 -1 45562 -1 45568 190 190 1324 1242 1 1 302 1075 -1 -1 0 0 31 -1 -1 31 3 0 45568 -1 1 192 -1 2 192 -1 0 -1 0
286273531 0 -1 59926 -1 59926 190 190 1324 1242 1 1 148 900 -1 -1 0 0 31 -1 -1 31 3 0 59926 -1 1 192 -1 2 192 -1 0 -1 0
R.scripts.Rnw
TeX:RNW
17838075 2 -1 79617 -1 79591 152 152 1138 1210 1 1 148 650 -1 -1 0 0 31 -1 -1 31 2 0 79591 -1 1 57446 -1 0 -1 0
17838075 2 -1 10920 -1 10923 152 152 1138 1210 1 1 1870 475 -1 -1 0 0 31 -1 -1 31 2 0 10923 -1 1 57446 -1 0 -1 0
R.functions.Rnw
TeX:RNW
17838075 2 -1 31563 -1 31569 456 456 1442 1484 1 1 302 1025 -1 -1 0 0 31 -1 -1 31 1 0 31569 -1 0 -1 0
R.stats.rnw
TeX:RNW
17838075 2 -1 16950 -1 16956 418 418 1404 1476 1 1 302 725 -1 -1 0 0 31 -1 -1 31 1 0 16956 -1 0 -1 0
17838075 0 -1 22706 -1 24735 418 418 1404 1476 1 1 862 950 -1 -1 0 0 31 -1 -1 31 1 0 24735 -1 0 -1 0
R.data.Rnw
TeX:RNW
1060859 0 -1 51366 -1 51369 342 342 1328 1400 1 1 330 475 -1 -1 0 0 31 -1 -1 31 1 0 51369 -1 0 -1 0
1060859 2 -1 56079 -1 56083 342 342 1328 1400 1 1 204 1125 -1 -1 0 0 31 -1 -1 31 1 0 56083 -1 0 -1 0
R.plotting.Rnw
TeX:RNW
17838075 0 -1 154851 -1 154850 380 380 1366 1438 1 1 357 650 -1 -1 0 0 31 -1 -1 31 1 0 154850 -1 0 -1 0
17838075 2 -1 226474 -1 226478 380 380 1366 1438 1 1 204 1225 -1 -1 0 0 31 -1 -1 31 1 0 226478 -1 0 -1 0
R.data.io.Rnw
TeX:RNW
17838075 0 -1 60315 -1 60319 494 494 1480 1522 1 1 484 450 -1 -1 0 0 31 -1 -1 31 1 0 60319 -1 0 -1 0
17838075 0 -1 71503 -1 71653 494 494 1480 1522 1 1 148 1300 -1 -1 0 0 31 -1 -1 31 1 0 71653 -1 0 -1 0
usingr.sty
TeX:STY
1060850 2 171 17 171 23 190 190 1176 1248 1 0 437 1275 -1 -1 0 0 25 0 0 25 1 0 23 171 0 0 0
using-r-main-crc.tex
1060850 0 182 36 182 36 190 190 1176 1248 1 0 619 1025 -1 -1 0 0 25 0 0 25 1 0 36 182 0 0 0
R.as.calculator.Rnw
TeX:RNW
17838075 0 -1 142192 -1 141977 190 190 1324 1242 1 1 414 -116 -1 -1 0 0 31 -1 -1 31 3 0 141977 -1 1 117232 -1 2 16952 -1 0 -1 0
knitr.sty
TeX:STY
1060850 0 29 1 29 1 380 380 2073 1301 1 0 129 725 -1 -1 0 0 45 0 0 45 1 0 1 29 0 0 0
R.as.calculator.tex
TeX
269496315 8 -1 225626 -1 225610 342 342 2035 1263 1 1 148 650 -1 -1 0 0 49 -1 -1 49 1 0 225610 -1 0 -1 0
269496315 0 -1 0 -1 0 76 76 1769 997 1 1 148 0 -1 -1 0 0 -1 -1 -1 -1 1 0 0 -1 0 0 0
krantz.cls
TeX:STY:UNIX
269594610 1 194 1 194 36 76 76 1062 1134 1 0 619 625 -1 -1 0 0 3 0 0 3 1 0 36 194 0 0 0
using-r-main-crc.log
DATA:UNIX
307331314 0 3376 1 1771 1 304 304 1997 1225 1 0 129 800 -1 -1 0 0 -1 -1 -1 -1 1 0 1 1771 0 0 0
:\Program Files\MiKTeX\tex\latex\biblatex\biblatex.sty
TeX:STY:UNIX
269594610 0 47 12 45 39 152 152 1845 1073 1 0 661 -375 -1 -1 0 0 42 0 0 42 1 0 39 45 0 0 0
krantz.cls
TeX:STY:UNIX
269594610 1 1082 1 1083 1 76 76 1062 1134 1 0 129 2325 -1 -1 0 0 3 0 0 3 1 0 1 1083 0 0 0
:\Users\Public\Desktop\Lenovo ThinkColor.lnk
DATA
273744114 0 0 1 2 1 190 190 1549 1111 1 0 129 50 -1 -1 0 0 -1 -1 -1 -1 1 0 1 2 0 0 0
Expand Down
50 changes: 28 additions & 22 deletions appendixes.prj.bak
Original file line number Diff line number Diff line change
Expand Up @@ -4,67 +4,73 @@
1
1
using-r-main-crc.Rnw
20
15
6
22
17
7

using-r-main-crc.Rnw
TeX:RNW:UTF-8
134217730 0 191 13 191 17 6074 -1 6458 208 1 1 372 350 1 906 254 255 -1 0 0 33 1 0 17 191 0 -1 0
134217730 0 114 45 114 47 6074 -1 6458 208 1 1 793 825 1 906 254 255 -1 0 0 33 1 0 47 114 0 -1 0
using-r-main-crc.tex
TeX
1060859 0 -1 110482 -1 110454 152 152 1845 1073 1 1 148 925 -1 -1 0 0 49 -1 -1 49 1 0 110454 -1 0 -1 0
rbooks.bib
BibTeX
1049586 0 667 7 905 56 38 38 1429 959 1 1 918 1300 -1 -1 0 0 21 0 0 21 1 0 56 905 0 -1 0
references.bib
BibTeX
1049586 0 122 22 113 22 76 76 1467 997 1 1 442 1275 -1 -1 0 0 23 0 0 23 1 0 22 113 0 -1 0
preface.Rnw
TeX:RNW
1060859 2 -1 20 -1 0 266 266 1252 1324 1 1 148 0 -1 -1 0 0 18 -1 -1 18 1 0 0 -1 0 -1 0
R.learning.Rnw
TeX:RNW
17838075 0 -1 7751 -1 8096 304 304 1290 1362 1 1 1436 650 -1 -1 0 0 40 -1 -1 40 1 0 8096 -1 0 -1 0
17838075 0 -1 9191 -1 9189 304 304 1290 1362 1 1 1702 275 -1 -1 0 0 40 -1 -1 40 1 0 9189 -1 0 -1 0
R.intro.Rnw
TeX:RNW
17838075 0 -1 264 -1 204 228 228 1214 1286 1 1 372 200 -1 -1 0 0 30 -1 -1 30 1 0 204 -1 0 -1 0
R.as.calculator.Rnw
preface.Rnw
TeX:RNW
286273531 0 -1 50090 -1 50217 190 190 1324 1242 1 1 162 725 -1 -1 0 0 31 -1 -1 31 3 0 50217 -1 1 113412 -1 2 16514 -1 0 -1 0
1060859 0 -1 7713 -1 7699 266 266 1252 1324 1 1 848 850 -1 -1 0 0 18 -1 -1 18 1 0 7699 -1 0 -1 0
R.data.containers.Rnw
TeX:RNW
17838075 2 -1 45562 -1 45568 190 190 1324 1242 1 1 302 1075 -1 -1 0 0 31 -1 -1 31 3 0 45568 -1 1 192 -1 2 192 -1 0 -1 0
286273531 0 -1 59926 -1 59926 190 190 1324 1242 1 1 148 900 -1 -1 0 0 31 -1 -1 31 3 0 59926 -1 1 192 -1 2 192 -1 0 -1 0
R.scripts.Rnw
TeX:RNW
17838075 2 -1 79617 -1 79591 152 152 1138 1210 1 1 148 650 -1 -1 0 0 31 -1 -1 31 2 0 79591 -1 1 57446 -1 0 -1 0
17838075 2 -1 10920 -1 10923 152 152 1138 1210 1 1 1870 475 -1 -1 0 0 31 -1 -1 31 2 0 10923 -1 1 57446 -1 0 -1 0
R.functions.Rnw
TeX:RNW
17838075 2 -1 31563 -1 31569 456 456 1442 1484 1 1 302 1025 -1 -1 0 0 31 -1 -1 31 1 0 31569 -1 0 -1 0
R.stats.rnw
TeX:RNW
17838075 2 -1 16950 -1 16956 418 418 1404 1476 1 1 302 725 -1 -1 0 0 31 -1 -1 31 1 0 16956 -1 0 -1 0
17838075 0 -1 22706 -1 24735 418 418 1404 1476 1 1 862 950 -1 -1 0 0 31 -1 -1 31 1 0 24735 -1 0 -1 0
R.data.Rnw
TeX:RNW
1060859 0 -1 51366 -1 51369 342 342 1328 1400 1 1 330 475 -1 -1 0 0 31 -1 -1 31 1 0 51369 -1 0 -1 0
1060859 2 -1 56079 -1 56083 342 342 1328 1400 1 1 204 1125 -1 -1 0 0 31 -1 -1 31 1 0 56083 -1 0 -1 0
R.plotting.Rnw
TeX:RNW
17838075 0 -1 154851 -1 154850 380 380 1366 1438 1 1 357 650 -1 -1 0 0 31 -1 -1 31 1 0 154850 -1 0 -1 0
17838075 2 -1 226474 -1 226478 380 380 1366 1438 1 1 204 1225 -1 -1 0 0 31 -1 -1 31 1 0 226478 -1 0 -1 0
R.data.io.Rnw
TeX:RNW
17838075 0 -1 60315 -1 60319 494 494 1480 1522 1 1 484 450 -1 -1 0 0 31 -1 -1 31 1 0 60319 -1 0 -1 0
17838075 0 -1 71503 -1 71653 494 494 1480 1522 1 1 148 1300 -1 -1 0 0 31 -1 -1 31 1 0 71653 -1 0 -1 0
usingr.sty
TeX:STY
1060850 2 171 17 171 23 190 190 1176 1248 1 0 437 1275 -1 -1 0 0 25 0 0 25 1 0 23 171 0 0 0
using-r-main-crc.tex
1060850 0 182 36 182 36 190 190 1176 1248 1 0 619 1025 -1 -1 0 0 25 0 0 25 1 0 36 182 0 0 0
R.as.calculator.Rnw
TeX:RNW
17838075 0 -1 142192 -1 141977 190 190 1324 1242 1 1 414 -116 -1 -1 0 0 31 -1 -1 31 3 0 141977 -1 1 117232 -1 2 16952 -1 0 -1 0
knitr.sty
TeX:STY
1060850 0 29 1 29 1 380 380 2073 1301 1 0 129 725 -1 -1 0 0 45 0 0 45 1 0 1 29 0 0 0
R.as.calculator.tex
TeX
269496315 8 -1 225626 -1 225610 342 342 2035 1263 1 1 148 650 -1 -1 0 0 49 -1 -1 49 1 0 225610 -1 0 -1 0
269496315 0 -1 0 -1 0 76 76 1769 997 1 1 148 0 -1 -1 0 0 -1 -1 -1 -1 1 0 0 -1 0 0 0
krantz.cls
TeX:STY:UNIX
269594610 1 194 1 194 36 76 76 1062 1134 1 0 619 625 -1 -1 0 0 3 0 0 3 1 0 36 194 0 0 0
using-r-main-crc.log
DATA:UNIX
307331314 0 3376 1 1771 1 304 304 1997 1225 1 0 129 800 -1 -1 0 0 -1 -1 -1 -1 1 0 1 1771 0 0 0
:\Program Files\MiKTeX\tex\latex\biblatex\biblatex.sty
TeX:STY:UNIX
269594610 0 47 12 45 39 152 152 1845 1073 1 0 661 -375 -1 -1 0 0 42 0 0 42 1 0 39 45 0 0 0
krantz.cls
TeX:STY:UNIX
269594610 1 1082 1 1083 1 76 76 1062 1134 1 0 129 2325 -1 -1 0 0 3 0 0 3 1 0 1 1083 0 0 0
:\Users\Public\Desktop\Lenovo ThinkColor.lnk
DATA
273744114 0 0 1 2 1 190 190 1549 1111 1 0 129 50 -1 -1 0 0 -1 -1 -1 -1 1 0 1 2 0 0 0
Expand Down
Loading

0 comments on commit 726ab85

Please sign in to comment.