Indkomst


Personindkomst


INXPI302_raw <- 
  statgl_url("INXPI302", lang = language) %>% 
  statgl_fetch(
    unit              = 0,
    "place of birth"  = px_all(),
    "income interval" = px_all(),
    time              = px_top(),
    .col_code         = TRUE
  ) %>% 
  as_tibble()

INXPI302 <- 
  INXPI302_raw %>% 
  mutate(
    `place of birth`  = `place of birth` %>% fct_inorder,
    `income interval` = `income interval` %>% fct_inorder
  ) %>% 
  spread(`place of birth`, value) %>% 
  unite(combi, unit, time, sep = ", ") %>%
  mutate_if(is.integer, ~replace(., is.na(.), 0))
  

INXPI302 %>% 
  select(-combi) %>% 
  rename(" " = 1) %>% 
  statgl_table(replace_0s = TRUE) %>% 
  pack_rows(index = INXPI302[["combi"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
I alt Født i Grønland Født uden for Grønland
Personer i gruppen (antal), 2021
Alle 42.767 38.316 4.451
50.000 kr. eller mindre 5.120 4.523 597
50.001 - 100.000 kr. 4.361 4.233 128
100.001 - 200.000 kr. 11.308 10.876 432
200.001 - 300.000 kr. 7.391 6.936 455
300.001 - 400.000 kr. 5.535 4.970 565
400.001 - 500.000 kr. 3.929 3.302 627
500.001 - 600.000 kr. 2.062 1.578 484
600.001 - 700.000 kr. 1.149 797 352
700.001 - 800.000 kr. 630 405 225
800.001 - 900.000 kr. 366 229 137
900.001 - 1.000.000 kr. 239 141 98
Mere end 1.000.000 kr. 677 326 351


Se Statistikbankens tabel: INXPI302

INXPI501_raw <- 
  statgl_url("INXPI501", lang = language) %>% 
  statgl_fetch(
    unit             = px_all(),
    time             = px_top(),
    "type of income" = px_all(),
    .col_code        = TRUE
  ) %>% 
  as_tibble()

INXPI501 <- 
  INXPI501_raw %>% 
  mutate(
    unit             = unit %>% fct_inorder,
    `type of income` = `type of income` %>% fct_inorder
  ) %>% 
  spread(unit, value)

INXPI501 %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = INXPI501[["time"]] %>% table())
Nominel indkomst Realindkomst
2021
Indkomst i alt før skat 269.158 229.952
Skattepligtig indkomst 258.872 221.165
Disponibel indkomst 173.996 148.652


Se Statistikbankens tabel: INXPI501

Indkomstulighed
INXIU101_raw <- 
  statgl_url("INXIU101", lang = language) %>%
  statgl_fetch(
    indicator = px_all(),
    time      = px_top(5),
    .col_code = TRUE
  ) %>% 
  as_tibble()

INXIU101 <- 
  INXIU101_raw %>% 
  mutate(
    indicator = indicator %>% fct_inorder,
    time = time %>% fct_inorder %>% fct_rev()
  ) %>% 
  spread(time, value)

INXIU101 %>% 
  rename(" " = 1) %>% 
  statgl_table()
2021 2020 2019 2018 2017
Gini-koefficient 34,0 34,9 34,6 34,9 36,0
S80/20 5,3 5,5 5,3 5,4 5,6
Relativ fattigdom. 40 pct.-grænse 6,9 7,1 6,4 6,5 6,3
Relativ fattigdom. 50 pct.-grænse 11,6 11,4 10,5 10,5 10,7
Relativ fattigdom. 60 pct.-grænse 17,8 17,9 16,8 16,4 17,1


Se Statistikbankens tabel: INXIU101

Skattestatistik
INXSS101_raw <- 
  statgl_url("INXSS101", lang = language) %>%
  statgl_fetch(
    "tax municipality" = px_all(),
    unit               = px_all(),
    time               = px_top(),
    .col_code          = TRUE
  ) %>% 
  as_tibble()

INXSS101 <- 
  INXSS101_raw %>% 
  filter(value != "NA") %>% 
  mutate(
    unit               = unit %>% fct_inorder,
    `tax municipality` = `tax municipality` %>% fct_inorder
  ) %>% 
  spread(unit, value)

INXSS101 %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = INXSS101[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Skattepligtige personer (antal) Samlet skattepligtig indkomst (mio. kr.) Samlet indkomstskat (mio. kr.)
2021
Hele landet 49.135 12.825 4.563
Kommune Kujalleq 5.470 1.174 414
Kommuneqarfik Sermersooq 21.048 6.454 2.338
Qeqqata Kommunia 7.844 1.907 658
Kommune Qeqertalik 5.232 1.057 366
Avannaata Kommunia 9.039 1.950 692
Udenfor kommunal inddeling 516 284 95


Se Statistikbankens tabel: INXSS101


Sidst opdateret: 06. juni 2023
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGFuY2hvcl9zZWN0aW9uczogZmFsc2UNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQplZGl0b3Jfb3B0aW9uczogDQogIGNodW5rX291dHB1dF90eXBlOiBjb25zb2xlDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQoNCmtuaXRyOjpvcHRzX2NodW5rJHNldCgNCgllY2hvICAgID0gVFJVRSwNCgltZXNzYWdlID0gRkFMU0UsDQoJd2FybmluZyA9IEZBTFNFLA0KCWNsYXNzLm91dHB1dCA9ICJzY3JvbGwtMTAwIg0KKQ0KDQpsaWJyYXJ5KCJ0aWR5dmVyc2UiKQ0KbGlicmFyeSgic3RhdGdsIikNCmxpYnJhcnkoImthYmxlRXh0cmEiKQ0KbGlicmFyeSgibHVicmlkYXRlIikNCmxpYnJhcnkoInlhbWwiKQ0KDQpsYW5ndWFnZSAgPC0gcGFyYW1zJGxhbmcNCm9wdGlvbiAgICA8LSBwYXN0ZTAoIj9sYW5nPSIsIGxhbmd1YWdlLCAiJnNlbGVjdCIpDQpsb2dvICAgICAgPC0gcGFzdGUwKGdldHdkKCksIi9hZGQvbG9nby5naWYiKQ0KdHh0ICAgICAgIDwtIHJlYWRfeWFtbChwYXN0ZTAoZ2V0d2QoKSwgIi9hZGQvdHh0LnltbCIpLCBmaWxlRW5jb2RpbmcgPSAiSVNPLTg4NTktMSIpDQpzb3VyY2UgICAgPC0gdHh0JHNvdXJjZVtsYW5ndWFnZV0gJT4lIHVubGlzdCgpDQoNCnhhcmluZ2FuRXh0cmE6OnVzZV9jbGlwYm9hcmQoKQ0KDQpgYGANCg0KYGBge2NzcywgZWNobyA9IEZBTFNFfQ0KDQouYWNjb3JkaW9uIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzkxOTkwMDsNCiAgY29sb3I6IHdoaXRlOw0KICBjdXJzb3I6IHBvaW50ZXI7DQogIHBhZGRpbmc6IDE4cHg7DQogIHdpZHRoOiAxMDAlOw0KICBib3JkZXI6IG5vbmU7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgb3V0bGluZTogbm9uZTsNCiAgZm9udC1zaXplOiAxNXB4Ow0KICB0cmFuc2l0aW9uOiAwLjRzOw0KfQ0KDQouYWN0aXZlLCAuYWNjb3JkaW9uOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5NzI0MjsNCn0NCg0KLmFjY29yZGlvbjphZnRlciB7DQogIGNvbnRlbnQ6ICdcMDAyQic7DQogIGNvbG9yOiAjNzc3Ow0KICBmb250LXdlaWdodDogYm9sZDsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tbGVmdDogNXB4Ow0KfQ0KDQouYWN0aXZlOmFmdGVyIHsNCiAgY29udGVudDogIlwyMjEyIjsNCn0NCg0KLnBhbmVsIHsNCiAgcGFkZGluZzogMHB4IDVweCAwcHggNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsNCiAgbWF4LWhlaWdodDogMDsNCiAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjJzIGVhc2Utb3V0Ow0KfQ0KDQpkZXRhaWxzIHsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCmRldGFpbHMgPiBzdW1tYXJ5IHsNCiAgcGFkZGluZzogNHB4IDEycHg7DQogIHdpZHRoOiAxMDAlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3Zjk5Ow0KICBib3JkZXI6IHNvbGlkOw0KICBib3JkZXItY29sb3I6IHdoaXRlOw0KICBib3JkZXItcmFkaXVzOiA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZm9udC1zaXplOiAxNXB4Ow0KICBjb2xvcjogd2hpdGU7DQp9DQoNCmRldGFpbHNbb3Blbl0gPiBzdW1tYXJ5IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhYTQxYTsNCn0NCg0KDQoudGl0bGUgew0KICBjb2xvcjogIzFiNTQ2MzsNCiAgZm9udC1zaXplOiAzNnB4Ow0KfQ0KDQoNCi5wZXJzb25lciB7DQogIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IGJsYWNrOw0KICBiYWNrZ3JvdW5kOiAjMDA0NDU5Ow0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogIHBhZGRpbmctdG9wOiAwLjFweDsNCiAgcGFkZGluZy1ib3R0b206IDFweDsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogd2hpdGU7DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi7DuGtvbm9taSB7DQogIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IGJsYWNrOw0KICBiYWNrZ3JvdW5kOiAjMDA3Rjk5Ow0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogIHBhZGRpbmctdG9wOiAxcHg7DQogIHBhZGRpbmctYm90dG9tOiAwLjFweDsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogd2hpdGU7DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi50dsOmcmfDpWVuZGUgew0KICBib3gtc2hhZG93OiAzcHggM3B4IDRweCBibGFjazsNCiAgYmFja2dyb3VuZDogI2ZhYTQxYTsNCiAgcGFkZGluZy1yaWdodDogMTVweDsNCiAgcGFkZGluZy1sZWZ0OiAxNnB4Ow0KICBwYWRkaW5nLXRvcDogMC4xcHg7DQogIHBhZGRpbmctYm90dG9tOiAxcHg7DQogIGZvbnQtc2l6ZTogMTFweDsNCiAgY29sb3I6IHdoaXRlOw0KICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KfQ0KDQouY29udGFpbmVyIHsNCiAgd2lkdGg6IGluaGVyaXQ7DQp9DQoNCi5zY3JvbGwtMTAwIHsNCiAgbWF4LWhlaWdodDogMTAwOw0KICBvdmVyZmxvdy15OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0Ow0KfQ0KDQoNCnByZSB7DQogIG1heC1oZWlnaHQ6IDMwMHB4Ow0KICBvdmVyZmxvdy15OiBhdXRvOw0KfQ0KDQpwcmVbY2xhc3NdIHsNCiAgbWF4LWhlaWdodDogMzAwcHg7DQp9DQoNCmBgYA0KDQo8YnI+DQo8YnI+DQoNCjxjZW50ZXI+DQoNCi0tLQ0KIA0KIyBbYHIgdHh0JElOJHRpdGxlW2xhbmd1YWdlXWBdey50aXRsZX0NCiANCi0tLQ0KPC9jZW50ZXI+DQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JElOJHN1YjFbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+IA0KPGJyPg0KIA0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMTogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJJTlhQSTMwMiIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIElOWFBJMzAyfQ0KDQpJTlhQSTMwMl9yYXcgPC0gDQogIHN0YXRnbF91cmwoIklOWFBJMzAyIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICB1bml0ICAgICAgICAgICAgICA9IDAsDQogICAgInBsYWNlIG9mIGJpcnRoIiAgPSBweF9hbGwoKSwNCiAgICAiaW5jb21lIGludGVydmFsIiA9IHB4X2FsbCgpLA0KICAgIHRpbWUgICAgICAgICAgICAgID0gcHhfdG9wKCksDQogICAgLmNvbF9jb2RlICAgICAgICAgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQpJTlhQSTMwMiA8LSANCiAgSU5YUEkzMDJfcmF3ICU+JSANCiAgbXV0YXRlKA0KICAgIGBwbGFjZSBvZiBiaXJ0aGAgID0gYHBsYWNlIG9mIGJpcnRoYCAlPiUgZmN0X2lub3JkZXIsDQogICAgYGluY29tZSBpbnRlcnZhbGAgPSBgaW5jb21lIGludGVydmFsYCAlPiUgZmN0X2lub3JkZXINCiAgKSAlPiUgDQogIHNwcmVhZChgcGxhY2Ugb2YgYmlydGhgLCB2YWx1ZSkgJT4lIA0KICB1bml0ZShjb21iaSwgdW5pdCwgdGltZSwgc2VwID0gIiwgIikgJT4lDQogIG11dGF0ZV9pZihpcy5pbnRlZ2VyLCB+cmVwbGFjZSguLCBpcy5uYSguKSwgMCkpDQogIA0KDQpJTlhQSTMwMiAlPiUgDQogIHNlbGVjdCgtY29tYmkpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKHJlcGxhY2VfMHMgPSBUUlVFKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IElOWFBJMzAyW1siY29tYmkiXV0gJT4lIHRhYmxlKCkpICU+JSANCiAgcm93X3NwZWMoMSwgYm9sZCA9IFRSVUUpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiSU5YUEkzMDIiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxLzdkMjM1MTU1LWQ3YWUtNDg0Yy05YzVlLWQyMDQ4NTQ1MDdmYiIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQoNCg0KDQoNCg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDI6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiSU5YUEk1MDEiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBJTlhQSTUwMX0NCg0KSU5YUEk1MDFfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJJTlhQSTUwMSIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lIA0KICBzdGF0Z2xfZmV0Y2goDQogICAgdW5pdCAgICAgICAgICAgICA9IHB4X2FsbCgpLA0KICAgIHRpbWUgICAgICAgICAgICAgPSBweF90b3AoKSwNCiAgICAidHlwZSBvZiBpbmNvbWUiID0gcHhfYWxsKCksDQogICAgLmNvbF9jb2RlICAgICAgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCklOWFBJNTAxIDwtIA0KICBJTlhQSTUwMV9yYXcgJT4lIA0KICBtdXRhdGUoDQogICAgdW5pdCAgICAgICAgICAgICA9IHVuaXQgJT4lIGZjdF9pbm9yZGVyLA0KICAgIGB0eXBlIG9mIGluY29tZWAgPSBgdHlwZSBvZiBpbmNvbWVgICU+JSBmY3RfaW5vcmRlcg0KICApICU+JSANCiAgc3ByZWFkKHVuaXQsIHZhbHVlKQ0KDQpJTlhQSTUwMSAlPiUgDQogIHNlbGVjdCgtdGltZSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IElOWFBJNTAxW1sidGltZSJdXSAlPiUgdGFibGUoKSkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJJTlhQSTUwMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvZTQxM2FkZDgtMWMxNy00OWRjLTlkMTktYTEwYzg0ZWE0NWEyIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KDQo8L2RldGFpbHM+DQoNCg0KDQo8ZGV0YWlscz4gPHN1bW1hcnk+IGByIHR4dCRJTiRzdWIzW2xhbmd1YWdlXWAgPC9zdW1tYXJ5PiANCjxicj4NCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAzOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIklOWElVMTAxIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgSU5YSVUxMDF9DQoNCklOWElVMTAxX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiSU5YSVUxMDEiLCBsYW5nID0gbGFuZ3VhZ2UpICU+JQ0KICBzdGF0Z2xfZmV0Y2goDQogICAgaW5kaWNhdG9yID0gcHhfYWxsKCksDQogICAgdGltZSAgICAgID0gcHhfdG9wKDUpLA0KICAgIC5jb2xfY29kZSA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCklOWElVMTAxIDwtIA0KICBJTlhJVTEwMV9yYXcgJT4lIA0KICBtdXRhdGUoDQogICAgaW5kaWNhdG9yID0gaW5kaWNhdG9yICU+JSBmY3RfaW5vcmRlciwNCiAgICB0aW1lID0gdGltZSAlPiUgZmN0X2lub3JkZXIgJT4lIGZjdF9yZXYoKQ0KICApICU+JSANCiAgc3ByZWFkKHRpbWUsIHZhbHVlKQ0KDQpJTlhJVTEwMSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiSU5YSVUxMDEiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxL2VjYzJmNmUxLTMwNjAtNDU5Ny1iNTcxLWU1NzQxMjhmMTBlNyIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQo8L2RldGFpbHM+IA0KDQo8ZGV0YWlscz4gPHN1bW1hcnk+IGByIHR4dCRJTiRzdWI0W2xhbmd1YWdlXWAgPC9zdW1tYXJ5Pg0KPGJyPg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgJypUYWJlbCA0Oioge3N0YXRnbF9tZXRhKGdsdWU6OmdsdWUoImh0dHBzOi8vYmFuay5zdGF0LmdsL2FwaS92MS97bGFuZ3VhZ2V9L0dyZWVubGFuZC9JTi9JTjUwL0lOWFNTMTAxLnB4IikpIHw+IHBsdWNrKCJ0aXRsZSIpfScgfD4gZ2x1ZTo6Z2x1ZSgpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgQVJYTEVENH0NCg0KSU5YU1MxMDFfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJJTlhTUzEwMSIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lDQogIHN0YXRnbF9mZXRjaCgNCiAgICAidGF4IG11bmljaXBhbGl0eSIgPSBweF9hbGwoKSwNCiAgICB1bml0ICAgICAgICAgICAgICAgPSBweF9hbGwoKSwNCiAgICB0aW1lICAgICAgICAgICAgICAgPSBweF90b3AoKSwNCiAgICAuY29sX2NvZGUgICAgICAgICAgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQpJTlhTUzEwMSA8LSANCiAgSU5YU1MxMDFfcmF3ICU+JSANCiAgZmlsdGVyKHZhbHVlICE9ICJOQSIpICU+JSANCiAgbXV0YXRlKA0KICAgIHVuaXQgICAgICAgICAgICAgICA9IHVuaXQgJT4lIGZjdF9pbm9yZGVyLA0KICAgIGB0YXggbXVuaWNpcGFsaXR5YCA9IGB0YXggbXVuaWNpcGFsaXR5YCAlPiUgZmN0X2lub3JkZXINCiAgKSAlPiUgDQogIHNwcmVhZCh1bml0LCB2YWx1ZSkNCg0KSU5YU1MxMDEgJT4lIA0KICBzZWxlY3QoLXRpbWUpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBJTlhTUzEwMVtbInRpbWUiXV0gJT4lIHRhYmxlKCkpICU+JSANCiAgcm93X3NwZWMoMSwgYm9sZCA9IFRSVUUpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiSU5YU1MxMDEiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxLzNiYjNlNTJjLTgxMWUtNDhiMy04N2MyLWU3NTYwNDEzZmFjNCIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQoNCjwvZGV0YWlscz4gDQoNCg0KPGhyIHN0eWxlPSJib3JkZXI6MXB4IHJpZGdlIGxpZ2h0Z3JheSI+IDwvaHI+DQo8Y2VudGVyPiA8c3BhbiBzdHlsZT0nY29sb3I6I0QzRDNEMzsgZm9udC1zaXplOjkwJTsnPiBgciBwYXN0ZSh0eHQkdXBkYXRlW2xhbmd1YWdlXSwgZm9ybWF0KFN5cy5EYXRlKCksICIlZC4gJUIgJVkiKSlgIDwvc3Bhbj4gPC9jZW50ZXI+DQoNCg0KDQoNCjxzY3JpcHQ+DQp2YXIgYWNjID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYWNjb3JkaW9uIik7DQp2YXIgaTsNCg0KZm9yIChpID0gMDsgaSA8IGFjYy5sZW5ndGg7IGkrKykgew0KICBhY2NbaV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbigpIHsNCiAgICB0aGlzLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIpOw0KICAgIHZhciBwYW5lbCA9IHRoaXMubmV4dEVsZW1lbnRTaWJsaW5nOw0KICAgIGlmIChwYW5lbC5zdHlsZS5tYXhIZWlnaHQpIHsNCiAgICAgIHBhbmVsLnN0eWxlLm1heEhlaWdodCA9IG51bGw7DQogICAgfSBlbHNlIHsNCiAgICAgIHBhbmVsLnN0eWxlLm1heEhlaWdodCA9IHBhbmVsLnNjcm9sbEhlaWdodCArICJweCI7DQogICAgfSANCiAgfSk7DQp9DQo8L3NjcmlwdD4NCg==