Skip to content

Commit

Permalink
Update files for storage investment method with multi-year investment (
Browse files Browse the repository at this point in the history
  • Loading branch information
datejada authored Sep 24, 2024
1 parent ddb20d9 commit 6d8e7ab
Show file tree
Hide file tree
Showing 18 changed files with 813 additions and 803 deletions.
634 changes: 317 additions & 317 deletions benchmark/EU/assets-data.csv

Large diffs are not rendered by default.

634 changes: 317 additions & 317 deletions benchmark/EU/vintage-assets-data.csv

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions docs/src/how-to-use.md
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,7 @@ Energy storage assets have a unique characteristic wherein the investment is bas
- _Investment energy method_: To use this method, set the parameter `storage_method_energy` to `true`. In addition, it is necessary to define:

- `investment_cost_storage_energy`: To establish the cost of investing in the storage capacity (e.g., kEUR/MWh/unit).
- `fixed_cost_storage_energy`: To establish the fixed cost of energy storage capacity (e.g., kEUR/MWh/unit).
- `investment_limit_storage_energy`: To define the potential of the energy capacity investment (e.g., MWh). `Missing` values mean that there is no limit.
- `investment_integer_storage_energy`: To determine whether the investment variables of storage capacity are integers of continuous.

Expand Down
11 changes: 6 additions & 5 deletions src/input-schemas.jl
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ const schemas = (
:initial_storage_level => "DOUBLE", # MWh (Missing -> free initial level)
:energy_to_power_ratio => "DOUBLE", # Hours
:storage_method_energy => "BOOLEAN", # Whether storage method is energy or not (i.e., fixed_ratio)
:investment_cost_storage_energy => "DOUBLE", # kEUR/MWh/year
:investment_limit_storage_energy => "DOUBLE", # MWh (Missing -> no limit)
:investment_integer_storage_energy => "BOOLEAN", # Whether investment for storage energy is integer or continuous
:use_binary_storage_method => "VARCHAR", # Whether to use an extra binary variable for the storage assets to avoid charging and discharging simultaneously (missing;binary;relaxed_binary)
Expand All @@ -62,17 +61,19 @@ const schemas = (
vintage_assets_data = OrderedDict(
:name => "VARCHAR",
:commission_year => "INTEGER", # Year of commissioning
:fixed_cost => "DOUBLE",
:investment_cost => "DOUBLE", # kEUR/MW/year
:fixed_cost => "DOUBLE", # kEUR/MW/year
:investment_cost => "DOUBLE", # kEUR/MW
:fixed_cost_storage_energy => "DOUBLE", # kEUR/MWh/year
:investment_cost_storage_energy => "DOUBLE", # kEUR/MWh
),

# Schema for the vintage-flows-data.csv
vintage_flows_data = OrderedDict(
:from_asset => "VARCHAR", # Name of Asset
:to_asset => "VARCHAR", # Name of Asset
:commission_year => "INTEGER", # Year of commissioning
:fixed_cost => "DOUBLE",
:investment_cost => "DOUBLE", # kEUR/MW/year
:fixed_cost => "DOUBLE", # kEUR/MWh/year
:investment_cost => "DOUBLE", # kEUR/MW
),

# Schema for the assets-profiles.csv and assets-timeframe-profiles.csv file.
Expand Down
7 changes: 6 additions & 1 deletion src/io.jl
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,12 @@ function create_internal_structures(connection)
_get_stuff_year("assets_data", "initial_storage_level"; name = row.name),
_get_stuff_year("assets_data", "energy_to_power_ratio"; name = row.name),
_get_stuff_year("assets_data", "storage_method_energy"; name = row.name),
_get_stuff_year("assets_data", "investment_cost_storage_energy"; name = row.name),
_get_stuff_vintage_year(
"assets_data",
"investment_cost_storage_energy";
name = row.name,
),
_get_stuff_vintage_year("assets_data", "fixed_cost_storage_energy"; name = row.name),
_get_stuff_year("assets_data", "investment_limit_storage_energy"; name = row.name),
row.capacity_storage_energy,
_get_stuff_year("assets_data", "investment_integer_storage_energy"; name = row.name),
Expand Down
3 changes: 3 additions & 0 deletions src/structures.jl
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ mutable struct GraphAssetData
energy_to_power_ratio::Dict{Int,Float64}
storage_method_energy::Dict{Int,Bool}
investment_cost_storage_energy::Dict{Int,Float64}
fixed_cost_storage_energy::Dict{Int,Float64}
investment_limit_storage_energy::Dict{Int,Union{Missing,Float64}}
capacity_storage_energy::Float64
investment_integer_storage_energy::Dict{Int,Bool}
Expand Down Expand Up @@ -122,6 +123,7 @@ mutable struct GraphAssetData
energy_to_power_ratio,
storage_method_energy,
investment_cost_storage_energy,
fixed_cost_storage_energy,
investment_limit_storage_energy,
capacity_storage_energy,
investment_integer_storage_energy,
Expand Down Expand Up @@ -165,6 +167,7 @@ mutable struct GraphAssetData
energy_to_power_ratio,
storage_method_energy,
investment_cost_storage_energy,
fixed_cost_storage_energy,
investment_limit_storage_energy,
capacity_storage_energy,
investment_integer_storage_energy,
Expand Down
44 changes: 22 additions & 22 deletions test/inputs/Multi-year Investments/assets-data.csv
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
,{true;false},,,{true;false},{true;false},kEUR/MW/year,kEUR/MW/year,MW,units,MW,{empty;==;>=},{true;false},MWh/year,units,MWh,h,{true;false},kEUR/MWh/year,MWh,{true;false},{missing;binary;relaxed_binary},MWh,MWh,{true;false},{missing;basic},kEUR/h/unit_on,{true;false},[p.u.],{true;false},[p.u.],[p.u.]
name,active,year,commission_year,investable,investment_integer,investment_cost,fixed_cost,investment_limit,initial_units,peak_demand,consumer_balance_sense,is_seasonal,storage_inflows,initial_storage_units,initial_storage_level,energy_to_power_ratio,storage_method_energy,investment_cost_storage_energy,investment_limit_storage_energy,investment_integer_storage_energy,use_binary_storage_method,max_energy_timeframe_partition,min_energy_timeframe_partition,unit_commitment,unit_commitment_method,units_on_cost,unit_commitment_integer,min_operating_point,ramping,max_ramp_up,max_ramp_down
ocgt,true,2030,2030,true,true,25,20,,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
ccgt,true,2030,2028,false,false,40,20,10000,1,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
ccgt,true,2030,2030,true,true,40,20,10000,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
battery,true,2030,2020,false,false,70,20,,0.07,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
battery,true,2030,2030,true,true,70,20,,0.02,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
wind,true,2030,2020,false,false,70,20,,0.07,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
wind,true,2030,2030,true,true,70,20,,0.02,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
solar,true,2030,2030,true,true,50,20,,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
ens,true,2030,2030,false,false,0,20,,1,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
demand,true,2030,2030,false,false,0,20,,0,1115,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
ocgt,true,2050,2050,true,true,25,20,,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
ccgt,true,2050,2028,false,false,40,20,10000,1,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
ccgt,true,2050,2050,false,false,40,20,10000,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
battery,true,2050,2030,false,false,70,20,,0.02,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
battery,true,2050,2050,true,true,70,20,,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
wind,true,2050,2030,false,false,70,20,,0.02,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
wind,true,2050,2050,true,true,70,20,,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
solar,true,2050,2050,true,true,50,20,,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
ens,true,2050,2050,false,false,0,20,,1,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
demand,false,2050,2050,false,false,0,20,,0,1115,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
,{true;false},,,{true;false},{true;false},kEUR/MW/year,kEUR/MW/year,MW,units,MW,{empty;==;>=},{true;false},MWh/year,units,MWh,h,{true;false},kEUR/MWh/year,kEUR/MWh/year,MWh,{true;false},{missing;binary;relaxed_binary},MWh,MWh,{true;false},{missing;basic},kEUR/h/unit_on,{true;false},[p.u.],{true;false},[p.u.],[p.u.]
name,active,year,commission_year,investable,investment_integer,investment_cost,fixed_cost,investment_limit,initial_units,peak_demand,consumer_balance_sense,is_seasonal,storage_inflows,initial_storage_units,initial_storage_level,energy_to_power_ratio,storage_method_energy,investment_cost_storage_energy,fixed_cost_storage_energy,investment_limit_storage_energy,investment_integer_storage_energy,use_binary_storage_method,max_energy_timeframe_partition,min_energy_timeframe_partition,unit_commitment,unit_commitment_method,units_on_cost,unit_commitment_integer,min_operating_point,ramping,max_ramp_up,max_ramp_down
ocgt,true,2030,2030,true,true,25,20,,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
ccgt,true,2030,2028,false,false,40,20,10000,1,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
ccgt,true,2030,2030,true,true,40,20,10000,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
battery,true,2030,2020,false,false,70,20,,0.07,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
battery,true,2030,2030,true,true,70,20,,0.02,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
wind,true,2030,2020,false,false,70,20,,0.07,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
wind,true,2030,2030,true,true,70,20,,0.02,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
solar,true,2030,2030,true,true,50,20,,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
ens,true,2030,2030,false,false,0,20,,1,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
demand,true,2030,2030,false,false,0,20,,0,1115,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
ocgt,true,2050,2050,true,true,25,20,,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
ccgt,true,2050,2028,false,false,40,20,10000,1,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
ccgt,true,2050,2050,false,false,40,20,10000,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
battery,true,2050,2030,false,false,70,20,,0.02,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
battery,true,2050,2050,true,true,70,20,,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
wind,true,2050,2030,false,false,70,20,,0.02,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
wind,true,2050,2050,true,true,70,20,,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
solar,true,2050,2050,true,true,50,20,,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
ens,true,2050,2050,false,false,0,20,,1,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
demand,false,2050,2050,false,false,0,20,,0,1115,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
38 changes: 19 additions & 19 deletions test/inputs/Multi-year Investments/vintage-assets-data.csv
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
,,kEUR/MW/year,kEUR/MW/year
name,commission_year,fixed_cost,investment_cost
ocgt,2030,20,25
ccgt,2028,20,40
ccgt,2030,20,40
battery,2020,20,70
battery,2030,20,70
wind,2020,20,70
wind,2030,20,70
solar,2030,20,50
ens,2030,20,0
demand,2030,20,0
ocgt,2050,20,25
ccgt,2050,20,40
battery,2050,20,70
wind,2050,20,70
solar,2050,20,50
ens,2050,20,0
demand,2050,20,0
,,kEUR/MW/year,kEUR/MW/year,kEUR/MWh/year,kEUR/MWh
name,commission_year,fixed_cost,investment_cost,fixed_cost_storage_energy,investment_cost_storage_energy
ocgt,2030,20,25,5,0
ccgt,2028,20,40,5,0
ccgt,2030,20,40,5,0
battery,2020,20,70,5,0
battery,2030,20,70,5,0
wind,2020,20,70,5,0
wind,2030,20,70,5,0
solar,2030,20,50,5,0
ens,2030,20,0,5,0
demand,2030,20,0,5,0
ocgt,2050,20,25,5,0
ccgt,2050,20,40,5,0
battery,2050,20,70,5,0
wind,2050,20,70,5,0
solar,2050,20,50,5,0
ens,2050,20,0,5,0
demand,2050,20,0,5,0
50 changes: 25 additions & 25 deletions test/inputs/Norse/assets-data.csv
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
,{true;false},,,{true;false},{true;false},kEUR/MW/year,kEUR/MW/year,MW,units,MW,{empty;==;>=},{true;false},MWh/year,units,MWh,h,{true;false},kEUR/MWh/year,MWh,{true;false},{missing;binary;relaxed_binary},MWh,MWh,{true;false},{missing;basic},kEUR/h/unit_on,{true;false},[p.u.],{true;false},[p.u.],[p.u.]
name,active,year,commission_year,investable,investment_integer,investment_cost,fixed_cost,investment_limit,initial_units,peak_demand,consumer_balance_sense,is_seasonal,storage_inflows,initial_storage_units,initial_storage_level,energy_to_power_ratio,storage_method_energy,investment_cost_storage_energy,investment_limit_storage_energy,investment_integer_storage_energy,use_binary_storage_method,max_energy_timeframe_partition,min_energy_timeframe_partition,unit_commitment,unit_commitment_method,units_on_cost,unit_commitment_integer,min_operating_point,ramping,max_ramp_up,max_ramp_down
Asgard_Battery,true,2030,2030,true,true,300,0,25000,7.25,0,,false,0,0,,100,true,30,1000,true,binary,,,false,,,false,,false,,
Asgard_Solar,true,2030,2030,true,true,350,0,50000,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Asgard_E_demand,true,2030,2030,false,false,0,0,0,0,65787.17792,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Asgard_CCGT,true,2030,2030,true,true,650,0,,0,0,,false,0,0,0,0,false,0,,false,,,,true,basic,0.97,false,0.25,true,0.5,0.3
G_imports,true,2030,2030,false,false,0,0,0,1,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Midgard_Wind,true,2030,2030,true,true,1300,0,80000,0,0,,true,0,0,0,0,false,0,,false,,4.5e6,,false,,,false,,false,,
Midgard_Hydro,true,2030,2030,false,false,1600,0,0,1,0,,true,10000,1,25000,0,false,0,,false,relaxed_binary,,,false,,,false,,false,,
Midgard_PHS,true,2030,2030,true,true,800,0,5000,1.75,0,,false,0,0,,1,true,500,1000,false,,,,false,,,false,,false,,
Midgard_Nuclear_SMR,true,2030,2030,true,false,6000,0,,6.6666667,0,,true,0,0,0,0,false,0,,false,,,4.5e3,false,,,false,,true,0.75,0.65
Midgard_E_imports,true,2030,2030,false,false,0,0,0,1,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Midgard_CCGT,true,2030,2030,false,false,650,0,,5,0,,false,0,0,0,0,false,0,,false,,,,true,basic,,true,0.4,false,,
Midgard_E_demand,true,2030,2030,false,false,0,0,0,0,19604.76443,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Valhalla_H2_generator,true,2030,2030,true,true,479,0,,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Valhalla_H2_storage,true,2030,2030,true,true,0.1,0,,0,0,,true,0,0,,10000,false,10,,true,,,,false,,,false,,false,,
Valhalla_H2_demand,true,2030,2030,false,false,0,0,0,0,745.735,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Valhalla_Electrolyser,true,2030,2030,true,true,1260,0,,5,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Valhalla_E_balance,true,2030,2030,false,false,0,0,0,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Valhalla_E_exports,true,2030,2030,false,false,0,0,0,0,50,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Valhalla_Fuel_cell,true,2030,2030,true,true,800,0,,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Valhalla_Heat_pump,true,2030,2030,true,true,300,0,,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Valhalla_Waste_heat,true,2030,2030,false,false,1450,0,,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Valhalla_Heat_demand,true,2030,2030,false,false,0,0,0,0,3548.42445,>=,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
Valhalla_GT,true,2030,2030,true,true,400,0,100000,0,0,,false,0,0,0,0,false,0,,false,,,,false,,,false,,false,,
,{true;false},,,{true;false},{true;false},kEUR/MW/year,kEUR/MW/year,MW,units,MW,{empty;==;>=},{true;false},MWh/year,units,MWh,h,{true;false},kEUR/MWh/year,kEUR/MWh/year,MWh,{true;false},{missing;binary;relaxed_binary},MWh,MWh,{true;false},{missing;basic},kEUR/h/unit_on,{true;false},[p.u.],{true;false},[p.u.],[p.u.]
name,active,year,commission_year,investable,investment_integer,investment_cost,fixed_cost,investment_limit,initial_units,peak_demand,consumer_balance_sense,is_seasonal,storage_inflows,initial_storage_units,initial_storage_level,energy_to_power_ratio,storage_method_energy,investment_cost_storage_energy,fixed_cost_storage_energy,investment_limit_storage_energy,investment_integer_storage_energy,use_binary_storage_method,max_energy_timeframe_partition,min_energy_timeframe_partition,unit_commitment,unit_commitment_method,units_on_cost,unit_commitment_integer,min_operating_point,ramping,max_ramp_up,max_ramp_down
Asgard_Battery,true,2030,2030,true,true,300,0,25000,7.25,0,,false,0,0,,100,true,30,5,1000,true,binary,,,false,,,false,,false,,
Asgard_Solar,true,2030,2030,true,true,350,0,50000,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Asgard_E_demand,true,2030,2030,false,false,0,0,0,0,65787.17792,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Asgard_CCGT,true,2030,2030,true,true,650,0,,0,0,,false,0,0,0,0,false,0,5,,false,,,,true,basic,0.97,false,0.25,true,0.5,0.3
G_imports,true,2030,2030,false,false,0,0,0,1,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Midgard_Wind,true,2030,2030,true,true,1300,0,80000,0,0,,true,0,0,0,0,false,0,5,,false,,4.5e6,,false,,,false,,false,,
Midgard_Hydro,true,2030,2030,false,false,1600,0,0,1,0,,true,10000,1,25000,0,false,0,5,,false,relaxed_binary,,,false,,,false,,false,,
Midgard_PHS,true,2030,2030,true,true,800,0,5000,1.75,0,,false,0,0,,1,true,500,5,1000,false,,,,false,,,false,,false,,
Midgard_Nuclear_SMR,true,2030,2030,true,false,6000,0,,6.6666667,0,,true,0,0,0,0,false,0,5,,false,,,4.5e3,false,,,false,,true,0.75,0.65
Midgard_E_imports,true,2030,2030,false,false,0,0,0,1,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Midgard_CCGT,true,2030,2030,false,false,650,0,,5,0,,false,0,0,0,0,false,0,5,,false,,,,true,basic,,true,0.4,false,,
Midgard_E_demand,true,2030,2030,false,false,0,0,0,0,19604.76443,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Valhalla_H2_generator,true,2030,2030,true,true,479,0,,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Valhalla_H2_storage,true,2030,2030,true,true,0.1,0,,0,0,,true,0,0,,10000,false,10,5,,true,,,,false,,,false,,false,,
Valhalla_H2_demand,true,2030,2030,false,false,0,0,0,0,745.735,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Valhalla_Electrolyser,true,2030,2030,true,true,1260,0,,5,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Valhalla_E_balance,true,2030,2030,false,false,0,0,0,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Valhalla_E_exports,true,2030,2030,false,false,0,0,0,0,50,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Valhalla_Fuel_cell,true,2030,2030,true,true,800,0,,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Valhalla_Heat_pump,true,2030,2030,true,true,300,0,,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Valhalla_Waste_heat,true,2030,2030,false,false,1450,0,,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Valhalla_Heat_demand,true,2030,2030,false,false,0,0,0,0,3548.42445,>=,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Valhalla_GT,true,2030,2030,true,true,400,0,100000,0,0,,false,0,0,0,0,false,0,5,,false,,,,false,,,false,,false,,
Loading

0 comments on commit 6d8e7ab

Please sign in to comment.