---
Function {
 argument: None,
 arguments: FunctionArguments {
  arguments: [
   FunctionArgument {
    identifier: "lib",
    default: None,
   },
   FunctionArgument {
    identifier: "pkgs",
    default: None,
   },
   FunctionArgument {
    identifier: "config",
    default: None,
   },
  ],
  ellipsis: true,
 },
 definition: With {
  expression: Variable {
   identifier: "lib",
   position: (4, 6),
  },
  target: Map {
   bindings: [
    KeyValue(
     AttributePath {
      attributes: [
       Raw {
        content: "imports",
        position: (7, 3),
       },
      ],
     },
     List {
      elements: [
       Path {
        parts: [
         Raw {
          content: "../installer/scan/detected.nix",
          position: (10, 7),
         },
        ],
       },
       Path {
        parts: [
         Raw {
          content: "../installer/scan/not-detected.nix",
          position: (11, 7),
         },
        ],
       },
       Path {
        parts: [
         Raw {
          content: "./clone-config.nix",
          position: (15, 7),
         },
        ],
       },
       Path {
        parts: [
         Raw {
          content: "../installer/cd-dvd/channel.nix",
          position: (19, 7),
         },
        ],
       },
      ],
      position: (8, 5),
     },
    ),
    KeyValue(
     AttributePath {
      attributes: [
       Raw {
        content: "config",
        position: (22, 3),
       },
      ],
     },
     Map {
      bindings: [
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "documentation",
           position: (25, 5),
          },
          Raw {
           content: "enable",
           position: (25, 19),
          },
         ],
        },
        FunctionApplication {
         function: Variable {
          identifier: "mkForce",
          position: (25, 28),
         },
         arguments: [
          Variable {
           identifier: "true",
           position: (25, 36),
          },
         ],
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "documentation",
           position: (28, 5),
          },
          Raw {
           content: "nixos",
           position: (28, 19),
          },
          Raw {
           content: "enable",
           position: (28, 25),
          },
         ],
        },
        FunctionApplication {
         function: Variable {
          identifier: "mkForce",
          position: (28, 34),
         },
         arguments: [
          Variable {
           identifier: "true",
           position: (28, 42),
          },
         ],
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "users",
           position: (31, 5),
          },
          Raw {
           content: "users",
           position: (31, 11),
          },
          Raw {
           content: "nixos",
           position: (31, 17),
          },
         ],
        },
        Map {
         bindings: [
          KeyValue(
           AttributePath {
            attributes: [
             Raw {
              content: "isNormalUser",
              position: (32, 7),
             },
            ],
           },
           Variable {
            identifier: "true",
            position: (32, 22),
           },
          ),
          KeyValue(
           AttributePath {
            attributes: [
             Raw {
              content: "extraGroups",
              position: (33, 7),
             },
            ],
           },
           List {
            elements: [
             String {
              parts: [
               Raw {
                content: "wheel",
                position: (33, 24),
               },
              ],
             },
             String {
              parts: [
               Raw {
                content: "networkmanager",
                position: (33, 32),
               },
              ],
             },
             String {
              parts: [
               Raw {
                content: "video",
                position: (33, 49),
               },
              ],
             },
            ],
            position: (33, 21),
           },
          ),
          KeyValue(
           AttributePath {
            attributes: [
             Raw {
              content: "initialHashedPassword",
              position: (35, 7),
             },
            ],
           },
           String {
            parts: [],
           },
          ),
         ],
         recursive: false,
         position: (31, 25),
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "users",
           position: (39, 5),
          },
          Raw {
           content: "users",
           position: (39, 11),
          },
          Raw {
           content: "root",
           position: (39, 17),
          },
          Raw {
           content: "initialHashedPassword",
           position: (39, 22),
          },
         ],
        },
        String {
         parts: [],
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "security",
           position: (42, 5),
          },
          Raw {
           content: "sudo",
           position: (42, 14),
          },
         ],
        },
        Map {
         bindings: [
          KeyValue(
           AttributePath {
            attributes: [
             Raw {
              content: "enable",
              position: (43, 7),
             },
            ],
           },
           FunctionApplication {
            function: Variable {
             identifier: "mkDefault",
             position: (43, 16),
            },
            arguments: [
             Variable {
              identifier: "true",
              position: (43, 26),
             },
            ],
           },
          ),
          KeyValue(
           AttributePath {
            attributes: [
             Raw {
              content: "wheelNeedsPassword",
              position: (44, 7),
             },
            ],
           },
           FunctionApplication {
            function: Variable {
             identifier: "mkForce",
             position: (44, 28),
            },
            arguments: [
             Variable {
              identifier: "false",
              position: (44, 36),
             },
            ],
           },
          ),
         ],
         recursive: false,
         position: (42, 21),
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "services",
           position: (48, 5),
          },
          Raw {
           content: "getty",
           position: (48, 14),
          },
          Raw {
           content: "autologinUser",
           position: (48, 20),
          },
         ],
        },
        String {
         parts: [
          Raw {
           content: "nixos",
           position: (48, 37),
          },
         ],
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "services",
           position: (51, 5),
          },
          Raw {
           content: "getty",
           position: (51, 14),
          },
          Raw {
           content: "helpLine",
           position: (51, 20),
          },
         ],
        },
        BinaryOperation {
         operator: Addition,
         operands: [
          String {
           parts: [
            Raw {
             content: "The \"nixos\" and \"root\" accounts have empty passwords.\n\nAn ssh daemon is running. You then must set a password\nfor either \"root\" or \"nixos\" with `passwd` or add an ssh key\nto /home/nixos/.ssh/authorized_keys be able to login.\n\nIf you need a wireless connection, type\n`sudo systemctl start wpa_supplicant` and configure a\nnetwork using `wpa_cli`. See the NixOS manual for details.\n",
             position: (52, 1),
            },
           ],
          },
          FunctionApplication {
           function: Variable {
            identifier: "optionalString",
            position: (61, 10),
           },
           arguments: [
            PropertyAccess {
             expression: Variable {
              identifier: "config",
              position: (61, 25),
             },
             attribute_path: AttributePath {
              attributes: [
               Raw {
                content: "services",
                position: (61, 32),
               },
               Raw {
                content: "xserver",
                position: (61, 41),
               },
               Raw {
                content: "enable",
                position: (61, 49),
               },
              ],
             },
             default: None,
            },
            String {
             parts: [
              Raw {
               content: "\nType `sudo systemctl start display-manager' to\nstart the graphical user interface.\n",
               position: (62, 1),
              },
             ],
            },
           ],
          },
         ],
         position: (61, 8),
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "services",
           position: (72, 5),
          },
          Raw {
           content: "openssh",
           position: (72, 14),
          },
         ],
        },
        Map {
         bindings: [
          KeyValue(
           AttributePath {
            attributes: [
             Raw {
              content: "enable",
              position: (73, 7),
             },
            ],
           },
           Variable {
            identifier: "true",
            position: (73, 16),
           },
          ),
          KeyValue(
           AttributePath {
            attributes: [
             Raw {
              content: "permitRootLogin",
              position: (74, 7),
             },
            ],
           },
           String {
            parts: [
             Raw {
              content: "yes",
              position: (74, 26),
             },
            ],
           },
          ),
         ],
         recursive: false,
         position: (72, 24),
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "networking",
           position: (78, 5),
          },
          Raw {
           content: "wireless",
           position: (78, 16),
          },
          Raw {
           content: "enable",
           position: (78, 25),
          },
         ],
        },
        FunctionApplication {
         function: Variable {
          identifier: "mkDefault",
          position: (78, 34),
         },
         arguments: [
          Variable {
           identifier: "true",
           position: (78, 44),
          },
         ],
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "networking",
           position: (79, 5),
          },
          Raw {
           content: "wireless",
           position: (79, 16),
          },
          Raw {
           content: "userControlled",
           position: (79, 25),
          },
          Raw {
           content: "enable",
           position: (79, 40),
          },
         ],
        },
        Variable {
         identifier: "true",
         position: (79, 49),
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "systemd",
           position: (80, 5),
          },
          Raw {
           content: "services",
           position: (80, 13),
          },
          Raw {
           content: "wpa_supplicant",
           position: (80, 22),
          },
          Raw {
           content: "wantedBy",
           position: (80, 37),
          },
         ],
        },
        FunctionApplication {
         function: Variable {
          identifier: "mkOverride",
          position: (80, 48),
         },
         arguments: [
          Int {
           value: 50,
           position: (80, 59),
          },
          List {
           elements: [],
           position: (80, 62),
          },
         ],
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "environment",
           position: (85, 5),
          },
          Raw {
           content: "variables",
           position: (85, 17),
          },
          Raw {
           content: "GC_INITIAL_HEAP_SIZE",
           position: (85, 27),
          },
         ],
        },
        String {
         parts: [
          Raw {
           content: "1M",
           position: (85, 51),
          },
         ],
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "boot",
           position: (92, 5),
          },
          Raw {
           content: "kernel",
           position: (92, 10),
          },
          Raw {
           content: "sysctl",
           position: (92, 17),
          },
          Expression {
           expression: String {
            parts: [
             Raw {
              content: "vm.overcommit_memory",
              position: (92, 25),
             },
            ],
           },
          },
         ],
        },
        String {
         parts: [
          Raw {
           content: "1",
           position: (92, 50),
          },
         ],
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "system",
           position: (96, 5),
          },
          Raw {
           content: "extraDependencies",
           position: (96, 12),
          },
         ],
        },
        With {
         expression: Variable {
          identifier: "pkgs",
          position: (96, 37),
         },
         target: List {
          elements: [
           Variable {
            identifier: "stdenv",
            position: (98, 9),
           },
           Variable {
            identifier: "stdenvNoCC",
            position: (99, 9),
           },
           Variable {
            identifier: "busybox",
            position: (100, 9),
           },
           Variable {
            identifier: "jq",
            position: (101, 9),
           },
          ],
          position: (97, 7),
         },
         position: (96, 32),
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "networking",
           position: (107, 5),
          },
          Raw {
           content: "firewall",
           position: (107, 16),
          },
          Raw {
           content: "logRefusedConnections",
           position: (107, 25),
          },
         ],
        },
        FunctionApplication {
         function: Variable {
          identifier: "mkDefault",
          position: (107, 49),
         },
         arguments: [
          Variable {
           identifier: "false",
           position: (107, 59),
          },
         ],
        },
       ),
       KeyValue(
        AttributePath {
         attributes: [
          Raw {
           content: "environment",
           position: (112, 5),
          },
          Raw {
           content: "etc",
           position: (112, 17),
          },
          Expression {
           expression: String {
            parts: [
             Raw {
              content: "systemd/pstore.conf",
              position: (112, 22),
             },
            ],
           },
          },
          Raw {
           content: "text",
           position: (112, 43),
          },
         ],
        },
        String {
         parts: [
          Raw {
           content: "[PStore]\nUnlink=no\n",
           position: (113, 1),
          },
         ],
        },
       ),
      ],
      recursive: false,
      position: (22, 12),
     },
    ),
   ],
   recursive: false,
   position: (6, 1),
  },
  position: (4, 1),
 },
 position: (2, 1),
}