Skip to content

Commit

Permalink
try yet again.
Browse files Browse the repository at this point in the history
  • Loading branch information
achubaty committed Feb 1, 2019
1 parent c85b569 commit 4eed037
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion CRAN-RELEASE
@@ -1,2 +1,2 @@
This package was submitted to CRAN on 2019-02-01.
Once it is accepted, delete this file and tag the release (commit ff96a8f17f).
Once it is accepted, delete this file and tag the release (commit c85b569478).

1 comment on commit 4eed037

@lintr-bot
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

inst/examples/example_experiment.R:91:5: style: Commented code should be removed.

# library(raster)
    ^~~~~~~~~~~~~~~

inst/examples/example_experiment.R:92:5: style: Commented code should be removed.

# beginCluster(20) # if you have multiple clusters available, use them here to save time
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/examples/example_experiment.R:96:5: style: Commented code should be removed.

# endCluster() # end the clusters
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/examples/example_experiment.R:152:5: style: Commented code should be removed.

# fires <- lapply(sims, function(x) x$landscape$fires) %>% stack
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/examples/example_POM.R:48:5: style: Commented code should be removed.

# cl <- makeCluster(detectCores() - 1) # not implemented yet in DEoptim
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/examples/example_POM.R:83:4: style: Commented code should be removed.

#stopCluster(cl) # not yet implemented, waiting for DEoptim
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/examples/example_POM.R:106:34: style: Variable or function name should be lowerCamelCase.

​    params(sim1)$caribouMovement$N <- pars[2]
                                 ^

inst/examples/example_POM.R:113:5: style: Variable or function name should be lowerCamelCase.

nPattern_Out <- caribouFn(out$caribou)
    ^~~~~~~~~~~~

inst/examples/example_POM.R:119:7: style: Commented code should be removed.

# cat(minimizeFn)
      ^~~~~~~~~~~~~~~

inst/examples/example_POM.R:120:7: style: Commented code should be removed.

# cat(" ")
      ^~~~~~~~

inst/examples/example_POM.R:121:7: style: Commented code should be removed.

# cat(pars)
      ^~~~~~~~~

inst/examples/example_POM.R:122:7: style: Commented code should be removed.

# cat("\n")
      ^~~~~~~~~

inst/sampleModules/caribouMovement/caribouMovement.R:1:1: style: Variable or function name should be lowerCamelCase.

SpaDES.core.version <- "0.1.0"
^~~~~~~~~~~~~~~~~~~

inst/sampleModules/caribouMovement/caribouMovement.R:54:1: style: Variable or function name should be lowerCamelCase.

doEvent.caribouMovement <- function(sim, eventTime, eventType, debug = FALSE) {
^~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/caribouMovement/caribouMovement.R:78:1: style: Lines should not be more than 100 characters.

sim <- scheduleEvent(sim, time(sim) + SpaDES.core::P(sim)$moveInterval, "caribouMovement", "move")
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/caribouMovement/caribouMovement.R:82:1: style: Lines should not be more than 100 characters.

​      Plot(sim$caribou, addTo = paste("sim", SpaDES.core::P(sim)$stackName, "habitatQuality", sep = "$"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/caribouMovement/caribouMovement.R:86:1: style: Lines should not be more than 100 characters.

sim <- scheduleEvent(sim, time(sim) + SpaDES.core::P(sim)$.plotInterval, "caribouMovement", "plot", .last())
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/caribouMovement/caribouMovement.R:90:1: style: Lines should not be more than 100 characters.

​      Plot(sim$caribou, addTo = paste("sim", SpaDES.core::P(sim)$stackName, "habitatQuality", sep = "$"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/caribouMovement/caribouMovement.R:95:1: style: Lines should not be more than 100 characters.

sim <- scheduleEvent(sim, time(sim) + SpaDES.core::P(sim)$.plotInterval, "caribouMovement", "plot", .last())
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/caribouMovement/caribouMovement.R:102:1: style: Lines should not be more than 100 characters.

sim <- scheduleEvent(sim, time(sim) + SpaDES.core::P(sim)$.saveInterval, "caribouMovement", "save", .last() + 1)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/caribouMovement/caribouMovement.R:114:1: style: Variable or function name should be lowerCamelCase.

Init <- function(sim) {
^~~~

inst/sampleModules/caribouMovement/caribouMovement.R:121:3: style: Variable or function name should be lowerCamelCase.

N <- SpaDES.core::P(sim)$N
  ^

inst/sampleModules/caribouMovement/caribouMovement.R:122:3: style: Variable or function name should be lowerCamelCase.

IDs <- as.character(1:N)
  ^~~

inst/sampleModules/caribouMovement/caribouMovement.R:138:1: style: Variable or function name should be lowerCamelCase.

Move <- function(sim) {
^~~~

inst/sampleModules/fireSpread/fireSpread.R:1:1: style: Variable or function name should be lowerCamelCase.

SpaDES.core.version <- "0.1.0"
^~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:20:1: style: Lines should not be more than 100 characters.

​    person(c("Alex", "M"), "Chubaty", email = "alexander.chubaty@canada.ca", role = c("aut", "cre")),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:21:1: style: Lines should not be more than 100 characters.

​    person(c("Eliot", "J", "B"), "McIntire", email = "eliot.mcintire@canada.ca", role = c("aut", "cre")),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:35:1: style: Lines should not be more than 100 characters.

​    defineParameter("persistprob", "numeric", 0.00, 0, 1, "probability of fire persisting in a pixel"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:37:1: style: Lines should not be more than 100 characters.

​    defineParameter("spreadprob", "numeric", 0.225, 0.05, 0.5, "probability of fire spreading into a pixel"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:38:1: style: Lines should not be more than 100 characters.

​    defineParameter("startTime", "numeric", start(sim) + 1, 0, end(sim), "time of initial fire ignition"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:39:1: style: Lines should not be more than 100 characters.

​    defineParameter(".plotInitialTime", "numeric", start(sim), start(sim), end(sim) + 1, "time to schedule first plot event"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:41:1: style: Lines should not be more than 100 characters.

​    defineParameter(".saveInitialTime", "numeric", NA_real_, NA, NA, "time to schedule first save event"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:42:1: style: Lines should not be more than 100 characters.

​    defineParameter(".saveInterval", "numeric", NA_real_, NA, NA, "time interval between save events")
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:45:1: style: Lines should not be more than 100 characters.

​    expectsInput(objectName = SpaDES.core::P(sim, "fireSpread")$stackName, objectClass = "RasterStack",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:51:1: style: Lines should not be more than 100 characters.

​    createsOutput(objectName = SpaDES.core::P(sim, "fireSpread")$stackName, objectClass = "RasterStack",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:59:1: style: Variable or function name should be lowerCamelCase.

doEvent.fireSpread <- function(sim, eventTime, eventType, debug = FALSE) {
^~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:80:1: style: Lines should not be more than 100 characters.

sim <- scheduleEvent(sim, SpaDES.core::P(sim)$.plotInitialTime, "fireSpread", "plot.init", .last())
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:87:1: style: Lines should not be more than 100 characters.

sim <- scheduleEvent(sim, time(sim), "fireSpread", "stats") # do stats immediately following burn
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:88:1: style: Lines should not be more than 100 characters.

sim <- scheduleEvent(sim, time(sim) + SpaDES.core::P(sim)$returnInterval, "fireSpread", "burn")
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:108:1: style: Lines should not be more than 100 characters.

stackName <- SpaDES.core::P(sim)$stackName # Plot doesn't like long names -- create local variable
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/fireSpread/fireSpread.R:143:1: style: Variable or function name should be lowerCamelCase.

Init <- function(sim) {
^~~~

inst/sampleModules/fireSpread/fireSpread.R:147:3: style: Variable or function name should be lowerCamelCase.

Fires <- raster(extent(landscapes), ncol = ncol(landscapes),
  ^~~~~

inst/sampleModules/fireSpread/fireSpread.R:151:3: style: Variable or function name should be lowerCamelCase.

Fires <- setValues(Fires, 0)
  ^~~~~

inst/sampleModules/fireSpread/fireSpread.R:154:14: style: Variable or function name should be lowerCamelCase.

landscapes$Fires <- Fires
             ^~~~~

inst/sampleModules/fireSpread/fireSpread.R:160:1: style: Variable or function name should be lowerCamelCase.

Burn <- function(sim) {
^~~~

inst/sampleModules/fireSpread/fireSpread.R:163:3: style: Variable or function name should be lowerCamelCase.

Fires <- spread(landscapes[[1]],
  ^~~~~

inst/sampleModules/fireSpread/fireSpread.R:175:14: style: Variable or function name should be lowerCamelCase.

landscapes$Fires <- Fires
             ^~~~~

inst/sampleModules/fireSpread/fireSpread.R:182:1: style: Variable or function name should be lowerCamelCase.

Stats <- function(sim) {
^~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:1:1: style: Variable or function name should be lowerCamelCase.

SpaDES.core.version <- "0.1.0"
^~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:33:1: style: Lines should not be more than 100 characters.

​    defineParameter("inRAM", "logical", FALSE, TRUE, FALSE, "should the raster be stored in memory?"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:34:1: style: Lines should not be more than 100 characters.

​    defineParameter("nx", "numeric", 100L, 10L, 500L, "size of map (number of pixels) in the x dimension"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:35:1: style: Lines should not be more than 100 characters.

​    defineParameter("ny", "numeric", 100L, 10L, 500L, "size of map (number of pixels) in the y dimension"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:37:1: style: Lines should not be more than 100 characters.

​    defineParameter(".plotInitialTime", "numeric", start(sim), start(sim), NA, "time to schedule first plot event"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:38:1: style: Lines should not be more than 100 characters.

​    defineParameter(".plotInterval", "numeric", NA_real_, NA, NA, "time interval between plot events"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:39:1: style: Lines should not be more than 100 characters.

​    defineParameter(".saveInitialTime", "numeric", NA_real_, NA, NA, "time to schedule first save event"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:40:1: style: Lines should not be more than 100 characters.

​    defineParameter(".saveInterval", "numeric", NA_real_, NA, NA, "time interval between save events"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:41:1: style: Lines should not be more than 100 characters.

​    defineParameter(".useCache", "logical", FALSE, c("init", "plot"), NA, "should the module result be cached for future use")
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:49:1: style: Lines should not be more than 100 characters.

​    createsOutput(objectName = SpaDES.core::P(sim, "randomLandscapes")$stackName, objectClass = "RasterStack",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:55:1: style: Variable or function name should be lowerCamelCase.

doEvent.randomLandscapes <- function(sim, eventTime, eventType, debug = FALSE) {
^~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:63:1: style: Lines should not be more than 100 characters.

sim <- scheduleEvent(sim, SpaDES.core::P(sim)$.plotInitialTime, "randomLandscapes", "plot", .last())
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:64:1: style: Lines should not be more than 100 characters.

sim <- scheduleEvent(sim, SpaDES.core::P(sim)$.saveInitialTime, "randomLandscapes", "save", .last() + 1)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:76:1: style: Lines should not be more than 100 characters.

sim <- scheduleEvent(sim, time(sim) + SpaDES.core::P(sim)$.saveInterval, "randomLandscapes", "save", .last() + 1)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:87:1: style: Variable or function name should be lowerCamelCase.

Init <- function(sim) {
^~~~

inst/sampleModules/randomLandscapes/randomLandscapes.R:101:5: style: Variable or function name should be lowerCamelCase.

DEM <- gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
    ^~~

inst/sampleModules/SpaDES_sampleModules/SpaDES_sampleModules.R:17:1: style: Lines should not be more than 100 characters.

​    defineParameter(".plotInitialTime", "numeric", NA_real_, NA, NA, "This describes the simulation time at which the first plot event should occur"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

inst/sampleModules/SpaDES_sampleModules/SpaDES_sampleModules.R:18:1: style: Lines should not be more than 100 characters.

​    defineParameter(".saveInitialTime", "numeric", NA_real_, NA, NA, "This describes the simulation time at which the first save event should occur")
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:83:6: style: Commented code should be removed.

#names(envirHash) <- names(allObjsInSimList)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:132:22: style: Variable or function name should be lowerCamelCase.

obj$.list[[1]]$._startClockTime <- NULL
                     ^~~~~~~~~~~~~~~~

R/cache.R:133:22: style: Variable or function name should be lowerCamelCase.

obj$.list[[1]]$._timestamp <- NULL
                     ^~~~~~~~~~~

R/cache.R:241:50: style: Commas should always have a space after.

​          cat(crayon::blue("  Using ", fromWhere," copy of", cur$moduleName, "module\n"))
                                                 ^

R/cache.R:254:50: style: Commas should always have a space after.

​          cat(crayon::blue("  Using ", fromWhere," copy of", cur$eventType, "event in",
                                                 ^

R/cache.R:304:10: style: Commented code should be removed.

#checkPath(cacheRepo, create = TRUE) #SpaDES dependency
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:346:8: style: Commented code should be removed.

#attr(object, ".Cache")$newCache <- NULL
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:364:1: style: Lines should not be more than 100 characters.

​        which(internalSimList)[1] # this can be wrongly of length > 1 -- unclear why, but should be safe to take 1st
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:373:1: style: Lines should not be more than 100 characters.

pre <- lapply(preDigest[[whSimList]]$.list[[whSimList2]][existingObjs], fastdigest::fastdigest)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:381:6: style: Commented code should be removed.

#attr(object, ".Cache")$changed <- changed
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:455:1: style: Lines should not be more than 100 characters.

#   makes soft copy of all objects, i.e., they have the identical objects, which are pointers only
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:471:1: style: Lines should not be more than 100 characters.

createOutputs <- c(createOutputs, currModules) # add the environments for each module - allow local objects
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:487:36: style: Put spaces around all infix operators.

if (length(object2@current)==0) { # means it is not in a spades call
                                  ~^~~

R/cache.R:487:41: style: Opening curly braces should never go on their own line and should always be followed by a new line.

if (length(object2@current)==0) { # means it is not in a spades call
                                        ^

R/cache.R:496:63: style: Put spaces around all infix operators.

eventsAddedByThisModule <- events(object)$moduleName==current(object2)$moduleName
                                                             ~^~~

R/cache.R:500:42: style: Opening curly braces should never go on their own line and should always be followed by a new line.

b <- lapply(b, function(x) {x[["order"]] <- 2; x})
                                         ^

R/cache.R:503:42: style: Opening curly braces should never go on their own line and should always be followed by a new line.

d <- lapply(d, function(x) {x[["order"]] <- 1; x})
                                         ^

R/cache.R:510:1: style: Lines should not be more than 100 characters.

#              args = list(append(object@events[eventsAddedByThisModule], object2@events)))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:513:56: style: Opening curly braces should never go on their own line and should always be followed by a new line.

object2@events <- lapply(f1, function(f) {f$order <- NULL; f})
                                                       ^

R/cache.R:515:1: style: Lines should not be more than 100 characters.

#                           args = list(append(object@events[eventsAddedByThisModule], object2@events)))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:518:12: style: Commented code should be removed.

#object2@events <- unique(rbindlist(list(object@events, object2@events)))
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:522:1: style: Lines should not be more than 100 characters.

# This is for objects that are not in the return environment yet because they are unrelated to the
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:535:10: style: Place a space before left parenthesis, except in a function call.

for(atts in attrsToGrab) {
         ^

R/cache.R:537:10: style: Commented code should be removed.

#attr(object2, atts) <- attr(object, atts)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:573:66: style: Variable or function name should be lowerCamelCase.

setGeneric(".addTagsToOutput", function(object, outputObjects, FUN) {
                                                                 ^~~

R/cache.R:596:48: style: Variable or function name should be lowerCamelCase.

definition = function(object, outputObjects, FUN, preDigestByClass) {
                                               ^~~

R/cache.R:607:8: style: Commented code should be removed.

#attr(outputToSave, "tags") <- attr(object, "tags")
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:608:8: style: Commented code should be removed.

#attr(outputToSave, "call") <- attr(object, "call")
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:611:11: style: Commented code should be removed.

# attr(outputToSave, "function") <- attr(object, "function")
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:699:1: style: Variable or function name should be lowerCamelCase.

objSize.simList <- function(x, quick = getOption("reproducible.quick", FALSE)) {
^~~~~~~~~~~~~~~

R/cache.R:725:1: style: Variable or function name should be lowerCamelCase.

makeMemoisable.simList <- function(x) {
^~~~~~~~~~~~~~~~~~~~~~

R/cache.R:733:1: style: Variable or function name should be lowerCamelCase.

unmakeMemoisable.simList_ <- function(x) {
^~~~~~~~~~~~~~~~~~~~~~~~~

R/cache.R:758:6: style: Commented code should be removed.

#attr(y, att) <- attr(x, att)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/check.R:151:7: style: Commented code should be removed.

# modules <- sim@modules
      ^~~~~~~~~~~~~~~~~~~~~~

R/check.R:152:7: style: Commented code should be removed.

# userModules <- modules[-which(coreModules %in% modules)]
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/checkpoint.R:36:1: style: Variable or function name should be lowerCamelCase.

doEvent.checkpoint <- function(sim, eventTime, eventType, debug = FALSE) {
^~~~~~~~~~~~~~~~~~

R/code-checking.R:86:1: style: Lines should not be more than 100 characters.

xAsCall <- .isLastLineSim(x = x, xAsString = bb[seq(funStarts[yy], funEnds[yy + 1])])
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/code-checking.R:90:16: style: Commented code should be removed.

#y = strsplit(bb[funStarts[yy]], split = "\\s+")[[1]][1]
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/code-checking.R:91:53: style: Commas should always have a space after.

y <- paste0(cantCodeCheckMessage, "'",bb[funStarts[yy]], "'")
                                                    ^

R/code-checking.R:144:39: style: Opening curly braces should never go on their own line and should always be followed by a new line.

if (identical(type, "returnSim")) { # This is intended for only the last line of a function
                                      ^

R/code-checking.R:182:48: style: Do not place spaces around code in parentheses or square brackets.

​      } else if (identical(x[[1]], quote(`<-`)) ) {
                                               ^

R/code-checking.R:185:62: style: Opening curly braces should never go on their own line and should always be followed by a new line.

if (any(grepl(x[[2]][[2]], pattern = ".xData"))) {# i.e., sim@.xData
                                                             ^

R/code-checking.R:202:19: style: Place a space before left parenthesis, except in a function call.

x <- x[-(1:2)]
                  ^

R/code-checking.R:218:29: style: Place a space before left parenthesis, except in a function call.

x[[2]] <- x[[2]][-(1:2)]
                            ^

R/code-checking.R:319:1: style: Lines should not be more than 100 characters.

allChecks[anyCantCodeCheck] <- lapply(names(cantCodeCheck[anyCantCodeCheck]), function(objName) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/code-checking.R:367:51: style: Commas should always have a space after.

" ",verb," declared in metadata outputObjects, ",
                                                  ^

R/code-checking.R:367:56: style: Commas should always have a space after.

" ",verb," declared in metadata outputObjects, ",
                                                       ^

R/code-checking.R:383:20: style: Commas should always have a space after.

" ",verb," declared in metadata inputObjects, ",
                   ^

R/code-checking.R:383:25: style: Commas should always have a space after.

" ",verb," declared in metadata inputObjects, ",
                        ^

R/code-checking.R:394:90: style: Commas should always have a space after.

​                                       paste0(paste(missingFrmMod, collapse = ", "), " ",verb,
                                                                                         ^

R/code-checking.R:439:75: style: Commas should always have a space after.

" but only for the 'get' functions, not the 'set' function ","
                                                                          ^

R/code-checking.R:453:1: style: Lines should not be more than 100 characters.

missingInMetadata <- simAssignsNotInDotInputObjects[!(simAssignsNotInDotInputObjects %in% outputObjNames)]
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/code-checking.R:470:1: style: Lines should not be more than 100 characters.

missingInMetadata <- simAssignsInDotInputObjects[!(simAssignsInDotInputObjects %in% inputObjNames)]
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/code-checking.R:662:6: style: Commented code should be removed.

#unique(pd[outerWh, "line1"])
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/code-checking.R:666:34: style: Commas should always have a space after.

whInner <- any((pd[outerWh,"line1"] < lwf) & (pd[outerWh,"line2"] > lwf) )
                                 ^

R/code-checking.R:666:64: style: Commas should always have a space after.

whInner <- any((pd[outerWh,"line1"] < lwf) & (pd[outerWh,"line2"] > lwf) )
                                                               ^

R/code-checking.R:666:79: style: Do not place spaces around code in parentheses or square brackets.

whInner <- any((pd[outerWh,"line1"] < lwf) & (pd[outerWh,"line2"] > lwf) )
                                                                              ^

R/copy.R:37:13: style: Variable or function name should be lowerCamelCase.

sim_ <- object
            ^~~~

R/copy.R:42:14: style: Commented code should be removed.

#sim_@.xData <- new.env(parent = asNamespace("SpaDES.core"))
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/copy.R:43:14: style: Commented code should be removed.

#sim_@.xData <- new.env(parent = as.environment("package:SpaDES.core"))
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/copy.R:93:1: style: Trailing blank lines are superfluous.

^

R/copy.R:94:1: style: Trailing blank lines are superfluous.

^

R/downloadData.R:55:96: style: Do not place spaces around code in parentheses or square brackets.

io <- .parseModulePartial(sim, modules = list(module), defineModuleElement = "inputObjects" )
                                                                                               ^

R/downloadData.R:245:7: style: Commented code should be removed.

# parsedModule <- parse(file = file.path(path, module, paste0(module, '.R')))
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/downloadData.R:246:7: style: Commented code should be removed.

# urls <- .getSourceURL(pattern = fileToDownload, x = parsedModule)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/downloadData.R:253:8: style: Commented code should be removed.

#urls <- moduleMetadata(module, path)$inputObjects$sourceURL
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/downloadData.R:278:27: style: Commas should always have a space after.

chksums2 <- chksums[0,]
                          ^

R/downloadData.R:279:6: style: Commented code should be removed.

#children <- moduleMetadata(module, path)$childModules
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/experiment.R:214:7: style: Commented code should be removed.

# cl <- tryCatch(getCluster(), error = function(x) NULL)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/experiment.R:215:7: style: Commented code should be removed.

# on.exit(if (!is.null(cl)) returnCluster(), add = TRUE)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/experiment.R:217:6: style: Commented code should be removed.

#if (length(modules) == 0) modules <- list(modules(sim)[-(1:4)])
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/experiment.R:221:11: style: Commented code should be removed.

# unlist(params[paramsTmp], recursive = FALSE)
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/experiment.R:313:58: style: Commented code should be removed.

​            params(sim_)[[mod[x]]][[param[[x]]]] <- val #factorialExp[ind,x]
                                                         ^~~~~~~~~~~~~~~~~~~

R/experiment.R:356:11: style: Variable or function name should be lowerCamelCase.

sim_ <- sim
          ^~~~

R/helpers.R:232:74: style: Place a space before left parenthesis, except in a function call.

​                             paste0("package:", .pkgEnv$corePackagesVec[-(1:2)]))
                                                                         ^

R/helpers.R:264:1: style: Variable or function name should be lowerCamelCase.

all.equal.simList <- function(target, current, ...) {
^~~~~~~~~~~~~~~~~

R/helpers.R:280:5: style: Commented code should be removed.

# suppressWarnings(rm("._startClockTime", envir = envir(target)))
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/helpers.R:281:5: style: Commented code should be removed.

# suppressWarnings(rm("._startClockTime", envir = envir(current)))
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/helpers.R:282:5: style: Commented code should be removed.

# suppressWarnings(rm("._firstEventClockTime", envir = envir(target)))
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/helpers.R:283:5: style: Commented code should be removed.

# suppressWarnings(rm("._firstEventClockTime", envir = envir(current)))
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/helpers.R:284:5: style: Commented code should be removed.

# suppressWarnings(rm(".timestamp", envir = envir(target)))
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/helpers.R:285:5: style: Commented code should be removed.

# suppressWarnings(rm(".timestamp", envir = envir(current)))
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/load.R:127:55: style: Commas should always have a space after.

nonNAFileList <- filelist[!is.na(filelist$file),]
                                                      ^

R/load.R:207:1: style: Lines should not be more than 100 characters.

​                names(argument) <- c(nam, names(formals(getFromNamespace(loadFun[y], loadPackage[y])))[1])
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/misc-methods.R:463:55: style: Do not place spaces around code in parentheses or square brackets.

​          (inherits(get(w, envir = envir), "integer")) ) {
                                                      ^

R/misc-methods.R:633:1: style: Variable or function name should be lowerCamelCase.

Paths <- .paths()
^~~~~

R/misc-methods.R:649:14: style: Variable or function name should be lowerCamelCase.

defaults$CP <- TRUE
             ^~

R/misc-methods.R:653:14: style: Variable or function name should be lowerCamelCase.

defaults$IP <- TRUE
             ^~

R/misc-methods.R:657:14: style: Variable or function name should be lowerCamelCase.

defaults$MP <- TRUE
             ^~

R/misc-methods.R:661:14: style: Variable or function name should be lowerCamelCase.

defaults$OP <- TRUE
             ^~

R/misc-methods.R:684:68: style: Commas should never have a space before.

if (!defaults$MP) paste0("    spades.modulePath = '" , modPaths, "'\n"),
                                                                  ~^

R/misc-methods.R:700:1: style: Trailing blank lines are superfluous.

^

R/module-define.R:743:63: style: Do not place spaces around code in parentheses or square brackets.

exts <- na.omit(match(file_ext(fl), .fileExts[, "exts"]) )
                                                              ^

R/module-dependencies-class.R:53:13: style: Variable or function name should be lowerCamelCase.

out.df <- data.frame(
            ^~~~~~

R/module-dependencies-class.R:171:9: style: Do not place spaces around code in parentheses or square brackets.

if ( !all(colnames(._outputObjectsDF()) %in% colnames(object@outputObjects)) ) {
        ^

R/module-dependencies-class.R:171:81: style: Do not place spaces around code in parentheses or square brackets.

if ( !all(colnames(._outputObjectsDF()) %in% colnames(object@outputObjects)) ) {
                                                                                ^

R/module-dependencies-methods.R:43:5: style: Variable or function name should be lowerCamelCase.

DT <- .depsEdgeListMem(deps, plot)
    ^~

R/module-dependencies-methods.R:56:3: style: Variable or function name should be lowerCamelCase.

sim.in <- sim.out <- data.table(objectName = character(0),
  ^~~~~~

R/module-dependencies-methods.R:56:13: style: Variable or function name should be lowerCamelCase.

sim.in <- sim.out <- data.table(objectName = character(0),
            ^~~~~~~

R/module-dependencies-methods.R:61:7: style: Variable or function name should be lowerCamelCase.

z.in <- as.data.table(x@inputObjects)[, .(objectName, objectClass)]
      ^~~~

R/module-dependencies-methods.R:62:7: style: Variable or function name should be lowerCamelCase.

z.out <- as.data.table(x@outputObjects)[, .(objectName, objectClass)]
      ^~~~~

R/module-dependencies-methods.R:65:9: style: Variable or function name should be lowerCamelCase.

sim.in <<- rbindlist(list(sim.in, z.in), use.names = TRUE)
        ^~~~~~

R/module-dependencies-methods.R:68:9: style: Variable or function name should be lowerCamelCase.

sim.out <<- rbindlist(list(sim.out, z.out), use.names = TRUE)
        ^~~~~~~

R/module-dependencies-methods.R:80:5: style: Variable or function name should be lowerCamelCase.

DT <- dx[, list(from = module, to = i.module,
    ^~

R/module-dependencies-methods.R:83:15: style: Variable or function name should be lowerCamelCase.

if (plot) DT <- DT[!duplicated(DT[, 1:2, with = FALSE]), ]
              ^~

R/module-dependencies-methods.R:85:5: style: Variable or function name should be lowerCamelCase.

DT <- data.table(from = character(0), to = character(0),
    ^~

R/module-dependencies-methods.R:162:5: style: Variable or function name should be lowerCamelCase.

M <- distances(simGraph, mode = "out")
    ^

R/module-dependencies-methods.R:194:39: style: %>% should always have a space before it and a new line after it, unless the full pipeline fits on one line.

missingObjects <- simEdgeList %>% filter(from != to) %>%
                                    ~~^

R/module-dependencies-methods.R:208:26: style: %>% should always have a space before it and a new line after it, unless the full pipeline fits on one line.

return(newEdgeList %>% data.table() %>% setorder("from", "to", "objName"))
                       ~~^

R/module-dependencies-methods.R:244:79: style: Do not place spaces around code in parentheses or square brackets.

loadOrder <- names(simGraph[[tsort, ]]) %>% .[!(. %in% "_INPUT_" )]
                                                                              ^

R/module-repository.R:50:1: style: Lines should not be more than 100 characters.

zipFiles <- grep(file.path(name, "data"), zipFiles, invert = TRUE, value = TRUE) # remove any zip in data folder
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/module-repository.R:294:8: style: Commented code should be removed.

#versionWarning(name, version)
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/module-repository.R:306:1: style: Lines should not be more than 100 characters.

​        GET(zip, ua, config = list(config(token = pat)), write_disk(localzip, overwrite = overwrite))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

R/moduleMetadata.R:73:6: style: Commented code should be removed.

#metadata <- eval(parse(text = x)) # can't be used because can't evaluate start(sim)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Please sign in to comment.