Compare commits
10 Commits
811388006f
...
9a4c8df398
| Author | SHA1 | Date |
|---|---|---|
|
|
9a4c8df398 | |
|
|
7c36539033 | |
|
|
b25fc9a2b8 | |
|
|
7bbd0dd8a8 | |
|
|
07e4669bb8 | |
|
|
203665a051 | |
|
|
431fa046be | |
|
|
83464117ae | |
|
|
c8cf7aa5ca | |
|
|
0ad84eed45 |
|
|
@ -5,11 +5,11 @@
|
||||||
1. Build the virtual machine
|
1. Build the virtual machine
|
||||||
|
|
||||||
```
|
```
|
||||||
nix run -L '.#nixosConfigurations.vm.config.system.build.vmWithDisko'
|
nix build -L '.#nixosConfigurations.vm.config.system.build.vmWithDisko'
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Run the virtual machine
|
2. Run the virtual machine
|
||||||
|
|
||||||
```
|
```
|
||||||
QEMU_KERNEL_PARAMS=console=ttyS0 ./result/bin/run-nixos-vm -nographic; reset
|
./result/bin/disko-vm
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,162 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixCats": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1759730664,
|
||||||
|
"narHash": "sha256-boRlBQ/c4CaHsK/z04QL6+t81mcar37Io94HBX2GflY=",
|
||||||
|
"owner": "BirdeeHub",
|
||||||
|
"repo": "nixCats-nvim",
|
||||||
|
"rev": "77dffad8235eb77684fcb7599487c8e9f23d5b8f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "BirdeeHub",
|
||||||
|
"repo": "nixCats-nvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1760256791,
|
||||||
|
"narHash": "sha256-uTpzDHRASEDeFUuToWSQ46Re8beXyG9dx4W36FQa0/c=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "832e3b6db48508ae436c2c7bfc0cf914eac6938e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plugins-beancount-nvim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1707748314,
|
||||||
|
"narHash": "sha256-LuACGVB3kiaiJqoGtvFy6kbPNtqoGliKLDeR+Z7Wzbw=",
|
||||||
|
"owner": "polarmutex",
|
||||||
|
"repo": "beancount.nvim",
|
||||||
|
"rev": "869564aba3087ee5df8f282aa37555e314aa2152",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "polarmutex",
|
||||||
|
"repo": "beancount.nvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plugins-crazy-node-movement": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1693654676,
|
||||||
|
"narHash": "sha256-hQcQEp39zFN2zphMfcr97yRVcuHhBsSkzKO7XNloDpQ=",
|
||||||
|
"owner": "theHamsta",
|
||||||
|
"repo": "crazy-node-movement",
|
||||||
|
"rev": "d5cf01cc44c5715501d3d6fe439af7c8b7fa5df2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "theHamsta",
|
||||||
|
"repo": "crazy-node-movement",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plugins-helm-ls-nvim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1757598429,
|
||||||
|
"narHash": "sha256-nzuJxAAaEmuVYg9k0B8OKslxsihhg6RKlhz6E7xJTQU=",
|
||||||
|
"owner": "qvalentin",
|
||||||
|
"repo": "helm-ls.nvim",
|
||||||
|
"rev": "f36ecbd3e7b0b2ac8358a9d6a3213888e29943db",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "qvalentin",
|
||||||
|
"repo": "helm-ls.nvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plugins-mcphub-nvim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1759035242,
|
||||||
|
"narHash": "sha256-I6EbgY/2sAdtrxtmH0qbAAQvMCHhOsfolJfblV0fXOk=",
|
||||||
|
"owner": "ravitemer",
|
||||||
|
"repo": "mcphub.nvim",
|
||||||
|
"rev": "8ff40b5edc649959bb7e89d25ae18e055554859a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ravitemer",
|
||||||
|
"repo": "mcphub.nvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plugins-nvimkit-nvim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1721393835,
|
||||||
|
"narHash": "sha256-MdmrhLHMxrn6upu1chjKyitPZ5WkCQtpI465AKJXDOA=",
|
||||||
|
"owner": "jamesblckwell",
|
||||||
|
"repo": "nvimkit.nvim",
|
||||||
|
"rev": "af363d22699760f66988e8d36539a5753039217a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "jamesblckwell",
|
||||||
|
"repo": "nvimkit.nvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plugins-shipwright-nvim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1711725275,
|
||||||
|
"narHash": "sha256-xh/2m//Cno5gPucjOYih79wVZj3X1Di/U3/IQhKXjc0=",
|
||||||
|
"owner": "rktjmp",
|
||||||
|
"repo": "shipwright.nvim",
|
||||||
|
"rev": "e596ab48328c31873f4f4d2e070243bf9de16ff3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rktjmp",
|
||||||
|
"repo": "shipwright.nvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plugins-tailwind-fold-nvim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752559116,
|
||||||
|
"narHash": "sha256-8uefZIVsn9USEd6FyiO3m3TRKAS/vigU4t9Tk5ijd3c=",
|
||||||
|
"owner": "razak17",
|
||||||
|
"repo": "tailwind-fold.nvim",
|
||||||
|
"rev": "d9e7ca11691d252b35795726dff087bf013b2ebf",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "razak17",
|
||||||
|
"repo": "tailwind-fold.nvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixCats": "nixCats",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"plugins-beancount-nvim": "plugins-beancount-nvim",
|
||||||
|
"plugins-crazy-node-movement": "plugins-crazy-node-movement",
|
||||||
|
"plugins-helm-ls-nvim": "plugins-helm-ls-nvim",
|
||||||
|
"plugins-mcphub-nvim": "plugins-mcphub-nvim",
|
||||||
|
"plugins-nvimkit-nvim": "plugins-nvimkit-nvim",
|
||||||
|
"plugins-shipwright-nvim": "plugins-shipwright-nvim",
|
||||||
|
"plugins-tailwind-fold-nvim": "plugins-tailwind-fold-nvim"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,215 @@
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
|
nixCats.url = "github:BirdeeHub/nixCats-nvim";
|
||||||
|
|
||||||
|
plugins-shipwright-nvim = {
|
||||||
|
url = "github:rktjmp/shipwright.nvim";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
plugins-crazy-node-movement = {
|
||||||
|
url = "github:theHamsta/crazy-node-movement";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
plugins-beancount-nvim = {
|
||||||
|
url = "github:polarmutex/beancount.nvim";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
plugins-tailwind-fold-nvim = {
|
||||||
|
url = "github:razak17/tailwind-fold.nvim";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
plugins-nvimkit-nvim = {
|
||||||
|
url = "github:jamesblckwell/nvimkit.nvim";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
plugins-mcphub-nvim = {
|
||||||
|
url = "github:ravitemer/mcphub.nvim";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
plugins-helm-ls-nvim = {
|
||||||
|
url = "github:qvalentin/helm-ls.nvim";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs =
|
||||||
|
{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
nixCats,
|
||||||
|
...
|
||||||
|
}@inputs:
|
||||||
|
let
|
||||||
|
inherit (nixCats) utils;
|
||||||
|
luaPath = ./.;
|
||||||
|
forEachSystem = utils.eachSystem nixpkgs.lib.platforms.all;
|
||||||
|
extra_pkg_config = { };
|
||||||
|
|
||||||
|
dependencyOverlays = [
|
||||||
|
(utils.standardPluginOverlay inputs)
|
||||||
|
];
|
||||||
|
|
||||||
|
categoryDefinitions =
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
lspsAndRuntimeDeps = with pkgs; {
|
||||||
|
general = [
|
||||||
|
tree-sitter
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
startupPlugins = {
|
||||||
|
general = with pkgs.vimPlugins; [
|
||||||
|
lze
|
||||||
|
lzextras
|
||||||
|
|
||||||
|
eyeliner-nvim
|
||||||
|
fzf-lua
|
||||||
|
ltex_extra-nvim
|
||||||
|
nvim-lspconfig
|
||||||
|
lsp_lines-nvim
|
||||||
|
lsp-progress-nvim
|
||||||
|
neodev-nvim
|
||||||
|
SchemaStore-nvim
|
||||||
|
nvim-lint
|
||||||
|
conform-nvim
|
||||||
|
luasnip
|
||||||
|
cmp_luasnip
|
||||||
|
nvim-cmp
|
||||||
|
cmp-nvim-lsp
|
||||||
|
cmp-buffer
|
||||||
|
cmp-path
|
||||||
|
plenary-nvim
|
||||||
|
nui-nvim
|
||||||
|
trouble-nvim
|
||||||
|
pkgs.neovimPlugins.shipwright-nvim
|
||||||
|
lush-nvim
|
||||||
|
zenbones-nvim
|
||||||
|
pkgs.neovimPlugins.crazy-node-movement
|
||||||
|
nvim-treesitter.withAllGrammars
|
||||||
|
nvim-treesitter-textobjects
|
||||||
|
# nvim-treesitter-context
|
||||||
|
nvim-ts-context-commentstring
|
||||||
|
treesj
|
||||||
|
sniprun
|
||||||
|
gitsigns-nvim
|
||||||
|
nvim-highlight-colors
|
||||||
|
pkgs.neovimPlugins.tailwind-fold-nvim
|
||||||
|
auto-session
|
||||||
|
nvim-dbee
|
||||||
|
image-nvim
|
||||||
|
pkgs.neovimPlugins.beancount-nvim
|
||||||
|
pkgs.neovimPlugins.nvimkit-nvim
|
||||||
|
codecompanion-nvim
|
||||||
|
pkgs.neovimPlugins.mcphub-nvim
|
||||||
|
copilot-lua
|
||||||
|
copilot-cmp
|
||||||
|
pkgs.neovimPlugins.helm-ls-nvim
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
optionalPlugins = {
|
||||||
|
general = with pkgs.vimPlugins; [
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
sharedLibraries = {
|
||||||
|
general = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
environmentVariables = { };
|
||||||
|
};
|
||||||
|
|
||||||
|
packageDefinitions = {
|
||||||
|
nvim =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
settings = {
|
||||||
|
suffix-path = true;
|
||||||
|
suffix-LD = true;
|
||||||
|
wrapRc = true;
|
||||||
|
aliases = [ "vim" ];
|
||||||
|
};
|
||||||
|
categories = {
|
||||||
|
general = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
defaultPackageName = "nvim";
|
||||||
|
in
|
||||||
|
|
||||||
|
forEachSystem (
|
||||||
|
system:
|
||||||
|
let
|
||||||
|
nixCatsBuilder = utils.baseBuilder luaPath {
|
||||||
|
inherit
|
||||||
|
nixpkgs
|
||||||
|
system
|
||||||
|
dependencyOverlays
|
||||||
|
extra_pkg_config
|
||||||
|
;
|
||||||
|
} categoryDefinitions packageDefinitions;
|
||||||
|
defaultPackage = nixCatsBuilder defaultPackageName;
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
packages = utils.mkAllWithDefault defaultPackage;
|
||||||
|
|
||||||
|
devShells = {
|
||||||
|
default = pkgs.mkShell {
|
||||||
|
name = defaultPackageName;
|
||||||
|
packages = [ defaultPackage ];
|
||||||
|
inputsFrom = [ ];
|
||||||
|
shellHook = '''';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
)
|
||||||
|
// (
|
||||||
|
let
|
||||||
|
nixosModule = utils.mkNixosModules {
|
||||||
|
moduleNamespace = [ defaultPackageName ];
|
||||||
|
inherit
|
||||||
|
defaultPackageName
|
||||||
|
dependencyOverlays
|
||||||
|
luaPath
|
||||||
|
categoryDefinitions
|
||||||
|
packageDefinitions
|
||||||
|
extra_pkg_config
|
||||||
|
nixpkgs
|
||||||
|
;
|
||||||
|
};
|
||||||
|
homeModule = utils.mkHomeModules {
|
||||||
|
moduleNamespace = [ defaultPackageName ];
|
||||||
|
inherit
|
||||||
|
defaultPackageName
|
||||||
|
dependencyOverlays
|
||||||
|
luaPath
|
||||||
|
categoryDefinitions
|
||||||
|
packageDefinitions
|
||||||
|
extra_pkg_config
|
||||||
|
nixpkgs
|
||||||
|
;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
|
||||||
|
overlays = utils.makeOverlays luaPath {
|
||||||
|
inherit nixpkgs dependencyOverlays extra_pkg_config;
|
||||||
|
} categoryDefinitions packageDefinitions defaultPackageName;
|
||||||
|
|
||||||
|
nixosModules.default = nixosModule;
|
||||||
|
homeModules.default = homeModule;
|
||||||
|
|
||||||
|
inherit utils nixosModule homeModule;
|
||||||
|
inherit (utils) templates;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -26,13 +26,8 @@
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
disko.nixosModules.disko
|
disko.nixosModules.disko
|
||||||
./hosts/vm/configuration.nix
|
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
{
|
./hosts/vm/configuration.nix
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
home-manager.users.h = ./hosts/vm/home.nix;
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
system.stateVersion = "25.05";
|
system.stateVersion = "25.05";
|
||||||
|
|
@ -20,20 +20,35 @@
|
||||||
"flakes"
|
"flakes"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
disko = {
|
||||||
|
devices.disk.main.device = "/dev/vda";
|
||||||
|
devices.disk.main.imageName = "nixos-vm";
|
||||||
|
devices.disk.main.imageSize = "32G";
|
||||||
|
};
|
||||||
|
|
||||||
disko.devices.disk.main.device = "/dev/vda";
|
virtualisation.vmVariantWithDisko = {
|
||||||
|
virtualisation = {
|
||||||
programs.git.enable = true;
|
cores = 8;
|
||||||
programs.firefox.enable = true;
|
memorySize = 16384;
|
||||||
|
qemu.options = [
|
||||||
|
"-enable-kvm"
|
||||||
|
"-cpu host"
|
||||||
|
"-nographic"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
home-manager = {
|
||||||
neovim
|
useGlobalPkgs = true;
|
||||||
kitty
|
useUserPackages = true;
|
||||||
];
|
users.h = ./home.nix;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.qemuGuest.enable = true;
|
||||||
services.spice-vdagentd.enable = true;
|
services.spice-vdagentd.enable = true;
|
||||||
|
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
startWhenNeeded = true;
|
startWhenNeeded = true;
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,3 @@
|
||||||
# USAGE in your configuration.nix.
|
|
||||||
# Update devices to match your hardware.
|
|
||||||
# {
|
|
||||||
# imports = [ ./disko-config.nix ];
|
|
||||||
# disko.devices.disk.main.device = "/dev/sda";
|
|
||||||
# }
|
|
||||||
{
|
{
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk = {
|
disk = {
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,81 @@
|
||||||
home.username = "h";
|
home.username = "h";
|
||||||
home.homeDirectory = "/home/h";
|
home.homeDirectory = "/home/h";
|
||||||
|
|
||||||
home.file.".inputrc".source = ../../dots/.inputrc;
|
programs = {
|
||||||
|
bash = {
|
||||||
|
enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
initExtra = ''
|
||||||
|
for f in ${config.home.homeDirectory}/.bashrc.d/*; do
|
||||||
|
[ -f "$f" ] && source "$f"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
firefox.enable = true;
|
||||||
|
fzf = {
|
||||||
|
enable = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
};
|
||||||
|
git.enable = true;
|
||||||
|
home-manager.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
home.packages = with pkgs; [
|
||||||
|
bash-completion
|
||||||
|
bash-language-server
|
||||||
|
bat
|
||||||
|
brightnessctl
|
||||||
|
entr
|
||||||
|
eslint_d
|
||||||
|
feh
|
||||||
|
firefox-devedition
|
||||||
|
fzf
|
||||||
|
git
|
||||||
|
haskell-language-server
|
||||||
|
haskellPackages.pandoc-crossref
|
||||||
|
haskellPackages.hadolint
|
||||||
|
htop
|
||||||
|
iosevka
|
||||||
|
jq
|
||||||
|
keepassxc
|
||||||
|
kitty
|
||||||
|
lua-language-server
|
||||||
|
neovim
|
||||||
|
nmap
|
||||||
|
nodejs_24
|
||||||
|
nodePackages.ts-node
|
||||||
|
nvimpager
|
||||||
|
ormolu
|
||||||
|
pandoc
|
||||||
|
parallel
|
||||||
|
pass
|
||||||
|
pnpm
|
||||||
|
ripgrep
|
||||||
|
silver-searcher
|
||||||
|
sshfs
|
||||||
|
stylelint
|
||||||
|
svelte-language-server
|
||||||
|
tailwindcss-language-server
|
||||||
|
taskwarrior3
|
||||||
|
tldr
|
||||||
|
tmux
|
||||||
|
tmuxp
|
||||||
|
tree
|
||||||
|
tree-sitter
|
||||||
|
typescript-language-server
|
||||||
|
unzip
|
||||||
|
vim-language-server
|
||||||
|
vimPlugins.vim-plug
|
||||||
|
vtsls
|
||||||
|
wget
|
||||||
|
xbanish
|
||||||
|
xclip
|
||||||
|
yaml-language-server
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file = {
|
||||||
|
".inputrc".source = ../../dots/.inputrc;
|
||||||
|
".bashrc.d/prompt".source = ../../dots/.bashrc.d/prompt;
|
||||||
|
".bashrc.d/editor".source = ../../dots/.bashrc.d/editor;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue