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), 2023
Alle 42.767 37.910 4.857
50.000 kr. eller mindre 4.949 4.198 751
50.001 - 100.000 kr. 3.636 3.501 135
100.001 - 200.000 kr. 10.571 10.147 424
200.001 - 300.000 kr. 7.442 6.909 533
300.001 - 400.000 kr. 5.794 5.172 622
400.001 - 500.000 kr. 4.257 3.646 611
500.001 - 600.000 kr. 2.404 1.888 516
600.001 - 700.000 kr. 1.350 984 366
700.001 - 800.000 kr. 718 491 227
800.001 - 900.000 kr. 461 287 174
900.001 - 1.000.000 kr. 304 188 116
Mere end 1.000.000 kr. 881 499 382


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
2023
Indkomst i alt før skat 291.577 238.389
Skattepligtig indkomst 280.209 229.094
Disponibel indkomst 185.959 152.037


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()
2023 2022 2021 2020 2019
Gini-koefficient 33,9 34,2 34,3 34,9 34,6
S80/20 5,3 5,5 5,8 5,5 5,3
Relativ fattigdom. 40 pct.-grænse 7,2 7,8 8,3 7,1 6,4
Relativ fattigdom. 50 pct.-grænse 11,5 12,1 13,0 11,4 10,5
Relativ fattigdom. 60 pct.-grænse 17,4 18,4 18,9 17,9 16,8


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.)
2022
Hele landet 49.382 13.392 4.825
Kommune Kujalleq 5.328 1.180 419
Kommuneqarfik Sermersooq 21.472 6.804 2.493
Qeqqata Kommunia 7.837 1.983 697
Kommune Qeqertalik 5.126 1.082 379
Avannaata Kommunia 9.126 2.049 737
Udenfor kommunal inddeling 502 294 100


Se Statistikbankens tabel: INXSS101


Sidst opdateret: 22. juni 2025
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQoNCmxhbmd1YWdlICA8LSBwYXJhbXMkbGFuZw0Kb3B0aW9uICAgIDwtIHBhc3RlMCgiP2xhbmc9IiwgbGFuZ3VhZ2UsICImc2VsZWN0IikNCmxvZ28gICAgICA8LSBwYXN0ZTAoZ2V0d2QoKSwiL2FkZC9sb2dvLmdpZiIpDQp0eHQgICAgICAgPC0gcmVhZF95YW1sKHBhc3RlMChnZXR3ZCgpLCAiL2FkZC90eHQueW1sIiksIGZpbGVFbmNvZGluZyA9ICJJU08tODg1OS0xIikNCnNvdXJjZSAgICA8LSB0eHQkc291cmNlW2xhbmd1YWdlXSAlPiUgdW5saXN0KCkNCg0KeGFyaW5nYW5FeHRyYTo6dXNlX2NsaXBib2FyZCgpDQoNCmBgYA0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQoNCi5hY2NvcmRpb24gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTE5OTAwOw0KICBjb2xvcjogd2hpdGU7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgcGFkZGluZzogMThweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJvcmRlcjogbm9uZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBvdXRsaW5lOiBub25lOw0KICBmb250LXNpemU6IDE1cHg7DQogIHRyYW5zaXRpb246IDAuNHM7DQp9DQoNCi5hY3RpdmUsIC5hY2NvcmRpb246aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjk3MjQyOw0KfQ0KDQouYWNjb3JkaW9uOmFmdGVyIHsNCiAgY29udGVudDogJ1wwMDJCJzsNCiAgY29sb3I6ICM3Nzc7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmbG9hdDogcmlnaHQ7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQp9DQoNCi5hY3RpdmU6YWZ0ZXIgew0KICBjb250ZW50OiAiXDIyMTIiOw0KfQ0KDQoucGFuZWwgew0KICBwYWRkaW5nOiAwcHggNXB4IDBweCA1cHg7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBtYXgtaGVpZ2h0OiAwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7DQp9DQoNCmRldGFpbHMgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KZGV0YWlscyA+IHN1bW1hcnkgew0KICBwYWRkaW5nOiA0cHggMTJweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDdmOTk7DQogIGJvcmRlcjogc29saWQ7DQogIGJvcmRlci1jb2xvcjogd2hpdGU7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBmb250LXNpemU6IDE1cHg7DQogIGNvbG9yOiB3aGl0ZTsNCn0NCg0KZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhNDFhOw0KfQ0KDQoNCi50aXRsZSB7DQogIGNvbG9yOiAjMWI1NDYzOw0KICBmb250LXNpemU6IDM2cHg7DQp9DQoNCg0KLnBlcnNvbmVyIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDQ0NTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLsO4a29ub21pIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDdGOTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDFweDsNCiAgcGFkZGluZy1ib3R0b206IDAuMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLnR2w6ZyZ8OlZW5kZSB7DQogIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IGJsYWNrOw0KICBiYWNrZ3JvdW5kOiAjZmFhNDFhOw0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogIHBhZGRpbmctdG9wOiAwLjFweDsNCiAgcGFkZGluZy1ib3R0b206IDFweDsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogd2hpdGU7DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi5jb250YWluZXIgew0KICB3aWR0aDogaW5oZXJpdDsNCn0NCg0KLnNjcm9sbC0xMDAgew0KICBtYXgtaGVpZ2h0OiAxMDA7DQogIG92ZXJmbG93LXk6IGF1dG87DQogIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQp9DQoNCg0KcHJlIHsNCiAgbWF4LWhlaWdodDogMzAwcHg7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCnByZVtjbGFzc10gew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCn0NCg0KYGBgDQoNCjxicj4NCjxicj4NCg0KPGNlbnRlcj4NCg0KLS0tDQogDQojIFtgciB0eHQkSU4kdGl0bGVbbGFuZ3VhZ2VdYF17LnRpdGxlfQ0KIA0KLS0tDQo8L2NlbnRlcj4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkSU4kc3ViMVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQogDQoNCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAxOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIklOWFBJMzAyIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgSU5YUEkzMDJ9DQoNCklOWFBJMzAyX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiSU5YUEkzMDIiLCBsYW5nID0gbGFuZ3VhZ2UpICU+JSANCiAgc3RhdGdsX2ZldGNoKA0KICAgIHVuaXQgICAgICAgICAgICAgID0gMCwNCiAgICAicGxhY2Ugb2YgYmlydGgiICA9IHB4X2FsbCgpLA0KICAgICJpbmNvbWUgaW50ZXJ2YWwiID0gcHhfYWxsKCksDQogICAgdGltZSAgICAgICAgICAgICAgPSBweF90b3AoKSwNCiAgICAuY29sX2NvZGUgICAgICAgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCklOWFBJMzAyIDwtIA0KICBJTlhQSTMwMl9yYXcgJT4lIA0KICBtdXRhdGUoDQogICAgYHBsYWNlIG9mIGJpcnRoYCAgPSBgcGxhY2Ugb2YgYmlydGhgICU+JSBmY3RfaW5vcmRlciwNCiAgICBgaW5jb21lIGludGVydmFsYCA9IGBpbmNvbWUgaW50ZXJ2YWxgICU+JSBmY3RfaW5vcmRlcg0KICApICU+JSANCiAgc3ByZWFkKGBwbGFjZSBvZiBiaXJ0aGAsIHZhbHVlKSAlPiUgDQogIHVuaXRlKGNvbWJpLCB1bml0LCB0aW1lLCBzZXAgPSAiLCAiKSAlPiUNCiAgbXV0YXRlX2lmKGlzLmludGVnZXIsIH5yZXBsYWNlKC4sIGlzLm5hKC4pLCAwKSkNCiAgDQoNCklOWFBJMzAyICU+JSANCiAgc2VsZWN0KC1jb21iaSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUocmVwbGFjZV8wcyA9IFRSVUUpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gSU5YUEkzMDJbWyJjb21iaSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJJTlhQSTMwMiIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvN2QyMzUxNTUtZDdhZS00ODRjLTljNWUtZDIwNDg1NDUwN2ZiIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KDQoNCg0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMjogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJJTlhQSTUwMSIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIElOWFBJNTAxfQ0KDQpJTlhQSTUwMV9yYXcgPC0gDQogIHN0YXRnbF91cmwoIklOWFBJNTAxIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICB1bml0ICAgICAgICAgICAgID0gcHhfYWxsKCksDQogICAgdGltZSAgICAgICAgICAgICA9IHB4X3RvcCgpLA0KICAgICJ0eXBlIG9mIGluY29tZSIgPSBweF9hbGwoKSwNCiAgICAuY29sX2NvZGUgICAgICAgID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KSU5YUEk1MDEgPC0gDQogIElOWFBJNTAxX3JhdyAlPiUgDQogIG11dGF0ZSgNCiAgICB1bml0ICAgICAgICAgICAgID0gdW5pdCAlPiUgZmN0X2lub3JkZXIsDQogICAgYHR5cGUgb2YgaW5jb21lYCA9IGB0eXBlIG9mIGluY29tZWAgJT4lIGZjdF9pbm9yZGVyDQogICkgJT4lIA0KICBzcHJlYWQodW5pdCwgdmFsdWUpDQoNCklOWFBJNTAxICU+JSANCiAgc2VsZWN0KC10aW1lKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gSU5YUEk1MDFbWyJ0aW1lIl1dICU+JSB0YWJsZSgpKQ0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIklOWFBJNTAxIilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS9lNDEzYWRkOC0xYzE3LTQ5ZGMtOWQxOS1hMTBjODRlYTQ1YTIiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KDQoNCjwvZGV0YWlscz4NCg0KDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JElOJHN1YjNbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+IA0KPGJyPg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDM6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiSU5YSVUxMDEiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBJTlhJVTEwMX0NCg0KSU5YSVUxMDFfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJJTlhJVTEwMSIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lDQogIHN0YXRnbF9mZXRjaCgNCiAgICBpbmRpY2F0b3IgPSBweF9hbGwoKSwNCiAgICB0aW1lICAgICAgPSBweF90b3AoNSksDQogICAgLmNvbF9jb2RlID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KSU5YSVUxMDEgPC0gDQogIElOWElVMTAxX3JhdyAlPiUgDQogIG11dGF0ZSgNCiAgICBpbmRpY2F0b3IgPSBpbmRpY2F0b3IgJT4lIGZjdF9pbm9yZGVyLA0KICAgIHRpbWUgPSB0aW1lICU+JSBmY3RfaW5vcmRlciAlPiUgZmN0X3JldigpDQogICkgJT4lIA0KICBzcHJlYWQodGltZSwgdmFsdWUpDQoNCklOWElVMTAxICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJJTlhJVTEwMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvZWNjMmY2ZTEtMzA2MC00NTk3LWI1NzEtZTU3NDEyOGYxMGU3Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCjwvZGV0YWlscz4gDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JElOJHN1YjRbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+DQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciAnKlRhYmVsIDQ6KiB7c3RhdGdsX21ldGEoZ2x1ZTo6Z2x1ZSgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2wvYXBpL3YxL3tsYW5ndWFnZX0vR3JlZW5sYW5kL0lOL0lONTAvSU5YU1MxMDEucHgiKSkgfD4gcGx1Y2soInRpdGxlIil9JyB8PiBnbHVlOjpnbHVlKCkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBBUlhMRUQ0fQ0KDQpJTlhTUzEwMV9yYXcgPC0gDQogIHN0YXRnbF91cmwoIklOWFNTMTAxIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgICJ0YXggbXVuaWNpcGFsaXR5IiA9IHB4X2FsbCgpLA0KICAgIHVuaXQgICAgICAgICAgICAgICA9IHB4X2FsbCgpLA0KICAgIHRpbWUgICAgICAgICAgICAgICA9IHB4X3RvcCgpLA0KICAgIC5jb2xfY29kZSAgICAgICAgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCklOWFNTMTAxIDwtIA0KICBJTlhTUzEwMV9yYXcgJT4lIA0KICBmaWx0ZXIodmFsdWUgIT0gIk5BIikgJT4lIA0KICBtdXRhdGUoDQogICAgdW5pdCAgICAgICAgICAgICAgID0gdW5pdCAlPiUgZmN0X2lub3JkZXIsDQogICAgYHRheCBtdW5pY2lwYWxpdHlgID0gYHRheCBtdW5pY2lwYWxpdHlgICU+JSBmY3RfaW5vcmRlcg0KICApICU+JSANCiAgc3ByZWFkKHVuaXQsIHZhbHVlKQ0KDQpJTlhTUzEwMSAlPiUgDQogIHNlbGVjdCgtdGltZSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IElOWFNTMTAxW1sidGltZSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJJTlhTUzEwMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvM2JiM2U1MmMtODExZS00OGIzLTg3YzItZTc1NjA0MTNmYWM0Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KPC9kZXRhaWxzPiANCg0KDQo8aHIgc3R5bGU9ImJvcmRlcjoxcHggcmlkZ2UgbGlnaHRncmF5Ij4gPC9ocj4NCjxjZW50ZXI+IDxzcGFuIHN0eWxlPSdjb2xvcjojRDNEM0QzOyBmb250LXNpemU6OTAlOyc+IGByIHBhc3RlKHR4dCR1cGRhdGVbbGFuZ3VhZ2VdLCBmb3JtYXQoU3lzLkRhdGUoKSwgIiVkLiAlQiAlWSIpKWAgPC9zcGFuPiA8L2NlbnRlcj4NCg0KDQoNCg0KPHNjcmlwdD4NCnZhciBhY2MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhY2NvcmRpb24iKTsNCnZhciBpOw0KDQpmb3IgKGkgPSAwOyBpIDwgYWNjLmxlbmd0aDsgaSsrKSB7DQogIGFjY1tpXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCkgew0KICAgIHRoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7DQogICAgdmFyIHBhbmVsID0gdGhpcy5uZXh0RWxlbWVudFNpYmxpbmc7DQogICAgaWYgKHBhbmVsLnN0eWxlLm1heEhlaWdodCkgew0KICAgICAgcGFuZWwuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsNCiAgICB9IGVsc2Ugew0KICAgICAgcGFuZWwuc3R5bGUubWF4SGVpZ2h0ID0gcGFuZWwuc2Nyb2xsSGVpZ2h0ICsgInB4IjsNCiAgICB9IA0KICB9KTsNCn0NCjwvc2NyaXB0Pg0K