33,699 scriptprogrammering illustrationer og vektorer er tilgængelige Royalty Free.

Vektorillustration af en slange, der kommer ud af en knust skærm med AI-hjerne- og håndtryksikoner. Teknologi, innovation, digital transformation, automatisering, partnerskab, softwareudvikling. Python.
Vektorillustration af en slange, der kommer ud af en knust skærm med AI-hjerne- og håndtryksikoner. Teknologi, innovation, digital transformation, automatisering, partnerskab, softwareudvikling. Python.
Samling af sorte glyph-ikoner til softwaretest og kvalitetssikring, herunder symboler for fejl, reagensglas, flueben, tjekliste, forstørrelsesglas, tandhjul, kode, advarsel og database, isoleret på en hvid baggrund.
Samling af sorte glyph-ikoner til softwaretest og kvalitetssikring, herunder symboler for fejl, reagensglas, flueben, tjekliste, forstørrelsesglas, tandhjul, kode, advarsel og database, isoleret på en hvid baggrund.
Webudvikling, innovation, teamwork, digitale medier, kodning, online læring. Bærbar computer med kodningselementer, tekst-multimedia-ikoner og en pære. Koncepter for webudvikling og innovation.
Webudvikling, innovation, teamwork, digitale medier, kodning, online læring. Bærbar computer med kodningselementer, tekst-multimedia-ikoner og en pære. Koncepter for webudvikling og innovation.
Denne rene vektorillustration viser en rektangulær brugerflade med vandrette linjer, der symboliserer data eller tekst. En pil, der peger opad, er placeret nederst i midten og indikerer en upload- eller overførselshandling. Designet bruger en blød farvepalette med mørke konturer, hvilket skaber en moderne og professionel æstetik, der er velegnet til teknologi.
Denne rene vektorillustration viser en rektangulær brugerflade med vandrette linjer, der symboliserer data eller tekst. En pil, der peger opad, er placeret nederst i midten og indikerer en upload- eller overførselshandling. Designet bruger en blød farvepalette med mørke konturer, hvilket skaber en moderne og professionel æstetik, der er velegnet til teknologi.
Sæt med cybersikkerhedsikoner: en hængelås, nøgler og kodeparenteser til et landing page banner til digital sikkerhed. Dataprivatliv, kryptering, softwareudvikling, adgangskontrol, internetsikkerhed.
Sæt med cybersikkerhedsikoner: en hængelås, nøgler og kodeparenteser til et landing page banner til digital sikkerhed. Dataprivatliv, kryptering, softwareudvikling, adgangskontrol, internetsikkerhed.
I stilheden i et svagt oplyst rum kommer en kraftfuld multi-monitor arbejdsstation til live, hvis skærme er fyldt med kaskaderende grøn kode. Dette er kommandocentralen for en hemmelig operation, hvor komplekse data analyseres og digitale fæstninger brydes, hvilket repræsenterer verden af cybersikkerhed og digital spionage.
I stilheden i et svagt oplyst rum kommer en kraftfuld multi-monitor arbejdsstation til live, hvis skærme er fyldt med kaskaderende grøn kode. Dette er kommandocentralen for en hemmelig operation, hvor komplekse data analyseres og digitale fæstninger brydes, hvilket repræsenterer verden af cybersikkerhed og digital spionage.
Dette billede med høj kontrast viser en mørk, tekstureret sfære, der hviler på en reflekterende overflade i mørket. Den metalliske globus er kraftigt revnet og afslører lysende datastrømme og abstrakt skrift, der gløder i levende turkis og rødorange farver. Renderet af AI, repræsenterer denne visualisering begreber som korrupt teknologi, brudt digital sikkerhed eller skjult viden. Den skaber et kraftfuldt, mystisk billede.
Dette billede med høj kontrast viser en mørk, tekstureret sfære, der hviler på en reflekterende overflade i mørket. Den metalliske globus er kraftigt revnet og afslører lysende datastrømme og abstrakt skrift, der gløder i levende turkis og rødorange farver. Renderet af AI, repræsenterer denne visualisering begreber som korrupt teknologi, brudt digital sikkerhed eller skjult viden. Den skaber et kraftfuldt, mystisk billede.
Landingpage-banner til digital markedsføring med en megafon og HTML-kodeelementer. Annoncering, webudvikling, online promovering, forretningsvækst, kodning, software engineering. Marketingkampagne.
Landingpage-banner til digital markedsføring med en megafon og HTML-kodeelementer. Annoncering, webudvikling, online promovering, forretningsvækst, kodning, software engineering. Marketingkampagne.
Vektorillustration af en programmør, der arbejder på en bærbar computer med PHP-elefant- og MySQL-delfinmaskotter. Software engineering, databaseadministration, webudvikling, kodning, backend, teknologi. Udvikler.
Vektorillustration af en programmør, der arbejder på en bærbar computer med PHP-elefant- og MySQL-delfinmaskotter. Software engineering, databaseadministration, webudvikling, kodning, backend, teknologi. Udvikler.
En mørk, højteknologisk arbejdsplads med flere computerskærme, der viser kompleks kode og netværksdiagrammer, oplyst af neonblåt lys. Et tastatur, papirer og kaffekopper er på skrivebordet, hvilket skaber en atmosfære af fokuseret natlig udvikling.
En mørk, højteknologisk arbejdsplads med flere computerskærme, der viser kompleks kode og netværksdiagrammer, oplyst af neonblåt lys. Et tastatur, papirer og kaffekopper er på skrivebordet, hvilket skaber en atmosfære af fokuseret natlig udvikling.
Software Debugging-logoet skaber en undersøgende identitet for virksomheder, der specialiserer sig i kodeinspektion, og dette Software Debugging-logo sikrer kodens integritet. Som et dedikeret Software Debugging-logo kommunikerer emblemet effektivt en grundig scanning til kunder, der søger fejlfrit software.
Software Debugging-logoet skaber en undersøgende identitet for virksomheder, der specialiserer sig i kodeinspektion, og dette Software Debugging-logo sikrer kodens integritet. Som et dedikeret Software Debugging-logo kommunikerer emblemet effektivt en grundig scanning til kunder, der søger fejlfrit software.
Valg af køretøj, kodningsundervisning, energiløsninger, softwarestyring, dataanalyse, brugerbeslutninger. Mand der holder et stik nær idéer og kodningselementer. Dataanalyse og kodningsundervisning.
Valg af køretøj, kodningsundervisning, energiløsninger, softwarestyring, dataanalyse, brugerbeslutninger. Mand der holder et stik nær idéer og kodningselementer. Dataanalyse og kodningsundervisning.
Vektorillustration af en person, der arbejder på en computer med en CEX-børs og MySQL-delfinlogoet. Softwareudvikling, databaseadministration, kryptovalutahandel, kodning, teknologi, webdesign.
Vektorillustration af en person, der arbejder på en computer med en CEX-børs og MySQL-delfinlogoet. Softwareudvikling, databaseadministration, kryptovalutahandel, kodning, teknologi, webdesign.
En hånd ses interagere med en digital skærm, der viser glødende kode. Skærmen indeholder kodelinjer i blå og orange nuancer, hvilket skaber en futuristisk og teknologisk æstetik. Hånden er placeret, som om den rører eller manipulerer de virtuelle data, hvilket understreger interaktionen mellem menneske og teknologi.
En hånd ses interagere med en digital skærm, der viser glødende kode. Skærmen indeholder kodelinjer i blå og orange nuancer, hvilket skaber en futuristisk og teknologisk æstetik. Hånden er placeret, som om den rører eller manipulerer de virtuelle data, hvilket understreger interaktionen mellem menneske og teknologi.
Illustration af en kvinde, der arbejder på en bærbar computer, sandsynligvis en programmør eller udvikler. Hun sidder ved et skrivebord med en kop kaffe i nærheden. Den bærbare computers skærm viser kodesymboler. Det overordnede design er rent og moderne, velegnet til at repræsentere fjernarbejde, softwareudvikling eller teknologirelaterede koncepter.
Illustration af en kvinde, der arbejder på en bærbar computer, sandsynligvis en programmør eller udvikler. Hun sidder ved et skrivebord med en kop kaffe i nærheden. Den bærbare computers skærm viser kodesymboler. Det overordnede design er rent og moderne, velegnet til at repræsentere fjernarbejde, softwareudvikling eller teknologirelaterede koncepter.
Quantum Code-logoet giver en overbevisende visuel identitet til videnskabelige forskningslaboratorier, og dette Quantum Code-logo skaber teknologisk tillid. Som et ekspert Quantum Code-logo demonstrerer emblemet effektivt atomar præcision for partnere, der søger videnskabelig vækst.
Quantum Code-logoet giver en overbevisende visuel identitet til videnskabelige forskningslaboratorier, og dette Quantum Code-logo skaber teknologisk tillid. Som et ekspert Quantum Code-logo demonstrerer emblemet effektivt atomar præcision for partnere, der søger videnskabelig vækst.
Et nærbillede viser en fokuseret udvikler, der intenst skriver kode på et laptop-tastatur i de mørke timer. Denne scene fanger perfekt intensiteten af fjernarbejde og softwareudvikling. Renderet af AI, står det varme baggrundslys i skarp kontrast til skærmens blå glød, hvilket understreger dedikation og produktivitet. Programmøren arbejder effektivt med at skabe nye digitale løsninger.
Et nærbillede viser en fokuseret udvikler, der intenst skriver kode på et laptop-tastatur i de mørke timer. Denne scene fanger perfekt intensiteten af fjernarbejde og softwareudvikling. Renderet af AI, står det varme baggrundslys i skarp kontrast til skærmens blå glød, hvilket understreger dedikation og produktivitet. Programmøren arbejder effektivt med at skabe nye digitale løsninger.
En computerskærm viser HTML-kode på venstre side med tags indlejret i en sort brugerflade. Koden indeholder typiske HTML-elementer som `<html>`, `<head>` og `<title>`. På højre side af skærmen er der et billede af snedækkede bjerge ved solopgang eller solnedgang, som viser en naturskøn udsigt.
En computerskærm viser HTML-kode på venstre side med tags indlejret i en sort brugerflade. Koden indeholder typiske HTML-elementer som ``, `` og ``. På højre side af skærmen er der et billede af snedækkede bjerge ved solopgang eller solnedgang, som viser en naturskøn udsigt.</figcaption> </figure> </a> <div class="item__info"> <p class="item__title js-item-title"> <a href="https://dk.dreamstime.com/computerskærm-med-html-kode-og-bjergbillede-image461385037" > Computerskærm med HTML-kode og bjergbillede. En computerskærm viser HTML-kode på venstre side med tags indlejret i en sort brugerflade. Koden indeholder typiske HTML-elementer som `<html>`, `<head>` og `<title>`. På højre side af skærmen er der et billede af snedækkede bjerge ved solopgang eller solnedgang, som viser en naturskøn udsigt. </a> </p> </div> </article> <article class="item item64 item-photo js-listing-item" data-id="426597078" data-type="image" data-dt-id="#ilc1" data-dt-on-mouseenter="" data-dt-on-touchstart="" > <div class="item__actions"> <a href="https://dk.dreamstime.com/search.php?srh_field=nærbillede+person+der+undersøger&s_il=y" class="item__similars-link js-similars-link" rel="nofollow" target="_blank" aria-label="Vis lignende resultater" data-dt-id="item-similars-link" data-dt-on-mouseenter="" data-dt-on-touchstart=""><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#fff" fill-rule="evenodd" d="M0 1a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1zm4 4.072c0 1.694 1.404 3.071 3.13 3.071l.178-.004c.55-.03 1.061-.2 1.5-.474l2.16 2.166a.625.625 0 0 0 .855 0 .585.585 0 0 0 0-.838L9.685 6.847a3 3 0 0 0 .576-1.775C10.261 3.378 8.857 2 7.131 2 5.403 2 4 3.378 4 5.072m1.208 0c0-1.04.863-1.887 1.922-1.887l.15.006c.99.076 1.773.89 1.773 1.881 0 .528-.223 1.007-.58 1.35l-.039.028a.1.1 0 0 0-.016.021 1.94 1.94 0 0 1-1.288.487c-1.06 0-1.922-.846-1.922-1.886M2 13h12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1m2 2h8a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1"/></svg></a> <button class="item__lightbox-btn js-item-lightbox-add-btn" type="button" data-id="426597078" data-lb-state="add" aria-label="Tilføj til Lightbox" data-aria-label-add="Tilføj til Lightbox" data-aria-label-remove="Fjern fra Lightbox" data-dt-id="item-lightbox-btn" data-dt-on-click="" data-dt-on-mouseenter="" data-dt-on-touchstart=""><svg xmlns="http://www.w3.org/2000/svg"><path fill="#fff" d="M6 0h4v16H6V0Z"/><path fill="#fff" d="m0 10-1.7e-7-4 16-7e-7 1.7e-7 4L0 10Z"/></svg></button> <a class="item-btn-trial btn btn--green" href="https://dk.dreamstime.com/securecredits2.php?subscriptionid=816&packagetype=0" rel="nofollow" aria-label="Gratis med prøveperiode"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 13.998"><path fill-rule="evenodd" d="M14 13.998H0v-3h1.5v1.5h11v-1.5H14v3ZM6.2 0v4.904H3.528L7 9.996l3.472-5.092H7.8V0H6.2Z"/></svg><span>Gratis med prøveperiode</span></a> </div> <a href="https://dk.dreamstime.com/udvikler-inspicerer-kode-med-forstørrelsesglas-image426597078" class="item__url js-item-title-wrapper" aria-label="Udvikler inspicerer kode med forstørrelsesglas" target="_blank"> <figure> <img class="item__thumb" src="https://thumbs.dreamstime.com/b/udvikler-inspicerer-kode-med-forstørrelsesglas-426597078.jpg" loading="lazy" alt="Nærbillede af en person, der undersøger kode på en computerskærm med et forstørrelsesglas." srcset="https://thumbs.dreamstime.com/b/udvikler-inspicerer-kode-med-forstørrelsesglas-426597078.jpg?w=360 360w, https://thumbs.dreamstime.com/b/udvikler-inspicerer-kode-med-forstørrelsesglas-426597078.jpg?w=400 400w, https://thumbs.dreamstime.com/b/udvikler-inspicerer-kode-med-forstørrelsesglas-426597078.jpg?w=450 450w, https://thumbs.dreamstime.com/b/udvikler-inspicerer-kode-med-forstørrelsesglas-426597078.jpg?w=576 576w, https://thumbs.dreamstime.com/b/udvikler-inspicerer-kode-med-forstørrelsesglas-426597078.jpg?w=768 768w, https://thumbs.dreamstime.com/b/udvikler-inspicerer-kode-med-forstørrelsesglas-426597078.jpg?w=992 992w" sizes="(max-width: 359.98px) 360px, (min-width: 360px) and (max-width: 399.98px) 400px, (min-width: 400px) and (max-width: 449.98px) 450px, (min-width: 450px) and (max-width: 575.98px) 576px, (min-width: 576px) and (max-width: 767.98px) 768px, 992px"> <figcaption class="item__caption">Nærbillede af en person, der undersøger kode på en computerskærm med et forstørrelsesglas.</figcaption> </figure> </a> <div class="item__info"> <p class="item__title js-item-title"> <a href="https://dk.dreamstime.com/udvikler-inspicerer-kode-med-forstørrelsesglas-image426597078" > Udvikler inspicerer kode med forstørrelsesglas. Nærbillede af en person, der undersøger kode på en computerskærm med et forstørrelsesglas </a> </p> </div> </article> <article class="item item65 item-photo js-listing-item" data-id="447691070" data-type="image" data-dt-id="#ilc1" data-dt-on-mouseenter="" data-dt-on-touchstart="" > <div class="item__actions"> <a href="https://dk.dreamstime.com/search.php?srh_field=ikon+sæt+til+udvikling&s_il=y" class="item__similars-link js-similars-link" rel="nofollow" target="_blank" aria-label="Vis lignende resultater" data-dt-id="item-similars-link" data-dt-on-mouseenter="" data-dt-on-touchstart=""><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#fff" fill-rule="evenodd" d="M0 1a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1zm4 4.072c0 1.694 1.404 3.071 3.13 3.071l.178-.004c.55-.03 1.061-.2 1.5-.474l2.16 2.166a.625.625 0 0 0 .855 0 .585.585 0 0 0 0-.838L9.685 6.847a3 3 0 0 0 .576-1.775C10.261 3.378 8.857 2 7.131 2 5.403 2 4 3.378 4 5.072m1.208 0c0-1.04.863-1.887 1.922-1.887l.15.006c.99.076 1.773.89 1.773 1.881 0 .528-.223 1.007-.58 1.35l-.039.028a.1.1 0 0 0-.016.021 1.94 1.94 0 0 1-1.288.487c-1.06 0-1.922-.846-1.922-1.886M2 13h12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1m2 2h8a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1"/></svg></a> <button class="item__lightbox-btn js-item-lightbox-add-btn" type="button" data-id="447691070" data-lb-state="add" aria-label="Tilføj til Lightbox" data-aria-label-add="Tilføj til Lightbox" data-aria-label-remove="Fjern fra Lightbox" data-dt-id="item-lightbox-btn" data-dt-on-click="" data-dt-on-mouseenter="" data-dt-on-touchstart=""><svg xmlns="http://www.w3.org/2000/svg"><path fill="#fff" d="M6 0h4v16H6V0Z"/><path fill="#fff" d="m0 10-1.7e-7-4 16-7e-7 1.7e-7 4L0 10Z"/></svg></button> <a class="item-btn-trial btn btn--green" href="https://dk.dreamstime.com/securecredits2.php?subscriptionid=816&packagetype=0" rel="nofollow" aria-label="Gratis med prøveperiode"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 13.998"><path fill-rule="evenodd" d="M14 13.998H0v-3h1.5v1.5h11v-1.5H14v3ZM6.2 0v4.904H3.528L7 9.996l3.472-5.092H7.8V0H6.2Z"/></svg><span>Gratis med prøveperiode</span></a> </div> <a href="https://dk.dreamstime.com/ikon-sæt-til-udvikling-af-kodningsværktøjer-image447691070" class="item__url js-item-title-wrapper" aria-label="Ikon-sæt til udvikling af kodningsværktøjer" target="_blank"> <figure> <img class="item__thumb" src="https://thumbs.dreamstime.com/b/ikon-sæt-til-udvikling-af-kodningsværktøjer-447691070.jpg" loading="lazy" alt="Ikon-sæt til udvikling af kodningsværktøjer vol 8654" srcset="https://thumbs.dreamstime.com/b/ikon-sæt-til-udvikling-af-kodningsværktøjer-447691070.jpg?w=360 360w, https://thumbs.dreamstime.com/b/ikon-sæt-til-udvikling-af-kodningsværktøjer-447691070.jpg?w=400 400w, https://thumbs.dreamstime.com/b/ikon-sæt-til-udvikling-af-kodningsværktøjer-447691070.jpg?w=450 450w, https://thumbs.dreamstime.com/b/ikon-sæt-til-udvikling-af-kodningsværktøjer-447691070.jpg?w=576 576w, https://thumbs.dreamstime.com/b/ikon-sæt-til-udvikling-af-kodningsværktøjer-447691070.jpg?w=768 768w, https://thumbs.dreamstime.com/b/ikon-sæt-til-udvikling-af-kodningsværktøjer-447691070.jpg?w=992 992w, https://thumbs.dreamstime.com/b/ikon-sæt-til-udvikling-af-kodningsværktøjer-447691070.jpg?w=1200 1200w, https://thumbs.dreamstime.com/b/ikon-sæt-til-udvikling-af-kodningsværktøjer-447691070.jpg?w=1400 1400w" sizes="(max-width: 359.98px) 360px, (min-width: 360px) and (max-width: 399.98px) 400px, (min-width: 400px) and (max-width: 449.98px) 450px, (min-width: 450px) and (max-width: 575.98px) 576px, (min-width: 576px) and (max-width: 767.98px) 768px, (min-width: 768px) and (max-width: 991.98px) 992px, (min-width: 992px) and (max-width: 1199.98px) 1200px, 1400px"> <figcaption class="item__caption">Ikon-sæt til udvikling af kodningsværktøjer vol 8654</figcaption> </figure> </a> <div class="item__info"> <p class="item__title js-item-title"> <a href="https://dk.dreamstime.com/ikon-sæt-til-udvikling-af-kodningsværktøjer-image447691070" > Ikon-sæt til udvikling af kodningsværktøjer </a> </p> </div> </article> <article class="item-last js-item-last"></article> </div> </div> <div class="search-btm"> <div class="container-fluid"> <div class="row"> <div class="col-sm-12 col-md-4 order-md-1"> <a class="next-button js-next-page-button" href="https://dk.dreamstime.com/illustration/scriptprogrammering.html?pg=100" title="Side 100" data-dt-id="next-page-button" data-dt-root="" data-dt-on-document-key-arrowright="" data-dt-dispatch-target="original" data-dt-js="44"> <div class="next-button__keynav"></div> <div class="next-button__label">Næste side.</div> <svg class="next-button__big" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 26"><path fill-rule="evenodd" d="M24.87 14.82 2.947 25.78A2.037 2.037 0 0 1 0 23.96V2.036A2.037 2.037 0 0 1 2.947.215L24.87 11.176a2.037 2.037 0 0 1 0 3.644Z"/></svg></a> </div> <div class="col-sm-12 col-md-8"> <nav class="pagination pagination--list" aria-label="Pagineringssideinddeling"> <a class="pagination__item pagination__item--prev js-pagination-prev" href="https://dk.dreamstime.com/illustration/scriptprogrammering.html?pg=98" title="Side 98" ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10"><path fill-rule="nonzero" d="M6 8.694 4.757 10 1.243 6.306 0 5l1.243-1.306L4.757 0 6 1.306 2.486 5 6 8.694Z"/></svg></a> <ul class="pagination__list js-pagination-list" > <li> <a class="pagination__item pagination__item--page js-pg-list-item" href="https://dk.dreamstime.com/illustration/scriptprogrammering.html?pg=95" title="Gå til side 95" >95</a> </li> <li> <a class="pagination__item pagination__item--page js-pg-list-item" href="https://dk.dreamstime.com/illustration/scriptprogrammering.html?pg=96" title="Gå til side 96" >96</a> </li> <li> <a class="pagination__item pagination__item--page js-pg-list-item" href="https://dk.dreamstime.com/illustration/scriptprogrammering.html?pg=97" title="Gå til side 97" >97</a> </li> <li> <a class="pagination__item pagination__item--page js-pg-list-item" href="https://dk.dreamstime.com/illustration/scriptprogrammering.html?pg=98" title="Gå til side 98" >98</a> </li> <li> <a class="pagination__item pagination__item--page js-pg-list-item" href="https://dk.dreamstime.com/illustration/scriptprogrammering.html?pg=99" title="Nuværende side, Side 99" aria-current="page" data-state="active" >99</a> </li> <li> <a class="pagination__item pagination__item--page js-pg-list-item" href="https://dk.dreamstime.com/illustration/scriptprogrammering.html?pg=100" title="Gå til side 100" >100</a> </li> <li> <a class="pagination__item pagination__item--page js-pg-list-item" href="https://dk.dreamstime.com/illustration/scriptprogrammering.html?pg=101" title="Gå til side 101" >101</a> </li> <li> <a class="pagination__item pagination__item--page js-pg-list-item" href="https://dk.dreamstime.com/illustration/scriptprogrammering.html?pg=102" title="Gå til side 102" >102</a> </li> <li> <a class="pagination__item pagination__item--page js-pg-list-item" href="https://dk.dreamstime.com/illustration/scriptprogrammering.html?pg=103" title="Gå til side 103" >103</a> </li> <li> <a class="pagination__item pagination__item--page js-pg-list-item" href="https://dk.dreamstime.com/illustration/scriptprogrammering.html?pg=104" title="Gå til side 104" >104</a> </li> </ul> <a class="pagination__item pagination__item--next js-pagination-next" href="https://dk.dreamstime.com/illustration/scriptprogrammering.html?pg=100" title="Side 100" ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10"><path fill-rule="nonzero" d="M-.003 8.694 1.24 10l3.515-3.694L5.997 5 4.755 3.694 1.24 0-.003 1.306 3.511 5-.003 8.694Z"/></svg></a> </nav> </div> </div> </div> </div> <div class="share-btn-wrapper share-btn-wrapper--icn search-share"> <button type="button" class="share-btn js-share-btn" data-dt-id="share-btn" data-dt-on-click="" data-dt-show-loading="" data-dt-loading-type="area" data-dt-loading-theme="dark" data-dt-loading-relative="" data-dt-loading-size="sml" data-dt-root="" data-dt-css="45,46,47,48,49,50,51,52,53" data-dt-js="54,29,30,55,56" aria-label="Del" > <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 22 16"><path d="M12.7 0 14 1.1l7.3 6.3.7.5-.6.5-7.4 6.4-1.3 1.1v-4.8h-2c-4 0-6.9 1.1-9.2 3.3L0 16l.4-2.3v-.3c.4-2.2 1.5-4.1 3.2-5.6l.2-.2C6 5.8 8.9 4.8 12.5 4.8h.3L12.7 0zm1.6 3.3v3h-.8c-3.6-.2-6.6.7-8.7 2.4l-.2.2c-.9.8-1.5 1.7-2 2.7l-.1.2.2-.2c2.1-1.3 4.7-2 7.7-2H14.3v3L19.7 8l-5.4-4.7z"/></svg> </button> </div> </main> <div data-state="hidden" data-dt-id="popup-freetrial" data-dt-root="" data-dt-on-document-mouseleave="" data-dt-priority="high" data-dt-dispatch-target="document" data-dt-js="4,6,65" data-dt-js-order="8,9" data-dt-css="10,11,66"></div> <div class = "js-signup-popup-interaction" data-state="hidden" data-deps="{"js":"4,5,6,7","js-order":"8,9","css":"10,11,12"}" data-dt-id="signup-popup-interaction" data-dt-root="" data-dt-on-document-mousemove="" data-dt-on-document-touchstart="" data-dt-on-window-scroll="" data-dt-on-click="" data-dt-on-keypress="" data-dt-js="67"></div> <footer > <div class="footer-main"> <div class="container"> <div class="row"> <div class="col-md-1 col-sm-12"> <a class="footer-logo" name="Dreamstime" href="https://dk.dreamstime.com/" aria-label="Dreamstime homepage"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 31"><path fill-rule="evenodd" clip-rule="evenodd" fill="#50a901" d="M28.7 6.3c-6.1-9-19.2-7.4-25-.7C.8 8.9-.3 13.5.1 17.7.5 21 1.7 24 3.4 26c4.5 5.5 12.3 6.1 17.4 2.6 7.2-5 6.7-13.1 2.8-17.6-7-8-19-.1-14.5 9 1.1 2.2 3.6 3.4 5.9 3.4 3.2 0 5.7-3.8 4.2-6.1-1.5-2.4-4.1 0-3 1.8.9 1.4-1 2.2-1.8 2-2.1-.5-3.1-3.4-2.4-5.8.6-2.1 2.8-3.5 4.9-3.4 2.9.2 6.1 2.5 5.8 7.5-.7 8.1-11.3 9.6-15.5 3.8-6.6-9.3 1.2-21.8 13.1-18 6.1 2 10.6 9.2 7.8 16.9-1.1 2.9-1.7 4-1.8 5-.5 3.7 11.2-7.8 2.4-20.8z"/></svg> </a> </div> <div class="col-xl-8 col-md-11 col-sm-12"> <div class="footer-menu js-footer-menu-wrapper" data-list-initial="opened" data-state="opened"> <div class="row flex-sm-nowrap"> <div class="col-sm-3 col-6"> <div class="footer-menu__col"> <div class="footer-menu__title js-footer-menu-trigger" data-dt-id="footer-menu" data-dt-root="" data-dt-on-click="" data-dt-js="54" data-dt-js-order="1,68" data-dt-show-loading="" data-dt-loading-theme="light" data-dt-loading-type="area" data-dt-loading-relative="" data-dt-loading-size="sml" > <span>Supportcenter</span> <svg class="footer-menu__icn" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 6"><path fill-rule="nonzero" d="m8.69 0 1.306 1.243-3.694 3.514L4.996 6 3.69 4.757-.004 1.243 1.302 0l3.694 3.514L8.69 0Z"/></svg> </div> <div class="footer-menu__list js-footer-menu-list"> <ul> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/about-stock-image-licenses" title="Om vores fotos">Om vores fotos</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/terms" title="Juridisk / brugsbetingelser">Juridisk / brugsbetingelser</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/contact" title="Kontakt os">Kontakt os</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/faq" title="Ofte stillede spørgsmål">Ofte stillede spørgsmål</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/sitemap" title="Sitemap">Sitemap</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/privacy" title="Privatlivspolitik">Privatlivspolitik</a></li> </ul> </div> </div> </div> <div class="col-sm-3 col-6"> <div class="footer-menu__col"> <div class="footer-menu__title js-footer-menu-trigger" data-dt-id="footer-menu" data-dt-root="" data-dt-on-click="" data-dt-js="54" data-dt-js-order="1,68" data-dt-show-loading="" data-dt-loading-theme="light" data-dt-loading-type="area" data-dt-loading-relative="" data-dt-loading-size="sml" > <span>Dreamstime</span> <svg class="footer-menu__icn" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 6"><path fill-rule="nonzero" d="m8.69 0 1.306 1.243-3.694 3.514L4.996 6 3.69 4.757-.004 1.243 1.302 0l3.694 3.514L8.69 0Z"/></svg> </div> <div class="footer-menu__list js-footer-menu-list"> <ul> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/extended-stock-photography-licenses" title="Seneste billeder">Seneste billeder</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/about" title="Om os">Om os</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/media-room" title="Presseområde">Presseområde</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/careers" title="Karrierer hos Dreamstime">Karriere</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/merchandise" title="Dreamstime Vare">Vare</a></li> </ul> </div> </div> </div> <div class="col-sm-3 col-6"> <div class="footer-menu__col"> <div class="footer-menu__title js-footer-menu-trigger" data-dt-id="footer-menu" data-dt-root="" data-dt-on-click="" data-dt-js="54" data-dt-js-order="1,68" data-dt-show-loading="" data-dt-loading-theme="light" data-dt-loading-type="area" data-dt-loading-relative="" data-dt-loading-size="sml" > <span>Fællesskab</span> <svg class="footer-menu__icn" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 6"><path fill-rule="nonzero" d="m8.69 0 1.306 1.243-3.694 3.514L4.996 6 3.69 4.757-.004 1.243 1.302 0l3.694 3.514L8.69 0Z"/></svg> </div> <div class="footer-menu__list js-footer-menu-list"> <ul> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/sell-stock-photos-images" title="Sælg dine billeder">Sælg dine billeder</a></li> <li><a class="footer-menu__url" href="https://www.dreamstime.com/boards" title="Opslagstavler">Opslagstavler</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/social-networking" title="Socialt knudepunkt">Socialt knudepunkt</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/upload" title="Upload billede">Upload billede</a></li> <li><a data-dt-id="footer-menu-api-url" data-dt-root="" data-dt-on-click="" data-dt-on-auxclick="" data-dt-on-click-preventdefault="" data-dt-js="69" class="footer-menu__url footer-menu__url--highlighted js-footer-menu-url-api" href="https://dk.dreamstime.com/dreamstime-api" title="API">API</a> <span class="footer-menu__sep">/</span> <a class="footer-menu__url footer-menu__url--highlighted" href="https://dk.dreamstime.com/affiliate-referral-program" title="Henvisningsprogram">Henvisningsprogram</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/contest" title="Konkurrence">Konkurrence</a></li> </ul> </div> </div> </div> <div class="col-sm-3 col-6"> <div class="footer-menu__col"> <div class="footer-menu__title js-footer-menu-trigger" data-dt-id="footer-menu" data-dt-root="" data-dt-on-click="" data-dt-js="54" data-dt-js-order="1,68" data-dt-show-loading="" data-dt-loading-theme="light" data-dt-loading-type="area" data-dt-loading-relative="" data-dt-loading-size="sml" > <span>Værktøjer</span> <svg class="footer-menu__icn" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 6"><path fill-rule="nonzero" d="m8.69 0 1.306 1.243-3.694 3.514L4.996 6 3.69 4.757-.004 1.243 1.302 0l3.694 3.514L8.69 0Z"/></svg> </div> <div class="footer-menu__list js-footer-menu-list"> <ul> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/corporate" title="Virksomhedskonti">Virksomhedskonti</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/world-stock-photos" title="Fotokort">Fotokort</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/free-photos" title="Gratis billeder">Gratis billeder</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/photographers" title="Vores fotografer">Vores fotografer</a></li> <li><a class="footer-menu__url" href="https://dk.dreamstime.com/photo-tools" title="Fotoværktøjer">Fotoværktøjer</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="col-xl-3 col-sm-12"> <div class="footer-tools"> <a class="footer-tools__item" href="https://dk.dreamstime.com/affiliate-referral-program" title="Henvisningsprogram"> <svg class="footer-tools__icn" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20.002 19.246"><path fill="#3A7307" d="m.002 19.246 2.06-4.78a9.622 9.622 0 1 1 3.478 3.477L.002 19.246Zm7.9-13.3a2.936 2.936 0 0 0-2.813 2.221c-.533 2.16 1.321 4.593 4.961 6.507a.5.5 0 0 0 .059.026l.27.127.269-.126a.411.411 0 0 0 .06-.027c4.443-2.336 5.071-4.657 5.049-5.833V8.8a2.859 2.859 0 0 0-3.163-2.84 2.678 2.678 0 0 0-.671.156l-.02.007h-.009a2.857 2.857 0 0 0-1.246.916l-.011.013-.011.013a3.193 3.193 0 0 0-.22.337 6.438 6.438 0 0 0-.161-.22.339.339 0 0 1-.084-.078 2.885 2.885 0 0 0-2.259-1.16Z"/></svg> <span>Affiliate / forhandler</span> </a> <a class="footer-tools__item" href="https://dk.dreamstime.com/upload" title="Upload og sælg billeder"> <svg class="footer-tools__icn" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="#3A7307" d="M10 20a10 10 0 1 1 10-10 10.011 10.011 0 0 1-10 10Zm-4.466-6v2h9v-2Zm4.5-10-3.5 3.556h1.748V12h3.5V7.556h1.75L10.031 4Z"/></svg> <i class="icn icn--upload-f"></i> <span>Upload og sælg billeder</span> </a> </div> </div> </div> </div> </div> <div class="footer-bottom"> <div class="container"> <div class="row"> <div class="col-lg-3 col-sm-6"> <div class="footer-social"> <div class="social-links social-links--sg social-links--mdm" data-dt-id="social-row-analytics" data-dt-root="" data-dt-on-click="" data-dt-js="57"> <a class="social-links__item social-links__item--facebook js-social-link" target="_blank" data-name="Facebook" href="https://www.facebook.com/dreamstime" rel="noopener noreferrer"> <span class="social-links__wrapper"><svg class="social-links__icn" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 13" width="100%" height="100%"><path fill-rule="nonzero" d="M5.043 7.07h2.064l.31-2.31H5.042V3.283c0-.67.193-1.125 1.188-1.125H7.5V.09C7.28.063 6.527 0 5.651 0 3.821 0 2.57 1.077 2.57 3.055v1.704H.5v2.31h2.069V13h2.474V7.07Z"/></svg></span> <span class="screen-reader-text">Dreamstime Facebook</span> </a> <a class="social-links__item social-links__item--twitter js-social-link" target="_blank" data-name="X" href="https://x.com/dreamstime" rel="noopener noreferrer"> <span class="social-links__wrapper"><svg class="social-links__icn" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" width="100%" height="100%"><path fill-rule="nonzero" d="M8.054 5.928 13.092 0h-1.194L7.524 5.147 4.03 0H0l5.284 7.784L0 14h1.194l4.62-5.436L9.504 14h4.03l-5.48-8.072ZM6.42 7.852l-.535-.775L1.624.91h1.834l3.437 4.977.536.775 4.468 6.47h-1.834L6.42 7.852Z"/></svg></span> <span class="screen-reader-text">Dreamstime Twitter</span> </a> <a class="social-links__item social-links__item--pinterest js-social-link" target="_blank" data-name="Pinterest" href="https://www.pinterest.com/dreamstime/" rel="noopener noreferrer"> <span class="social-links__wrapper"><svg class="social-links__icn" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" width="100%" height="100%"><path fill-rule="evenodd" d="M6.997 0A6.994 6.994 0 0 0 0 6.997a7 7 0 0 0 4.446 6.52c-.063-.554-.115-1.406.023-2.01.127-.548.818-3.479.818-3.479s-.208-.42-.208-1.037c0-.973.565-1.699 1.267-1.699.6 0 .887.45.887.985 0 .6-.38 1.498-.581 2.333-.167.696.35 1.267 1.036 1.267 1.244 0 2.2-1.313 2.2-3.202 0-1.676-1.204-2.845-2.925-2.845C4.97 3.83 3.8 5.32 3.8 6.865c0 .599.23 1.244.518 1.595.058.069.064.132.046.201-.052.22-.173.697-.196.795-.028.127-.103.156-.236.092-.863-.414-1.405-1.693-1.405-2.718 0-2.206 1.601-4.233 4.625-4.233 2.424 0 4.313 1.728 4.313 4.043 0 2.413-1.52 4.354-3.628 4.354-.708 0-1.376-.369-1.601-.806l-.438 1.664c-.155.61-.581 1.37-.87 1.837A7.028 7.028 0 0 0 7.004 14 6.997 6.997 0 0 0 14 7.003C13.994 3.133 10.861 0 6.997 0"/></svg></span> <span class="screen-reader-text">Dreamstime Pinterest</span> </a> <a class="social-links__item social-links__item--instagram js-social-link" target="_blank" data-name="Instagram" href="https://www.instagram.com/dreamstime" rel="noopener noreferrer"> <span class="social-links__wrapper"><svg class="social-links__icn" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" width="100%" height="100%"><path fill-rule="evenodd" d="M7.883.005c1.119.003 1.39.014 2 .042.745.033 1.254.152 1.699.325.46.179.85.418 1.24.807.388.389.627.78.806 1.24.173.444.292.953.325 1.698.03.645.04.91.042 2.195v1.38c-.001.88-.007 1.281-.02 1.654l-.005.172-.017.37c-.033.744-.152 1.253-.325 1.698a3.43 3.43 0 0 1-.807 1.24 3.43 3.43 0 0 1-1.24.807c-.444.173-.953.29-1.698.325l-.37.016-.171.006c-.373.013-.775.018-1.654.02h-1.38c-1.285-.003-1.55-.013-2.195-.042-.745-.034-1.254-.152-1.699-.325a3.43 3.43 0 0 1-1.24-.808 3.43 3.43 0 0 1-.807-1.239c-.173-.445-.29-.954-.325-1.699-.028-.61-.038-.88-.041-2v-1.77c.003-1.119.013-1.39.041-2 .034-.745.152-1.254.325-1.699.18-.46.418-.85.808-1.24A3.43 3.43 0 0 1 2.414.373C2.859.199 3.368.08 4.113.047c.61-.028.88-.039 2-.042Zm-.64 1.26h-.716l-.398.001c-.732.002-1.09.007-1.427.018l-.168.006-.364.016c-.682.031-1.053.145-1.3.241-.326.127-.56.279-.804.523a2.168 2.168 0 0 0-.523.805c-.096.247-.21.617-.241 1.3-.006.134-.012.25-.016.364l-.006.168c-.012.336-.017.695-.018 1.426v.399l-.001.47v.869c.002.732.007 1.09.019 1.427l.006.168.016.364c.03.682.145 1.053.24 1.3.128.326.28.56.524.804.245.245.478.396.805.523.246.096.617.21 1.3.241l.363.016.168.006c.365.013.755.017 1.618.019h1.356a50.112 50.112 0 0 0 1.617-.019l.168-.006.364-.016c.683-.03 1.053-.145 1.3-.24.327-.128.56-.28.805-.524.244-.245.396-.478.523-.805.096-.246.21-.617.24-1.3l.017-.363.006-.168c.012-.365.017-.755.018-1.618V6.324a50.118 50.118 0 0 0-.018-1.617l-.006-.168-.016-.364c-.031-.683-.145-1.053-.241-1.3a2.168 2.168 0 0 0-.523-.805 2.168 2.168 0 0 0-.805-.523c-.247-.096-.617-.21-1.3-.24a61.756 61.756 0 0 0-.364-.017l-.168-.006a44.89 44.89 0 0 0-1.426-.018h-.869Zm-.26 2.152a3.593 3.593 0 1 1 0 7.187 3.593 3.593 0 0 1 0-7.187Zm0 1.26a2.333 2.333 0 1 0 0 4.666 2.333 2.333 0 0 0 0-4.665Zm3.746-2.233a.84.84 0 1 1 0 1.68.84.84 0 0 1 0-1.68Z"/></svg></span> <span class="screen-reader-text">Dreamstime Instagram</span> </a> <a class="social-links__item social-links__item--linkedin js-social-link" target="_blank" data-name="LinkedIn" href="https://www.linkedin.com/company/dreamstime" rel="noopener noreferrer"> <span class="social-links__wrapper"><svg class="social-links__icn" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" width="100%" height="100%"><path fill-rule="evenodd" d="M11.93 11.93H9.855V8.68c0-.774-.015-1.77-1.08-1.77-1.08 0-1.245.843-1.245 1.715v3.305H5.455V5.249h1.992v.912h.027c.277-.525.955-1.079 1.965-1.079 2.103 0 2.49 1.384 2.49 3.183v3.665ZM3.114 4.335a1.204 1.204 0 1 1 0-2.408 1.204 1.204 0 0 1 0 2.408ZM2.076 11.93h2.076V5.249H2.076v6.68ZM12.964 0H1.034C.463 0 0 .452 0 1.01v11.98C0 13.547.463 14 1.033 14h11.93c.572 0 1.037-.453 1.037-1.01V1.01C14 .451 13.535 0 12.964 0Z"/></svg></span> <span class="screen-reader-text">Dreamstime Linkedin</span> </a> <a class="social-links__item social-links__item--youtube js-social-link" target="_blank" data-name="Youtube" href="https://www.youtube.com/@dreamstime?sub_confirmation=1" rel="noopener noreferrer"> <span class="social-links__wrapper"><svg class="social-links__icn" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 11" width="100%" height="100%"><path fill-rule="evenodd" d="M8.29.001c.501.003 1.603.013 2.745.052l.49.018c1.142.047 2.243.126 2.743.257.69.181 1.232.714 1.416 1.39.298 1.089.33 3.23.334 3.693v.178c-.003.463-.036 2.604-.334 3.693a1.987 1.987 0 0 1-1.416 1.39c-1.107.29-5.163.324-6.075.328h-.367c-.912-.004-4.969-.038-6.075-.328a1.987 1.987 0 0 1-1.416-1.39C.05 8.238.007 6.228 0 5.656v-.312c.006-.572.049-2.582.334-3.626A1.987 1.987 0 0 1 1.75.328c.5-.131 1.6-.21 2.743-.257l.49-.018C6.125.013 7.227.003 7.728 0ZM6.461 3.234v4.714l4.162-2.357L6.46 3.234Z"/></svg></span> <span class="screen-reader-text">Dreamstime Youtube</span> </a> </div> </div> </div> <div class="col-lg-3 order-lg-3 col-sm-6"> <div class="footer-language"> <div class="language-select"> <label class="language-select__label" for="footer-lang-select"> Sprog </label> <button class="language-select__btn js-lang-select-trigger" id="footer-lang-select" type="button" aria-haspopup="menu" aria-expanded="false" aria-label="Skift sprogvalgsvinduet" data-loading-theme="light" data-dt-id="footer-lang-select" data-dt-root="" data-dt-on-click="" data-dt-js="70"> <span class="language-select__flag" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 14"><g fill="none" fill-rule="evenodd"><path fill="#D00C33" d="M0 14h21V0H0z"/><path fill="#FFF" d="M6.856 0v5.95H0v2.1h6.856V14h2.1V8.05H21v-2.1H8.956V0z"/></g></svg> </span> <span class="language-select__lang">Dansk</span> <span class="language-select__icon js-lang-select-icon" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10"><path fill-rule="nonzero" d="M-.003 8.694 1.24 10l3.515-3.694L5.997 5 4.755 3.694 1.24 0-.003 1.306 3.511 5-.003 8.694Z"/></svg> </span> </button> </div> </div> </div> <div class="col-lg-6 order-lg-2 col-sm-12"> <div class="footer-copy"> Ophavsret © 2000-2026 Dreamstime. Alle rettigheder forbeholdes. </div> </div> </div> </div> </div> </footer> <template data-state="hidden" data-dt-id="form-switch" data-dt-root="" data-dt-on-ready="" data-dt-js="71"></template> <template data-dt-id="item-similars-link" data-dt-root="" data-dt-css="58,72" data-dt-js="60" data-dt-js-order="61,62,63,73" ></template> <template class="js-item-lightbox-add-btn-config" data-aria-label-add="Tilføj til Lightbox" data-aria-label-remove="Fjern fra Lightbox" data-dt-id="item-lightbox-btn" data-dt-root="" data-dt-css="58,72,45,46" data-dt-js="60,54,29,30,55" data-dt-js-order="61,62,63,74,75" ></template> <script type="application/ld+json"> [{ "@context":"https://schema.org", "@type":"WebSite", "url":"https://dk.dreamstime.com/", "potentialAction":{ "@type":"SearchAction", "target":"https://dk.dreamstime.com/search.php?srh_field={search_term}&s_all=y&s_ph=y&s_il=y&s_video=y&s_audio=y", "query-input":"required name=search_term" } }, { "@context":"https://schema.org", "@type":"Organization", "name":"Dreamstime", "url":"https://dk.dreamstime.com/", "logo":"https://dk.dreamstime.com/img/logo-dreamstime-400x102.png", "sameAs":[ "https://www.facebook.com/dreamstime", "https://x.com/dreamstime", "https://www.pinterest.com/dreamstime/", "https://www.instagram.com/dreamstime/", "https://www.linkedin.com/company/dreamstime", "https://www.youtube.com/@dreamstime?sub_confirmation=1" ] } ] </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "ItemList", "itemListElement": [ { "@context":"https://schema.org", "@type":"ListItem", "position": 1, "name":"Skjold-ikon med kode-download-symbol til cybersikkerhed og softwareudvikling", "url": "https://dk.dreamstime.com/skjold-ikon-med-kode-download-symbol-til-cybersikkerhed-og-softwareudvikling-image479697508" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 2, "name":"Sort tandhjulsikon inde i parentes, der repr\u00e6senterer konceptet softwareudvikling", "url": "https://dk.dreamstime.com/sort-tandhjulsikon-inde-i-parentes-der-repræsenterer-konceptet-softwareudvikling-image478832767" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 3, "name":"Binary Data Rise - Abstract Digital Logic Stream Accumulating from Bottom in Teal and Cyan", "url": "https://dk.dreamstime.com/binary-data-rise-abstract-digital-logic-stream-accumulating-bottom-teal-cyan-image439333599" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 4, "name":"Digitalt arbejdsomr\u00e5de med multimedia, kode og cloud-integration", "url": "https://dk.dreamstime.com/digitalt-arbejdsområde-med-multimedia-kode-og-cloud-integration-image419560739" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 5, "name":"Vektorillustration af konceptet for udvikling af kunstig intelligens og maskinl\u00e6ring", "url": "https://dk.dreamstime.com/vektorillustration-af-konceptet-udvikling-kunstig-intelligens-og-maskinlæring-image471817992" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 6, "name":"Visuelt tiltalende isometrisk illustration af teknisk SEO-kodning og udvikling.", "url": "https://dk.dreamstime.com/visuelt-tiltalende-isometrisk-illustration-af-teknisk-seo-kodning-og-udvikling-image468408428" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 7, "name":"Close-up af computerkode p\u00e5 en digital sk\u00e6rm", "url": "https://dk.dreamstime.com/close-up-af-computerkode-på-en-digital-skærm-detaljeret-abstrakt-visning-glødende-linjer-der-vises-mørk-med-et-blåt-og-rødt-image409586875" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 8, "name":"Software Development and Artificial Intelligence Technology Vector Illustration Set", "url": "https://dk.dreamstime.com/software-development-artificial-intelligence-technology-vector-illustration-set-image477527371" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 9, "name":"Ikoner til v\u00e6rkt\u00f8jer til kodeudvikling og debugging", "url": "https://dk.dreamstime.com/ikoner-til-værktøjer-kodeudvikling-og-debugging-image447568624" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 10, "name":"Ikoner til webbrowsers kodningsvinduesgr\u00e6nseflade", "url": "https://dk.dreamstime.com/ikoner-til-webbrowsers-kodningsvinduesgrænseflade-image447570549" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 11, "name":"Digital data technology concept. Blue futuristic cyberspace. Vector illustration", "url": "https://dk.dreamstime.com/digital-data-technology-concept-blue-futuristic-cyberspace-vector-illustration-image366986743" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 12, "name":"Ikons\u00e6t til kodeindstillinger i farverigt gradient- og linjebaseret design", "url": "https://dk.dreamstime.com/ikonsæt-til-kodeindstillinger-i-farverigt-gradient-og-linjebaseret-design-image447092155" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 13, "name":"Hybrid Software Udvikling og Sikkerheds-ikoner", "url": "https://dk.dreamstime.com/hybrid-software-udvikling-og-sikkerheds-ikoner-image449047890" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 14, "name":"Varm orange pink bin\u00e6r kode datastr\u00f8m baggrund", "url": "https://dk.dreamstime.com/varm-orange-pink-binær-kode-datastrøm-baggrund-varmtonet-bevægende-grafik-med-ettaller-og-nuller-der-flyder-dynamisk-over-en-image414752561" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 15, "name":"Sort ikon-s\u00e6t til softwaretest, kvalitetssikring, kode og debugging", "url": "https://dk.dreamstime.com/sort-ikon-sæt-til-softwaretest-kvalitetssikring-kode-og-debugging-image479057954" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 16, "name":"Digitalt indholdsskabende og udvikling med kodning, multimedia og innovative webdesignkoncepter", "url": "https://dk.dreamstime.com/digitalt-indholdsskabende-og-udvikling-med-kodning-multimedia-innovative-webdesignkoncepter-image474908524" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 17, "name":"Software Development Time Management Vector Banners with Programmer and Cloud Computing Icons", "url": "https://dk.dreamstime.com/software-development-time-management-vector-banners-programmer-cloud-computing-icons-image481434860" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 18, "name":"Motherboard font, circuit board typeface, type", "url": "https://dk.dreamstime.com/motherboard-font-circuit-board-typeface-type-image387800606" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 19, "name":"Et minimalistisk digitalt ikon, der repr\u00e6senterer en filuploadproces p\u00e5 en sk\u00e6rm", "url": "https://dk.dreamstime.com/et-minimalistisk-digitalt-ikon-der-repræsenterer-en-filuploadproces-på-skærm-image457787093" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 20, "name":"Makrodetalje af en computerchips overflade", "url": "https://dk.dreamstime.com/makrodetalje-af-en-computerchips-overflade-image421472838" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 21, "name":"Ikon s\u00e6t til cybersikkerhed og databeskyttelse til webdesign og landing page banner til digital sikkerhed", "url": "https://dk.dreamstime.com/ikon-sæt-til-cybersikkerhed-og-databeskyttelse-webdesign-landing-page-banner-digital-sikkerhed-image470604759" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 22, "name":"Ikons\u00e6t til programmeringsgr\u00e6nseflade til spiludvikling", "url": "https://dk.dreamstime.com/ikonsæt-til-programmeringsgrænseflade-spiludvikling-image447495223" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 23, "name":"Softwareudvikler der koder p\u00e5 en computersk\u00e6rm", "url": "https://dk.dreamstime.com/softwareudvikler-der-koder-på-en-computerskærm-image426597161" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 24, "name":"Neon cyan gr\u00f8n bin\u00e6r kode gradient baggrundssl\u00f8jfe", "url": "https://dk.dreamstime.com/neon-cyan-grøn-binær-kode-gradient-baggrundssløjfe-høj-kontrast-bevægelig-grafik-med-der-flyder-over-en-slående-baggrund-image414752583" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 25, "name":"M\u00f8rkebl\u00e5 Dyb Bin\u00e6r Kode Digital Baggrund", "url": "https://dk.dreamstime.com/mørkeblå-dyb-binær-kode-digital-baggrund-bevægelig-grafik-i-dybe-blå-nuancer-med-hvide-og-grå-binære-kodenumre-der-flyder-image414752649" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 26, "name":"Ikon-s\u00e6t til kodeudvikling med tandhjulsymbol", "url": "https://dk.dreamstime.com/ikon-sæt-til-kodeudvikling-med-tandhjulsymbol-image447768280" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 27, "name":"Faldende digital bin\u00e6r kode, tech baggrund med algoritmenummer", "url": "https://dk.dreamstime.com/faldende-digital-binær-kode-tech-baggrund-med-algoritmenummer-image443221543" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 28, "name":"Vektorillustration af en programm\u00f8r, der analyserer kode p\u00e5 flere sk\u00e6rme i et moderne kontor", "url": "https://dk.dreamstime.com/vektorillustration-af-en-programmør-der-analyserer-kode-på-flere-skærme-i-et-moderne-kontor-image468931796" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 29, "name":"Moderne laptop, der viser kode p\u00e5 et tr\u00e6bord med en bordlampe og en sk\u00e6rm", "url": "https://dk.dreamstime.com/moderne-laptop-der-viser-kode-på-et-træbord-med-en-bordlampe-og-skærm-image456739183" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 30, "name":"Programmer coding in C plus plus language on a modern laptop", "url": "https://dk.dreamstime.com/programmer-coding-c-plus-plus-language-modern-laptop-image455511042" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 31, "name":"Programm\u00f8r-ikon, sort vektor, isoleret p\u00e5 hvid", "url": "https://dk.dreamstime.com/programmør-ikon-sort-vektor-isoleret-på-hvid-image462810071" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 32, "name":"Hacker Arbejdsstation med Kaskaderende Gr\u00f8n Kode", "url": "https://dk.dreamstime.com/hacker-arbejdsstation-med-kaskaderende-grøn-kode-image415332470" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 33, "name":"Gr\u00f8n Matrix-kode falder p\u00e5 abstrakt teknologisk baggrund", "url": "https://dk.dreamstime.com/grøn-matrix-kode-falder-på-abstrakt-teknologisk-baggrund-image435728641" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 34, "name":"Gr\u00f8n Matrix-kode der falder p\u00e5 abstrakt teknologisk baggrund", "url": "https://dk.dreamstime.com/grøn-matrix-kode-der-falder-på-abstrakt-teknologisk-baggrund-image436587138" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 35, "name":"S\u00e6t af sort-hvide line\u00e6re softwareudviklings-app-ikoner p\u00e5 hvid baggrund", "url": "https://dk.dreamstime.com/sæt-af-sort-hvide-lineære-softwareudviklings-app-ikoner-på-hvid-baggrund-image476866639" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 36, "name":"Programm\u00f8r der skriver kode p\u00e5 to tastaturer", "url": "https://dk.dreamstime.com/programmør-der-skriver-kode-på-to-tastaturer-image426597123" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 37, "name":"Ikoner til softwareudvikling af kodningsgr\u00e6nseflade", "url": "https://dk.dreamstime.com/ikoner-til-softwareudvikling-af-kodningsgrænseflade-image447689982" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 38, "name":"Revnet digital sf\u00e6re, der viser gl\u00f8dende kode", "url": "https://dk.dreamstime.com/revnet-digital-sfære-der-viser-glødende-kode-image416615191" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 39, "name":"Landingpage-banner til digital markedsf\u00f8ring og webudvikling med HTML-kode og megafonillustration", "url": "https://dk.dreamstime.com/landingpage-banner-til-digital-markedsføring-og-webudvikling-med-html-kode-megafonillustration-image479686947" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 40, "name":"Lysebl\u00e5 hvid bin\u00e6r kode, abstrakt databaggrund", "url": "https://dk.dreamstime.com/lyseblå-hvid-binær-kode-abstrakt-databaggrund-image414752608" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 41, "name":"Bl\u00e5 pixelkode, kantede parenteser, symbol, digital kodningskoncept og baggrund. Forsidedesign til udviklere", "url": "https://dk.dreamstime.com/blå-pixelkode-kantede-parenteser-symbol-digital-kodningskoncept-og-baggrund-forsidedesign-til-udviklere-image448981999" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 42, "name":"Computerbrowser-vindue med et kodesymbol omgivet af virusbakterier", "url": "https://dk.dreamstime.com/computerbrowser-vindue-med-et-kodesymbol-omgivet-af-virusbakterier-image455447783" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 43, "name":"Afbilder automatiseringsteknologi, der integrerer intelligente agenter, kode og forskellige v\u00e6rkt\u00f8jer.", "url": "https://dk.dreamstime.com/afbilder-automatiseringsteknologi-der-integrerer-intelligente-agenter-kode-og-forskellige-værktøjer-image478883035" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 44, "name":"Computer screen displaying code in an office with a city skyline view", "url": "https://dk.dreamstime.com/computer-screen-displaying-code-office-city-skyline-view-image457426033" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 45, "name":"Programm\u00f8r der skriver kode p\u00e5 en b\u00e6rbar computer i et m\u00f8rkt rum", "url": "https://dk.dreamstime.com/programmør-der-skriver-kode-på-en-bærbar-computer-i-et-mørkt-rum-image388335062" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 46, "name":"PHP- og MySQL-webudviklingskoncept med vektorillustration af en programm\u00f8r og elefantmaskot", "url": "https://dk.dreamstime.com/php-og-mysql-webudviklingskoncept-med-vektorillustration-af-en-programmør-elefantmaskot-image468969091" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 47, "name":"Kode-arbejdsplads med flere sk\u00e6rme om natten", "url": "https://dk.dreamstime.com/kode-arbejdsplads-med-flere-skærme-om-natten-image423743917" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 48, "name":"Softwarefejlfinding|Sikkerhedss\u00f8gning|Softwarekodeanalyse|Software Debugging Logo", "url": "https://dk.dreamstime.com/softwarefejlfinding-sikkerhedssøgning-softwarekodeanalyse-software-debugging-logo-image466807112" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 49, "name":"Binary Code Speech Bubble and Analog Clock Vector Illustration for Technology Landing Page Banner", "url": "https://dk.dreamstime.com/binary-code-speech-bubble-analog-clock-vector-illustration-technology-landing-page-banner-image472458589" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 50, "name":"Dyb Indigo Bl\u00e5 Bin\u00e6r Kode Krypterede Data Baggrund", "url": "https://dk.dreamstime.com/dyb-indigo-blå-binær-kode-krypterede-data-baggrund-image414752508" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 51, "name":"Vektors\u00e6t med illustrationer til softwareudvikling og bilteknologi til design af web-landingssider", "url": "https://dk.dreamstime.com/vektorsæt-med-illustrationer-til-softwareudvikling-og-bilteknologi-design-af-web-landingssider-image467426174" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 52, "name":"Koncept for dataanalyse og softwareudvikling med k\u00f8ret\u00f8jscheckliste og design for alternativ energi", "url": "https://dk.dreamstime.com/koncept-dataanalyse-og-softwareudvikling-med-køretøjscheckliste-design-alternativ-energi-image480395587" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 53, "name":"Laptop displaying code on a wooden desk with a potted plant and sunlight", "url": "https://dk.dreamstime.com/laptop-displaying-code-wooden-desk-potted-plant-sunlight-image457425227" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 54, "name":"Abstract Glitchy Blue Digital Code Background", "url": "https://dk.dreamstime.com/abstract-glitchy-blue-digital-code-background-image439517347" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 55, "name":"Text generation icon", "url": "https://dk.dreamstime.com/text-generation-icon-image384416970" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 56, "name":"Vektorillustration af en programm\u00f8r, der arbejder p\u00e5 en computer med en CEX-b\u00f8rs og en MySQL-database", "url": "https://dk.dreamstime.com/vektorillustration-af-en-programmør-der-arbejder-på-computer-med-cex-børs-og-mysql-database-image475726765" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 57, "name":"H\u00e5nd R\u00f8rer Ved Gl\u00f8dende Kode P\u00e5 Digital Sk\u00e6rm", "url": "https://dk.dreamstime.com/hånd-rører-ved-glødende-kode-på-digital-skærm-image450068088" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 58, "name":"Technology Icons Line Vector Illustration Set", "url": "https://dk.dreamstime.com/technology-icons-line-vector-illustration-set-image459686802" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 59, "name":"Kvinde programm\u00f8r der arbejder p\u00e5 en b\u00e6rbar computer", "url": "https://dk.dreamstime.com/kvinde-programmør-der-arbejder-på-en-bærbar-computer-illustration-af-sandsynligvis-eller-udvikler-hun-sidder-ved-et-skrivebord-image413304335" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 60, "name":"Quantum Code Atom Logodesign til fysikforskning og teknologisk udvikling", "url": "https://dk.dreamstime.com/quantum-code-atom-logodesign-til-fysikforskning-og-teknologisk-udvikling-image467789602" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 61, "name":"Ikon-s\u00e6t til dokumenter til kodeanalyse og fejlfinding", "url": "https://dk.dreamstime.com/ikon-sæt-til-dokumenter-kodeanalyse-og-fejlfinding-image447285209" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 62, "name":"En dedikeret programm\u00f8r koder sent om natten", "url": "https://dk.dreamstime.com/en-dedikeret-programmør-koder-sent-om-natten-et-nærbillede-viser-fokuseret-udvikler-der-intenst-skriver-kode-på-laptop-tastatur-image415938722" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 63, "name":"Computersk\u00e6rm med HTML-kode og bjergbillede", "url": "https://dk.dreamstime.com/computerskærm-med-html-kode-og-bjergbillede-image461385037" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 64, "name":"Udvikler inspicerer kode med forst\u00f8rrelsesglas", "url": "https://dk.dreamstime.com/udvikler-inspicerer-kode-med-forstørrelsesglas-image426597078" },{ "@context":"https://schema.org", "@type":"ListItem", "position": 65, "name":"Ikon-s\u00e6t til udvikling af kodningsv\u00e6rkt\u00f8jer", "url": "https://dk.dreamstime.com/ikon-sæt-til-udvikling-af-kodningsværktøjer-image447691070" } ] } </script><script id="json-html-share-modal-tpl" type="application/json">{"html":"<template class=\"js-modal-share-tpl\">\n <div\n class=\"modal js-modal js-modal-share modal--share\" aria-hidden=\"true\" data-state=\"closed\" data-name=\"share\" data-template=\"share\">\n <div class=\"modal__overlay js-modal-overlay\" tabindex=\"-1\">\n <div\n class=\"modal__container js-modal-container\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"modal-share-title\"\n >\n\n <header class=\"modal__header js-modal-header\">\n <h2\n class=\"modal__title js-modal-title\"\n id=\"modal-share-title\"\n >Del denne side<\/h2>\n \n <button\n class=\"close-btn close-btn--big close-btn--l-grey js-close-btn modal__close js-modal-close-icon js-modal-close-trigger\" type=\"button\" aria-label=\"Luk\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 10 10\"><path d=\"M3.511 5 0 8.511 1.489 10 5 6.489 8.511 10 10 8.511 6.489 5 10 1.489 8.511 0 5 3.511 1.489 0 0 1.489z\"\/><\/svg><\/button>\n <\/header>\n \n <div class=\"modal__content js-modal-content\">\n <div class=\"share-list\">\n <div\n class=\"share-list social-links social-links--ss social-links--huge\" data-dt-id=\"social-row-analytics\" data-dt-root=\"\" data-dt-on-click=\"\" data-dt-js=\"57\">\n <a class=\"social-links__item social-links__item--facebook js-social-link\" data-name=\"Facebook\" href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fdk.dreamstime.com%2Fillustration%2Fscriptprogrammering.html%3Fpg%3D99&description=Download+Scriptprogrammering+Stockfotos+fra+Dreamstime.+Se+disse+fantastiske+gratis+eller+royalty-free+fotos+p%C3%A5+Dreamstime.\" rel=\"noopener noreferrer\" target=\"_blank\">\n <span class=\"social-links__wrapper\"><svg class=\"social-links__icn\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 8 13\" width=\"100%\" height=\"100%\"><path fill-rule=\"nonzero\" d=\"M5.043 7.07h2.064l.31-2.31H5.042V3.283c0-.67.193-1.125 1.188-1.125H7.5V.09C7.28.063 6.527 0 5.651 0 3.821 0 2.57 1.077 2.57 3.055v1.704H.5v2.31h2.069V13h2.474V7.07Z\"\/><\/svg><\/span>\n <span class=\"screen-reader-text\">Facebook<\/span>\n <\/a>\n <a class=\"social-links__item social-links__item--twitter js-social-link\" data-name=\"X\" href=\"https:\/\/x.com\/intent\/post?related=dreamstime&text=Download+Scriptprogrammering+Stockfotos+fra+Dreamstime.+Se+disse+fantastiske+gratis+eller+royalty-free+fotos+p%C3%A5+Dreamstime.&url=https%3A%2F%2Fdk.dreamstime.com%2Fillustration%2Fscriptprogrammering.html%3Fpg%3D99\" rel=\"noopener noreferrer\" target=\"_blank\">\n <span class=\"social-links__wrapper\"><svg class=\"social-links__icn\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 14 14\" width=\"100%\" height=\"100%\"><path fill-rule=\"nonzero\" d=\"M8.054 5.928 13.092 0h-1.194L7.524 5.147 4.03 0H0l5.284 7.784L0 14h1.194l4.62-5.436L9.504 14h4.03l-5.48-8.072ZM6.42 7.852l-.535-.775L1.624.91h1.834l3.437 4.977.536.775 4.468 6.47h-1.834L6.42 7.852Z\"\/><\/svg><\/span>\n <span class=\"screen-reader-text\">X<\/span>\n <\/a>\n <a class=\"social-links__item social-links__item--linkedin js-social-link\" data-name=\"LinkedIn\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&url=https%3A%2F%2Fdk.dreamstime.com%2Fillustration%2Fscriptprogrammering.html%3Fpg%3D99&summary=Download+Scriptprogrammering+Stockfotos+fra+Dreamstime.+Se+disse+fantastiske+gratis+eller+royalty-free+fotos+p%C3%A5+Dreamstime.\" rel=\"noopener noreferrer\" target=\"_blank\">\n <span class=\"social-links__wrapper\"><svg class=\"social-links__icn\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 14 14\" width=\"100%\" height=\"100%\"><path fill-rule=\"evenodd\" d=\"M11.93 11.93H9.855V8.68c0-.774-.015-1.77-1.08-1.77-1.08 0-1.245.843-1.245 1.715v3.305H5.455V5.249h1.992v.912h.027c.277-.525.955-1.079 1.965-1.079 2.103 0 2.49 1.384 2.49 3.183v3.665ZM3.114 4.335a1.204 1.204 0 1 1 0-2.408 1.204 1.204 0 0 1 0 2.408ZM2.076 11.93h2.076V5.249H2.076v6.68ZM12.964 0H1.034C.463 0 0 .452 0 1.01v11.98C0 13.547.463 14 1.033 14h11.93c.572 0 1.037-.453 1.037-1.01V1.01C14 .451 13.535 0 12.964 0Z\"\/><\/svg><\/span>\n <span class=\"screen-reader-text\">LinkedIn<\/span>\n <\/a>\n <a class=\"social-links__item social-links__item--pinterest js-social-link\" data-name=\"Pinterest\" href=\"http:\/\/www.pinterest.com\/pin\/create\/button\/?url=https%3A%2F%2Fdk.dreamstime.com%2Fillustration%2Fscriptprogrammering.html%3Fpg%3D99&media=https%3A%2F%2Fthumbs.dreamstime.com%2Fb%2Fskjold-ikon-med-kode-download-symbol-til-cybersikkerhed-og-softwareudvikling-479697508.jpg&description=Download+Scriptprogrammering+Stockfotos+fra+Dreamstime.+Se+disse+fantastiske+gratis+eller+royalty-free+fotos+p%C3%A5+Dreamstime.\" rel=\"noopener noreferrer\" target=\"_blank\">\n <span class=\"social-links__wrapper\"><svg class=\"social-links__icn\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 14 14\" width=\"100%\" height=\"100%\"><path fill-rule=\"evenodd\" d=\"M6.997 0A6.994 6.994 0 0 0 0 6.997a7 7 0 0 0 4.446 6.52c-.063-.554-.115-1.406.023-2.01.127-.548.818-3.479.818-3.479s-.208-.42-.208-1.037c0-.973.565-1.699 1.267-1.699.6 0 .887.45.887.985 0 .6-.38 1.498-.581 2.333-.167.696.35 1.267 1.036 1.267 1.244 0 2.2-1.313 2.2-3.202 0-1.676-1.204-2.845-2.925-2.845C4.97 3.83 3.8 5.32 3.8 6.865c0 .599.23 1.244.518 1.595.058.069.064.132.046.201-.052.22-.173.697-.196.795-.028.127-.103.156-.236.092-.863-.414-1.405-1.693-1.405-2.718 0-2.206 1.601-4.233 4.625-4.233 2.424 0 4.313 1.728 4.313 4.043 0 2.413-1.52 4.354-3.628 4.354-.708 0-1.376-.369-1.601-.806l-.438 1.664c-.155.61-.581 1.37-.87 1.837A7.028 7.028 0 0 0 7.004 14 6.997 6.997 0 0 0 14 7.003C13.994 3.133 10.861 0 6.997 0\"\/><\/svg><\/span>\n <span class=\"screen-reader-text\">Pinterest<\/span>\n <\/a>\n <a class=\"social-links__item social-links__item--whatsapp js-social-link\" data-name=\"WhatsApp\" href=\"https:\/\/api.whatsapp.com\/send\/?phone&text=https%3A%2F%2Fdk.dreamstime.com%2Fillustration%2Fscriptprogrammering.html%3Fpg%3D99\" rel=\"noopener noreferrer\" target=\"_blank\">\n <span class=\"social-links__wrapper\"><svg class=\"social-links__icn\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 13.995 13.996\" width=\"100%\" height=\"100%\"><path fill-rule=\"nonzero\" d=\"M10.204 8.387c-.174-.087-1.03-.506-1.19-.564-.16-.058-.275-.086-.392.087-.116.173-.45.564-.55.68-.102.115-.204.13-.378.043-.174-.087-.735-.27-1.4-.86a5.224 5.224 0 0 1-.969-1.2c-.102-.174-.01-.268.076-.354.079-.078.175-.203.262-.304.087-.101.116-.173.174-.289.058-.116.029-.217-.015-.304-.043-.086-.392-.94-.537-1.286-.141-.338-.285-.292-.391-.298a7.017 7.017 0 0 0-.334-.006.641.641 0 0 0-.464.217c-.16.173-.61.593-.61 1.446s.624 1.677.711 1.792c.087.116 1.228 1.866 2.975 2.617.415.178.74.285.992.365.417.132.797.113 1.097.069.334-.05 1.03-.42 1.175-.824.145-.405.145-.752.102-.824-.044-.073-.16-.116-.334-.203m-3.177 4.317h-.002a5.804 5.804 0 0 1-2.948-.803l-.212-.125-2.192.572.585-2.127-.137-.218a5.73 5.73 0 0 1-.886-3.068c.001-3.178 2.6-5.764 5.794-5.764 1.547 0 3.002.601 4.095 1.69A5.716 5.716 0 0 1 12.82 6.94c-.001 3.178-2.6 5.764-5.792 5.764m4.93-10.67A6.94 6.94 0 0 0 7.026 0C3.186 0 .06 3.111.058 6.935c0 1.222.32 2.415.93 3.467L0 13.996l3.694-.965a6.989 6.989 0 0 0 3.33.845h.003c3.84 0 6.967-3.112 6.968-6.936a6.877 6.877 0 0 0-2.039-4.906\"\/><\/svg><\/span>\n <span class=\"screen-reader-text\">WhatsApp<\/span>\n <\/a>\n <a class=\"social-links__item social-links__item--blogger js-social-link\" data-name=\"Blogger\" href=\"https:\/\/www.blogger.com\/blog-this.g?u=https%3A%2F%2Fdk.dreamstime.com%2Fillustration%2Fscriptprogrammering.html%3Fpg%3D99&t=Download+Scriptprogrammering+Stockfotos+fra+Dreamstime.+Se+disse+fantastiske+gratis+eller+royalty-free+fotos+p%C3%A5+Dreamstime.\" rel=\"noopener noreferrer\" target=\"_blank\">\n <span class=\"social-links__wrapper\"><svg class=\"social-links__icn\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 14 14\" width=\"100%\" height=\"100%\"><path fill-rule=\"evenodd\" d=\"M13.999 9.48c0 2.496-2.038 4.52-4.55 4.52H4.55C2.037 14 0 11.976 0 9.48V4.52C0 2.025 2.037 0 4.55 0h2.297c2.513 0 4.55 2.024 4.55 4.52l.001.01c.033.47.427.84.908.84h.784c.502 0 .91.404.91.904l-.001 3.205ZM7.014 3.665H4.437a.872.872 0 0 0-.874.869c0 .48.391.869.874.869h2.577a.872.872 0 0 0 .875-.869.872.872 0 0 0-.875-.869Zm2.59 5.089H4.433a.825.825 0 0 0-.827.822c0 .454.37.822.827.822h5.173a.825.825 0 0 0 .827-.822.825.825 0 0 0-.827-.822Z\"\/><\/svg><\/span>\n <span class=\"screen-reader-text\">Blogger<\/span>\n <\/a>\n <a class=\"social-links__item social-links__item--tumblr js-social-link\" data-name=\"Tumblr\" href=\"https:\/\/www.tumblr.com\/share?u=https%3A%2F%2Fdk.dreamstime.com%2Fillustration%2Fscriptprogrammering.html%3Fpg%3D99&caption=Scriptprogrammering+Fotos+fra+Dreamstime\" rel=\"noopener noreferrer\" target=\"_blank\">\n <span class=\"social-links__wrapper\"><svg class=\"social-links__icn\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 8 14\" width=\"100%\" height=\"100%\"><path fill-rule=\"evenodd\" d=\"M8 14H5.64c-2.125 0-3.709-1.083-3.709-3.675v-4.15H0V3.928C2.125 3.38 3.014 1.569 3.116 0h2.207v3.563h2.575v2.612H5.323V9.79c0 1.083.552 1.458 1.43 1.458H8V14Z\"\/><\/svg><\/span>\n <span class=\"screen-reader-text\">Tumblr<\/span>\n <\/a>\n <a class=\"social-links__item social-links__item--reddit js-social-link\" data-name=\"Reddit\" href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fdk.dreamstime.com%2Fillustration%2Fscriptprogrammering.html%3Fpg%3D99&title=Scriptprogrammering+Fotos+fra+Dreamstime\" rel=\"noopener noreferrer\" target=\"_blank\">\n <span class=\"social-links__wrapper\"><svg class=\"social-links__icn\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 16 14\" width=\"100%\" height=\"100%\"><path fill-rule=\"evenodd\" d=\"M10.75 9.58c-.69 0-1.251-.552-1.251-1.229s.56-1.228 1.25-1.228S12 7.673 12 8.35a1.24 1.24 0 0 1-1.25 1.228m.22 2.017c-.854.837-2.49.902-2.97.902-.482 0-2.117-.065-2.97-.902a.314.314 0 0 1 0-.45.328.328 0 0 1 .459 0c.538.528 1.688.716 2.51.716.823 0 1.974-.188 2.513-.716a.329.329 0 0 1 .458 0 .314.314 0 0 1 0 .45M3.996 8.35c0-.677.561-1.228 1.251-1.228.69 0 1.25.55 1.25 1.228a1.24 1.24 0 0 1-1.25 1.228c-.69 0-1.25-.551-1.25-1.228M16 7.123c0-.95-.784-1.72-1.75-1.72-.473 0-.9.185-1.215.483-1.197-.848-2.846-1.396-4.683-1.459L9.15.742l2.606.544c.032.65.574 1.17 1.245 1.17.69 0 1.25-.55 1.25-1.228A1.24 1.24 0 0 0 13.001 0c-.492 0-.913.28-1.117.685L8.974.078a.315.315 0 0 0-.37.237l-.891 4.111c-1.864.05-3.54.6-4.751 1.457a1.76 1.76 0 0 0-1.211-.48C.784 5.403 0 6.173 0 7.123 0 7.82.425 8.42 1.035 8.69a3.32 3.32 0 0 0-.042.52c0 2.646 3.135 4.79 7.003 4.79C11.864 14 15 11.856 15 9.21a3.33 3.33 0 0 0-.042-.516A1.718 1.718 0 0 0 16 7.123\"\/><\/svg><\/span>\n <span class=\"screen-reader-text\">Reddit<\/span>\n <\/a>\n <a class=\"social-links__item social-links__item--mail js-social-link\" data-name=\"Email\" href=\"mailto:?subject=Scriptprogrammering%20Billeder%20fra%20Dreamstime&body=Hej%21%20Jeg%20fandt%20nogle%20fantastiske%20billeder%20relateret%20til%20Scriptprogrammering%20P%C3%A5%20Dreamstime.%20Tag%20et%20kig%3A%20https%3A%2F%2Fdk.dreamstime.com%2Fillustration%2Fscriptprogrammering.html%3Fpg%3D99\" rel=\"noopener noreferrer\" target=\"_blank\">\n <span class=\"social-links__wrapper\"><svg class=\"social-links__icn\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 14 10\" width=\"100%\" height=\"100%\"><path fill-rule=\"evenodd\" d=\"M2.873 4.935 0 2.062v5.746l2.873-2.873Zm8.254 0L14 7.808V2.062l-2.873 2.873Zm-7.665.682L.004 9.076A1 1 0 0 0 1 10h12a1 1 0 0 0 .996-.924l-3.458-3.459-2.536 2.536A1.407 1.407 0 0 1 7 8.568c-.379 0-.734-.148-1.002-.415L3.462 5.617ZM13.975.779 7.413 7.341a.597.597 0 0 1-.825 0L.025.78A1 1 0 0 1 1 0h12a1 1 0 0 1 .975.78Z\"\/><\/svg><\/span>\n <span class=\"screen-reader-text\">Email<\/span>\n <\/a>\n<\/div>\n <\/div>\n <div\n class=\"copy-line js-copy-line\"\n>\n <div class=\"copy-line__icon\">\n <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"14\" height=\"14\"><path fill=\"#656565\" fill-rule=\"evenodd\" d=\"M4.59 4.412a3.69 3.69 0 0 1 2.631-.282c1.263.328 2.06 1.466 2.195 1.67l.02.032-1.415 1.36s-.163-.828-1.01-1.185c-1.068-.45-1.785.155-1.912.275l-.02.02s-.595.585-1.251 1.239l-.608.607c-.543.546-1.013 1.027-1.084 1.129-.197.286-.76 1.739.382 2.536 1.28.893 2.454-.135 2.454-.135l.932-.933s.287.124.825.207c.538.084 1.491.049 1.491.049s-2.026 2.022-2.186 2.146c-.16.123-.532.5-1.102.681-.829.263-3.452.54-4.522-1.758-1.225-2.63.686-4.388.686-4.388l2.727-2.727c-.001 0 .569-.44.767-.543ZM7.81.953c.497-.594 3.208-1.884 5.114.148 2.306 2.574.191 4.98.191 4.98L11.262 7.96l-.047.045c-.236.233-1.315 1.289-1.54 1.415-1.605.893-2.487.607-3.451.281-.988-.333-1.693-1.488-1.693-1.488l1.39-1.36s.082.562.679.968c1.293.88 2.358-.162 2.358-.162l2.717-2.731s1.049-1.421-.035-2.51c-1.274-1.282-2.522-.171-2.682-.018l-.018.018-.894.899S7.738 3.17 7 3.037a3.215 3.215 0 0 0-1.243.01l-.032.009.045-.045.052-.052.254-.253C6.67 2.114 7.807.976 7.81.953Z\"\/><\/svg> <\/div>\n <div class=\"copy-line__content\">\n <span class=\"js-copy-line-content\">https:\/\/dk.dreamstime.com\/illustration\/scriptprogrammering.html?pg=99<\/span>\n <\/div>\n <button\n type=\"button\"\n class=\"copy-line__btn btn btn--green btn--big js-copy-line-btn\"\n data-tooltip-copied-txt=\"Kopieret til udklipsholder!\"\n data-dt-id=\"copy-line\" data-dt-root=\"\" data-dt-on-click=\"\" data-dt-show-loading=\"\" data-dt-loading-type=\"btn\" data-dt-loading-theme=\"dark\" data-dt-css=\"58,59\" data-dt-js=\"60\" data-dt-js-order=\"61,62,63,64\" >KOPIER LINK<\/button>\n<\/div>\n <\/div>\n\n \n <\/div>\n <\/div>\n<\/div>\n<\/template>\n"}</script> <script id="modal-deps" type="application/json">{"deps":{"css":"45,46","js":"54,29,30,55"}}</script> <script id="lang-select" type="application/json">{"langLinks":{"en":"https:\/\/www.dreamstime.com\/illustration\/script-programming.html","pt":"https:\/\/pt.dreamstime.com\/illustration\/script-programming.html","de":"https:\/\/de.dreamstime.com\/illustration\/scriptprogrammierung.html","es":"https:\/\/es.dreamstime.com\/illustration\/programaci\u00f3n-de-scripts.html","it":"https:\/\/it.dreamstime.com\/illustration\/programmazione-script.html","nl":"https:\/\/www.dreamstime.com\/nl\/illustration\/scriptprogrammering.html","fr":"https:\/\/fr.dreamstime.com\/illustration\/programmation-de-scripts.html","ru":"https:\/\/ru.dreamstime.com\/illustration\/\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432\u043e\u0435-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.html","gr":"https:\/\/gr.dreamstime.com\/illustration\/\u03c0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03b9\u03c3\u03bc\u03cc\u03c2-\u03c3\u03b5\u03bd\u03b1\u03c1\u03af\u03c9\u03bd.html","cn":"https:\/\/cn.dreamstime.com\/illustration\/\u811a\u672c\u7f16\u7a0b.html","pl":"https:\/\/pl.dreamstime.com\/illustration\/programowanie-skrypt\u00f3w.html","se":"https:\/\/se.dreamstime.com\/illustration\/skriptprogrammering.html","ro":"https:\/\/ro.dreamstime.com\/illustration\/programare-script.html","sk":"https:\/\/sk.dreamstime.com\/illustration\/skriptov\u00e9-programovanie.html","cz":"https:\/\/cz.dreamstime.com\/illustration\/skriptov\u00e9-programov\u00e1n\u00ed.html","jp":"https:\/\/www.dreamstime.com\/jp\/illustration\/\u30b9\u30af\u30ea\u30d7\u30c8\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0.html","kr":"https:\/\/www.dreamstime.com\/kr\/illustration\/\uc2a4\ud06c\ub9bd\ud2b8-\ud504\ub85c\uadf8\ub798\ubc0d.html","ar":"https:\/\/ar.dreamstime.com\/illustration\/\u0628\u0631\u0645\u062c\u0629-\u0627\u0644\u0646\u0635\u0648\u0635-\u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629.html","hi":"https:\/\/hi.dreamstime.com\/illustration\/\u0938\u094d\u0915\u094d\u0930\u093f\u092a\u094d\u091f-\u092a\u094d\u0930\u094b\u0917\u094d\u0930\u093e\u092e\u093f\u0902\u0917.html","tr":"https:\/\/tr.dreamstime.com\/illustration\/betik-programlama.html","id":"https:\/\/id.dreamstime.com\/illustration\/pemrograman-skrip.html","dk":"https:\/\/dk.dreamstime.com\/illustration\/scriptprogrammering.html","no":"https:\/\/www.dreamstime.com\/no\/illustration\/skriptprogrammering.html","he":"https:\/\/www.dreamstime.com\/he\/illustration\/\u05ea\u05db\u05e0\u05d5\u05ea-\u05e1\u05e7\u05e8\u05d9\u05e4\u05d8\u05d9\u05dd.html"},"modalUrl":"https:\/\/dk.dreamstime.com\/new\/components\/LanguageSelect\/modal_init.ajax.php"}</script> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-PT44P2" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script> const DT = { memberId: null, isAuth: false, usePrefetchWorker: true, prefetchWorkerUrl: '/new/js/prefetch_worker.min.js', useFetchPriority: true, cssVersion: 1283, jsVersion: 166205, cdnUrl: 'https://front.dreamstime.com/', siteUrl: 'https://dk.dreamstime.com/', isDev: false, isRtl: false, isLtr: false, enableLog: false, assetsBasePath: 'new/process-assets/', ajaxBase: 'https://dk.dreamstime.com/new/', componentsBasePath: 'https://dk.dreamstime.com/new/components/', _loadedScriptsOnce: {'js/scheduler_polyfill.js': true,'js/scheduler.js': true,'js/core.js': true,'js/ui.js': true,'js/dt_loader.js': true,'pages/pages.js': true,'components/Toast/init.js': true,'components/PasswordShow/PasswordShow.js': true,'components/Search/puzzle_paste.js': true,'templates/header/SearchAutocomplete/SearchAutocomplete.js': true,'components/Banner/banner.js': true,'templates/search/filters/filters_search_functions.js': true,'pages/search/sort_same_url.js': true,'components/SearchListing/swipe_title.js': true,'components/SearchListing/drag.js': true,'components/Modal/init.js': true,'js/ajax_html.js': true,'components/LightboxBar/init.js': true,'https://client.px-cloud.net/PX2e972lwZ/main.min.js': true,'https://www.googletagmanager.com/gtm.js?id=GTM-PT44P2': true}, _loadedStyleSheetsOnce: {'css/core.css': true,'templates/header.css': true,'templates/header/header_not-logged.css': true,'components/PasswordShow/PasswordShow.css': true,'templates/header/header_menu.css': true,'templates/header/header_no-hero.css': true,'components/Search/Search.css': true,'components/Search/search_dropdown.css': true,'components/Select/Select_default.css': true,'components/Dropdown/Dropdown.css': true,'components/Dropdown/Dropdown_right.css': true,'components/Dropdown/Dropdown_btm.css': true,'templates/header/header_sticky.css': true,'pages/search/search.css': true,'components/Banner/FreeTrial/FreeTrial.css': true,'components/Banner/Default/Default.css': true,'components/Banner/Default/Default_big.css': true,'components/Banner/FreeTrial/FreeTrial_container.css': true,'components/Breadcrumbs/Breadcrumbs.css': true,'components/Swiper/Swiper.css': true,'components/Swiper/Swiper_fading.css': true,'components/CloseButton/CloseButton.css': true,'templates/search/filters/OptionGroup/OptionGroup.css': true,'components/Form/FormCheckbox.css': true,'templates/search/filters/ButtonList.css': true,'components/Form/FormInput.css': true,'components/Form/FormColor.css': true,'components/Form/FormSelect.css': true,'components/Form/FormSwitch.css': true,'components/SearchListing/SearchListing.css': true,'components/SearchListing/SearchIcons.css': true,'components/SearchListing/SearchListingItem.css': true,'components/SearchListing/SearchListingItemLoggedOut.css': true,'components/SearchListing/swipe_title.css': true,'components/SearchListing/rounded_corners.css': true,'components/SearchListing/SimilarsLink.css': true,'components/SearchListing/LightboxButton/LightboxButton.css': true,'components/Pagination/NextPageButton.css': true,'components/Pagination/Pagination.css': true,'components/Pagination/PaginationList.css': true,'pages/search/share_button.css': true,'components/Share/Button/Button.css': true,'templates/footer.css': true,'components/SocialRow/SocialRow.css': true,'components/SocialRow/SocialRow_sg.css': true,'components/SocialRow/SocialRow_mdm.css': true,'components/LanguageSelect/LanguageSelect.css': true}, components: {}, /* DT old site constants */ fullCpage: 'search.php', cpage: 'search', securitycheck: '4fb721e3ad8b67a443a7da3ec29631fa', cacheDriver: 'ap', }; var securitycheck = '4fb721e3ad8b67a443a7da3ec29631fa'; var isRtl = false; var isLtr = false; try { DT.htmlLazyDeps = {"1":"js\/breakpoints.js","2":"templates\/header\/header_login.js","3":"js\/register.js","4":"js\/functions_cookie.js","5":"js\/pwd_strength.js","6":"components\/Popup\/Popup.js","7":"components\/Popup\/PopupSignup\/PopupSignup.js","8":"js\/jquery.js","9":"js\/plugins\/tooltipster.bundle.min.js","10":"css\/plugins\/tooltipster.bundle.min.css","11":"css\/plugins\/tooltipster.themes.css","12":"components\/Popup\/PopupSignup\/PopupSignup.css","13":"js\/functions_auth.js","14":"templates\/header\/header_not-logged.init.js","15":"templates\/header\/login.js","16":"templates\/header\/header_mobile_menu.js","17":"templates\/header\/header_sticky.js","18":"js\/plugins\/hermite.js","19":"js\/lang_cts.js.php?l=dk","20":"js\/plugins\/puzzle.js","21":"components\/Search\/Search.js","22":"components\/Search\/clear_input.js","23":"components\/Dropdown\/Dropdown.js","24":"components\/Dropdown\/Dropdown.init.js","25":"components\/Select\/Select.js","26":"components\/Select\/Select.init.js","27":"templates\/header\/SearchAutocomplete\/SearchAutocomplete2.css","28":"templates\/header\/SearchAutocomplete\/SearchAutocomplete_desktop.css","29":"js\/http.js","30":"js\/ajax_html.js","31":"components\/Swiper\/Swiper.js","32":"components\/Swiper\/Swiper.init.js","33":"templates\/search\/filters\/filters_search_functions.js","34":"templates\/search\/filters\/filters_search.js","35":"templates\/search\/filters\/filters_search_content_filters.js","36":"templates\/search\/filters\/filters.css","37":"templates\/search\/filters\/filters_search_people.js","38":"templates\/search\/filters\/filters_search_media.js","39":"components\/Form\/FormColor.js","40":"templates\/search\/filters\/filters_search_withinresults.js","41":"templates\/search\/filters\/filters_search_options.js","42":"templates\/search\/filters\/filters_search_safesearch.js","43":"components\/SearchListing\/SearchListingNew.js","44":"components\/Pagination\/NextPageButton.js","45":"components\/CloseButton\/CloseButton.css","46":"components\/Modal\/Modal.css","47":"components\/CopyLine\/CopyLine.css","48":"components\/CopyLine\/CopyLine_grey.css","49":"components\/CopyLine\/CopyLine_icon.css","50":"components\/Share\/Modal\/Modal.css","51":"components\/SocialRow\/SocialRow.css","52":"components\/SocialRow\/SocialRow_ss.css","53":"components\/SocialRow\/SocialRow_huge.css","54":"js\/animation.js","55":"components\/Modal\/Modal.js","56":"components\/Share\/Button\/Button.js","57":"components\/SocialRow\/SocialRow.js","58":"components\/Tooltip\/Tooltip.css","59":"components\/Tooltip\/Tooltip_green.css","60":"templates\/get_header_offset.js","61":"js\/floating_ui.js","62":"components\/Tooltip\/Tooltip.js","63":"components\/Tooltip\/Tooltip.init.js","64":"components\/CopyLine\/CopyLine.js","65":"components\/Popup\/PopupFreeTrial\/PopupFreeTrial.js","66":"components\/Popup\/PopupFreeTrial\/PopupFreeTrial.css","67":"templates\/footer\/popup_signup_interaction.js","68":"templates\/footer\/footer_toggle.js","69":"templates\/footer\/footer_menu.js","70":"components\/LanguageSelect\/LanguageSelect.js","71":"components\/Form\/FormSwitch.js","72":"components\/Tooltip\/Tooltip_grey.css","73":"components\/SearchListing\/SimilarsLink.js","74":"components\/SearchListing\/LightboxButton\/tooltip.js","75":"components\/SearchListing\/LightboxButton\/action.js"}; } catch (_) {}!function(){var i=["user-blocking","user-visible","background"];class t{constructor(){this.channel_=new MessageChannel,this.sendPort_=this.channel_.port2,this.messages_={},this.nextMessageHandle_=1,this.channel_.port1.onmessage=i=>this.onMessageReceived_(i)}queueCallback(i){var t=this.nextMessageHandle_++;return this.messages_[t]=i,this.sendPort_.postMessage(t),t}cancelCallback(i){delete this.messages_[i]}onMessageReceived_(i){var t=i.data;if(t in this.messages_){var e=this.messages_[t];delete this.messages_[t],e()}}}function e(){return e.instance_||(e.instance_=new t),e.instance_}class r{constructor(i,t,e){void 0===e&&(e=0),this.callback_=i,this.callbackType_=null,this.handle_=null,this.canceled_=!1,this.schedule_(t,e)}isIdleCallback(){return 0===this.callbackType_}isMessageChannelCallback(){return 2===this.callbackType_}cancel(){if(!this.canceled_)switch(this.canceled_=!0,this.callbackType_){case 0:cancelIdleCallback(this.handle_);break;case 1:clearTimeout(this.handle_);break;case 2:e().cancelCallback(this.handle_);break;default:throw new TypeError("Unknown CallbackType")}}schedule_(t,r){if(r&&r>0)return this.callbackType_=1,void(this.handle_=setTimeout((()=>{this.runCallback_()}),r));if(!i.includes(t))throw new TypeError("Invalid task priority : "+t);return"background"===t&&"function"==typeof requestIdleCallback?(this.callbackType_=0,void(this.handle_=requestIdleCallback((()=>{this.runCallback_()})))):"function"==typeof MessageChannel?(this.callbackType_=2,void(this.handle_=e().queueCallback((()=>{this.runCallback_()})))):(this.callbackType_=1,void(this.handle_=setTimeout((()=>{this.runCallback_()}))))}runCallback_(){this.canceled_||this.callback_()}}var s=0;class n{constructor(){this.head_=null,this.tail_=null}isEmpty(){return null==this.head_}push(i){if("object"!=typeof i)throw new TypeError("Task must be an Object");i.tq_sequence_=s++,this.isEmpty()?(i.tq_prev_=null,this.head_=i):(i.tq_prev_=this.tail_,this.tail_.tq_next_=i),i.tq_next_=null,this.tail_=i}takeNextTask(){if(this.isEmpty())return null;var i=this.head_;return this.remove_(i),i}merge(i,t){if("function"!=typeof t)throw new TypeError("Must provide a selector function.");if(null==i)throw new Error("sourceQueue cannot be null");for(var e=this.head_,r=null,s=i.head_;s;){var n=s;if(s=s.tq_next_,t(n)){for(i.remove_(n);e&&e.tq_sequence_<n.tq_sequence_;)r=e,e=e.tq_next_;this.insert_(n,r),r=n}}}toArray(){for(var i=this.head_,t=[];null!==i;)t.push(i),i=i.tq_next_;return t}insert_(i,t){if(t!=this.tail_){var e=t?t.tq_next_:this.head_;i.tq_next_=e,e.tq_prev_=i,i.tq_prev_=t,null!=t?t.tq_next_=i:this.head_=i}else this.push(i)}remove_(i){if(null==i)throw new Error("Expected task to be non-null");i===this.head_&&(this.head_=i.tq_next_),i===this.tail_&&(this.tail_=this.tail_.tq_prev_),i.tq_next_&&(i.tq_next_.tq_prev_=i.tq_prev_),i.tq_prev_&&(i.tq_prev_.tq_next_=i.tq_next_)}}class a extends Event{constructor(t,e){if(!e||!i.includes(e.previousPriority))throw new TypeError("Invalid task priority: '"+e.previousPriority+"'");super(t),this.previousPriority=e.previousPriority}}class l extends AbortController{constructor(t){if(void 0===t&&(t={}),super(),null==t&&(t={}),"object"!=typeof t)throw new TypeError("'init' is not an object");var e,r,s=void 0===t.priority?"user-visible":t.priority;if(!i.includes(s))throw new TypeError("Invalid task priority: '"+s+"'");this.priority_=s,this.isPriorityChanging_=!1,r=(e=this).signal,Object.defineProperties(r,{priority:{get:function(){return e.priority_},enumerable:!0},onprioritychange:{value:null,writable:!0,enumerable:!0}}),r.addEventListener("prioritychange",(i=>{r.onprioritychange&&r.onprioritychange(i)}))}setPriority(t){if(!i.includes(t))throw new TypeError("Invalid task priority: "+t);if(this.isPriorityChanging_)throw new DOMException("","NotAllowedError");if(this.signal.priority!==t){this.isPriorityChanging_=!0;var e=this.priority_;this.priority_=t;var r=new a("prioritychange",{previousPriority:e});this.signal.dispatchEvent(r),this.isPriorityChanging_=!1}}}void 0===self.scheduler?(self.scheduler=new class{constructor(){this.queues_={},i.forEach((i=>{this.queues_[i]=[new n,new n]})),this.pendingHostCallback_=null,this.signals_=new WeakMap}yield(i){return(i=Object.assign({},i)).signal&&"inherit"==i.signal&&delete i.signal,i.priority&&"inherit"==i.priority&&(i.priority="user-visible"),this.postTaskOrContinuation_((()=>{}),i,!0)}postTask(i,t){return this.postTaskOrContinuation_(i,t,!1)}postTaskOrContinuation_(t,e,r){if(void 0!==(e=Object.assign({},e)).signal){if(null===e.signal||!("aborted"in e.signal)||"function"!=typeof e.signal.addEventListener)return Promise.reject(new TypeError("'signal' is not a valid 'AbortSignal'"));if(e.signal&&e.signal.priority&&!i.includes(e.signal.priority))return Promise.reject(new TypeError("Invalid task priority: '"+e.signal.priority+"'"))}if(void 0!==e.priority&&(null===e.priority||!i.includes(e.priority)))return Promise.reject(new TypeError("Invalid task priority: '"+e.priority+"'"));if(void 0===e.delay&&(e.delay=0),e.delay=Number(e.delay),e.delay<0)return Promise.reject(new TypeError("'delay' must be a positive number."));var s={callback:t,options:e,resolve:null,reject:null,hostCallback:null,abortCallback:null,onTaskCompleted:function(){this.options.signal&&this.abortCallback&&(this.options.signal.removeEventListener("abort",this.abortCallback),this.abortCallback=null)},onTaskAborted:function(){this.hostCallback&&(this.hostCallback.cancel(),this.hostCallback=null),this.options.signal.removeEventListener("abort",this.abortCallback),this.abortCallback=null,this.reject(this.options.signal.reason)},isAborted:function(){return this.options.signal&&this.options.signal.aborted},isContinuation:r},n=new Promise(((i,t)=>{s.resolve=i,s.reject=t}));return this.schedule_(s),n}schedule_(i){var t=i.options.signal;if(t){if(t.aborted)return void i.reject(t.reason);i.abortCallback=()=>{i.onTaskAborted()},t.addEventListener("abort",i.abortCallback)}i.options.delay>0?i.hostCallback=new r((()=>{i.hostCallback=null,this.onTaskDelayExpired_(i)}),null,i.options.delay):(this.pushTask_(i),this.scheduleHostCallbackIfNeeded_())}onTaskDelayExpired_(i){this.pushTask_(i),this.pendingHostCallback_&&(this.pendingHostCallback_.cancel(),this.pendingHostCallback_=null),this.schedulerEntryCallback_()}onPriorityChange_(i){var t=this.signals_.get(i);if(void 0===t)throw new Error("Attempting to change priority on an unregistered signal");if(t!==i.priority){for(var e=0;e<2;e++)this.queues_[i.priority][e].merge(this.queues_[t][e],(t=>t.options.signal===i));this.signals_.set(i,i.priority)}}schedulerEntryCallback_(){this.pendingHostCallback_=null,this.runNextTask_(),this.scheduleHostCallbackIfNeeded_()}scheduleHostCallbackIfNeeded_(){var{priority:i}=this.nextTaskPriority_();null!=i&&("background"!==i&&this.pendingHostCallback_&&this.pendingHostCallback_.isIdleCallback()&&(this.pendingHostCallback_.cancel(),this.pendingHostCallback_=null),this.pendingHostCallback_||(this.pendingHostCallback_=new r((()=>{this.schedulerEntryCallback_()}),i,0)))}pushTask_(t){var e;if(!i.includes(e=t.options.priority?t.options.priority:t.options.signal&&t.options.signal.priority?t.options.signal.priority:"user-visible"))throw new TypeError("Invalid task priority: "+e);if(t.options.signal&&t.options.signal.priority){var r=t.options.signal;this.signals_.has(r)||(r.addEventListener("prioritychange",(()=>{this.onPriorityChange_(r)})),this.signals_.set(r,r.priority))}this.queues_[e][t.isContinuation?0:1].push(t)}runNextTask_(){var i=null;do{var{priority:t,type:e}=this.nextTaskPriority_();if(null==t)return;i=this.queues_[t][e].takeNextTask()}while(i.isAborted());try{var r=i.callback();i.resolve(r)}catch(t){i.reject(t)}finally{i.onTaskCompleted()}}nextTaskPriority_(){for(var t=0;t<i.length;t++)for(var e=i[t],r=0;r<2;r++)if(!this.queues_[e][r].isEmpty())return{priority:e,type:r};return{priority:null,type:0}}},self.TaskController=l,self.TaskPriorityChangeEvent=a):self.scheduler.yield||(self.scheduler.yield=function(i){var t=i=>i&&"user-visible"!=i?i:"user-blocking";if((i=Object.assign({},i)).signal&&"inherit"==i.signal&&delete i.signal,i.priority&&"inherit"==i.priority&&delete i.priority,i.signal&&i.signal.aborted)return Promise.reject(i.signal.reason);var e=i.priority;!e&&i.signal&&i.signal.priority&&(e=i.signal.priority),e=t(e);var r={inputSignal:i.signal,controller:new self.TaskController({priority:e}),abortCallback:null,priorityCallback:null,onTaskAborted:function(){this.controller.abort(this.inputSignal.reason),this.abortCallback=null},onPriorityChange:function(){this.controller.setPriority(t(this.inputSignal.priority))},onTaskCompleted:function(){this.abortCallback&&(this.inputSignal.removeEventListener("abort",this.abortCallback),this.abortCallback=null),this.priorityCallback&&(this.inputSignal.removeEventListener("prioritychange",this.priorityCallback),this.priorityCallback=null)}};i.signal&&(r.abortCallback=()=>{r.onTaskAborted()},i.signal.addEventListener("abort",r.abortCallback)),i.signal&&i.signal.priority&&!i.priority&&(r.priorityCallback=()=>{r.onPriorityChange()},i.signal.addEventListener("prioritychange",r.priorityCallback));var s=self.scheduler.postTask((()=>{}),{signal:r.controller.signal});return s.then((()=>{r.onTaskCompleted()})).catch((i=>{throw r.onTaskCompleted(),i})),s})}(); DT.Scheduler=(()=>{const postTask=(task,options={})=>window.scheduler.postTask(task,options),yieldToMain=()=>window.scheduler.yield(),isInputPending=()=>navigator?.scheduling?.isInputPending?.()??!1,waitForHighPriority=(options={})=>new Promise(((resolve,reject)=>{postTask(resolve,{priority:"user-blocking",...options}).catch(reject)})),waitForMediumPriority=(options={})=>new Promise(((resolve,reject)=>{postTask(resolve,{priority:"user-visible",...options}).catch(reject)})),waitForLowPriority=(options={})=>new Promise(((resolve,reject)=>{postTask(resolve,{priority:"background",...options}).catch(reject)})),yieldIfInputPending=async()=>{if(isInputPending())return yieldToMain()};return{postTask:postTask,yieldToMain:yieldToMain,isInputPending:isInputPending,yieldIfInputPending:yieldIfInputPending,waitForHighPriority:waitForHighPriority,waitForMediumPriority:waitForMediumPriority,waitForLowPriority:waitForLowPriority}})(); DT.isMobile=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),DT.isTouchDevice="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0,DT.isMac=/Macintosh/.test(navigator.userAgent),DT.log=(type,...args)=>{if(DT.enableLog)try{type in console||(type="log"),console[type](...args)}catch(_err){}},DT.onReady=function(callback){"complete"===document.readyState||"interactive"===document.readyState||"loaded"===document.readyState?callback():document.addEventListener("DOMContentLoaded",callback)},DT.onReadyIdle=(callback,timeout=50)=>{DT.onReady((()=>{DT.onIdle(callback,timeout)}))},DT.onIdle=function(callback,timeout=50){return"requestIdleCallback"in window?window.requestIdleCallback(callback,{timeout:timeout}):setTimeout(callback,timeout)},DT.idle=function(timeout=50){return new Promise((resolve=>{DT.onIdle(resolve,timeout)}))},DT.isInputPending=()=>navigator?.scheduling?.isInputPending?.()??!1,DT.yieldIfInputPending=async()=>{DT.isInputPending()&&await DT.yieldToMain()},DT.onLoad=function(callback){"complete"===document.readyState?callback():window.addEventListener("load",callback)},DT.onLoadIdle=(callback,timeout=50)=>{DT.onLoad((()=>{DT.onIdle(callback,timeout)}))},DT.nextIter=(timeout=0)=>new Promise((resolve=>{setTimeout((()=>{resolve()}),timeout)})),DT.yieldToMain=async(timeout=0)=>{if(0===timeout&&"scheduler"in window&&"yield"in window.scheduler)try{return await window.scheduler.yield()}catch(_){}return new Promise((resolve=>{setTimeout(resolve,timeout)}))},DT.onNextIter=(callback,timeout=0)=>{setTimeout((()=>{callback()}),timeout)},DT.nextFrame=()=>new Promise((resolve=>{window.requestAnimationFrame(resolve)})),DT.onNextFrame=callback=>{window.requestAnimationFrame(callback)},DT.cancelNextFrame=id=>{id&&window.cancelAnimationFrame(id)},DT.isPage=(...pages)=>pages.some((page=>page===DT.cpage)),DT.import=DT.require=function(){const urls=Array.prototype.slice.call(arguments);return Promise.all(urls.map((url=>import(url))))},DT.importOrder=DT.requireOrder=function(){const urls=Array.prototype.slice.call(arguments);return urls.reduce(((promise,url)=>promise.then((()=>import(url)))),Promise.resolve())},DT.isDtUrl=function(url){return!!this.isRelativeUrl(url)||/^(https?:\/\/)?(?:[a-z0-9-]+\.)?dreamstime\./.test(url)},DT.isRelativeUrl=function(url){return/^(?!www\.|(?:http|ftp)s?:\/\/|[A-Za-z]:\\|\/\/(www\.)?|[a-zA-Z0-9\-\_]+\.[a-z]{1,3}).*/i.test(url)},DT.appendQueryString=function(url,queryString){const hasQueryString=undefined,separator=undefined;return`${url}${/\?/.test(url)?"&":"?"}${queryString}`},DT.processCssImportUrl=function(url){if(!this.isDtUrl(url))return url;if(this.isDev)return`/${this.assetsBasePath}${url}`;let newUrl=url;return this.isRelativeUrl(url)&&(newUrl=`${this.cdnUrl}${this.assetsBasePath}${url}`),this.appendQueryString(newUrl,`v=${this.cssVersion}`)},DT.processJsImportUrl=function(url){if(!this.isDtUrl(url))return url;if(this.isDev)return`/${this.assetsBasePath}${url}`;let newUrl=url;return this.isRelativeUrl(url)&&(newUrl=`${this.cdnUrl}${this.assetsBasePath}${url}`),this.appendQueryString(newUrl,`v=${this.jsVersion}`)},DT.loadScripts=function(){const scripts=Array.prototype.slice.call(arguments);return new Promise((async(resolve,reject)=>{let loaded=0;const head=document.getElementsByTagName("head")[0];function checkLoaded(){loaded++,loaded===scripts.length&&resolve()}for(let i=0;i<scripts.length;i++){const script=scripts[i];let scriptSrc,fetchPriority;"object"==typeof script?(scriptSrc=script.src,fetchPriority=script.fetchPriority):scriptSrc=script;const prefetchUrlPromise=DT.prefetchWorker.getPrefetchUrlPromise(scriptSrc);prefetchUrlPromise?await prefetchUrlPromise:DT.prefetchWorker.abortPrefetchUrls(scriptSrc);const createScript=()=>{const script=document.createElement("script");script.type="text/javascript",script.src=DT.processJsImportUrl(scriptSrc),fetchPriority&&DT.useFetchPriority&&script.setAttribute("fetchpriority",fetchPriority),script.onload=checkLoaded,script.onerror=reject,head.appendChild(script)};DT._preloadedLinks[scriptSrc]?DT._preloadedLinks[scriptSrc].then(createScript).catch(reject):createScript()}}))},DT.isScriptLoaded=function(scriptSrc){return!0===DT._loadedScriptsOnce[scriptSrc]},DT.loadScriptsOnce=function(){const scripts=Array.prototype.slice.call(arguments);return new Promise((async(resolve,reject)=>{let loaded=0;const head=document.getElementsByTagName("head")[0];function checkLoaded(){loaded++,loaded===scripts.length&&resolve()}const onScriptLoadError=error=>{DT.log("error","Failed to load script",error.target.src,error),reject(error)};for(let i=0;i<scripts.length;i++){const script=scripts[i];let scriptSrc,fetchPriority="";if("object"==typeof script?(scriptSrc=script.src,fetchPriority=script.fetchPriority):scriptSrc=script,DT._loadedScriptsOnce[scriptSrc]){!0===DT._loadedScriptsOnce[scriptSrc]?checkLoaded():DT._loadedScriptsOnce[scriptSrc].then(checkLoaded).catch(reject);continue}const prefetchUrlPromise=DT.prefetchWorker.getPrefetchUrlPromise(scriptSrc);prefetchUrlPromise?await prefetchUrlPromise:DT.prefetchWorker.abortPrefetchUrls(scriptSrc),DT._loadedScriptsOnce[scriptSrc]=new Promise(((resolve,reject)=>{const createScript=()=>{const script=document.createElement("script");script.type="text/javascript",script.src=DT.processJsImportUrl(scriptSrc),fetchPriority&&DT.useFetchPriority&&script.setAttribute("fetchpriority",fetchPriority),script.onload=function(){checkLoaded(),resolve()},script.onerror=error=>{reject(error),onScriptLoadError(error)},head.appendChild(script)};if(DT._preloadedLinks[scriptSrc])return DT._preloadedLinks[scriptSrc].then(createScript).catch(reject),void 0;createScript()})),DT._loadedScriptsOnce[scriptSrc].catch(reject)}}))},DT.loadScriptsInOrder=function(){const scripts=Array.prototype.slice.call(arguments);return new Promise(((resolve,reject)=>{const head=document.getElementsByTagName("head")[0];async function loadScript(index){if(index>=scripts.length)return resolve(),void 0;const script=scripts[index];if(Array.isArray(script))return DT.loadScriptsInOrder(...script).then((()=>{loadScript(index+1)})),void 0;let scriptSrc,fetchPriority;"object"==typeof script?(scriptSrc=script.src,fetchPriority=script.fetchPriority):scriptSrc=script;const prefetchUrlPromise=DT.prefetchWorker.getPrefetchUrlPromise(scriptSrc);prefetchUrlPromise?await prefetchUrlPromise:DT.prefetchWorker.abortPrefetchUrls(scriptSrc);const createScript=()=>{const script=document.createElement("script");script.type="text/javascript",script.src=DT.processJsImportUrl(scriptSrc),fetchPriority&&DT.useFetchPriority&&script.setAttribute("fetchpriority",fetchPriority),script.onload=function(){loadScript(index+1)},script.onerror=reject,head.appendChild(script)};if(DT._preloadedLinks[scriptSrc])return DT._preloadedLinks[scriptSrc].then(createScript).catch(reject),void 0;createScript()}loadScript(0)}))},DT.loadScriptsInOrderOnce=function(){const scripts=Array.prototype.slice.call(arguments);return new Promise(((resolve,reject)=>{const head=document.getElementsByTagName("head")[0],onScriptLoadError=error=>{DT.log("error","Failed to load script",error),reject(error)};async function loadScript(index){if(index>=scripts.length)return resolve(),void 0;const script=scripts[index];if(Array.isArray(script))return DT.loadScriptsInOrderOnce(...script).then((()=>{loadScript(index+1)})),void 0;let scriptSrc,fetchPriority;if("object"==typeof script?(scriptSrc=script.src,fetchPriority=script.fetchPriority):scriptSrc=script,DT._loadedScriptsOnce[scriptSrc])return!0===DT._loadedScriptsOnce[scriptSrc]?loadScript(index+1):DT._loadedScriptsOnce[scriptSrc].then((()=>{loadScript(index+1)})).catch(reject),void 0;const prefetchUrlPromise=DT.prefetchWorker.getPrefetchUrlPromise(scriptSrc);prefetchUrlPromise?await prefetchUrlPromise:DT.prefetchWorker.abortPrefetchUrls(scriptSrc),DT._loadedScriptsOnce[scriptSrc]=new Promise(((resolve,reject)=>{const createScript=()=>{const script=document.createElement("script");script.type="text/javascript",script.src=DT.processJsImportUrl(scriptSrc),fetchPriority&&DT.useFetchPriority&&script.setAttribute("fetchpriority",fetchPriority),script.onload=function(){loadScript(index+1),resolve()},script.onerror=error=>{reject(error),onScriptLoadError(error)},head.appendChild(script)};if(DT._preloadedLinks[scriptSrc])return DT._preloadedLinks[scriptSrc].then(createScript).catch(reject),void 0;createScript()}))}loadScript(0)}))},DT.loadCSS=function(){const urls=Array.prototype.slice.call(arguments);return new Promise((async function(resolve,reject){let loaded=0;function checkLoaded(){loaded++,loaded===urls.length&&DT.afterPaint().then((()=>{resolve()}))}for(let i=0;i<urls.length;i++){const urlSrc=urls[i];let url,fetchPriority,prefetchPromise;if("object"==typeof urlSrc?(url=urlSrc.url,fetchPriority=urlSrc.fetchPriority):url=urlSrc,DT._loadedStyleSheetsOnce[url]){!0===DT._loadedStyleSheetsOnce[url]?checkLoaded():DT._loadedStyleSheetsOnce[url].then(checkLoaded).catch(reject);continue}const prefetchUrlPromise=DT.prefetchWorker.getPrefetchUrlPromise(url);prefetchUrlPromise?prefetchPromise=prefetchUrlPromise:(prefetchPromise=new Promise((resolve=>{resolve()})),DT.prefetchWorker.abortPrefetchUrls(url)),DT._loadedStyleSheetsOnce[url]=prefetchPromise.then((()=>DT.addPreloadLink({href:url,as:"style",type:"text/css",fetchPriority:fetchPriority}))).then((preloadedLink=>{preloadedLink.setAttribute("rel","stylesheet"),preloadedLink.addEventListener("load",(()=>{checkLoaded()})),preloadedLink.addEventListener("error",(err=>{DT.log("error","Failed to load CSS",err),checkLoaded()}))})).catch((preloadedLink=>{preloadedLink?(preloadedLink.setAttribute("rel","stylesheet"),preloadedLink.addEventListener("load",(()=>{checkLoaded()})),preloadedLink.addEventListener("error",(err=>{DT.log("error","Failed to load CSS",err),checkLoaded()}))):checkLoaded()}))}}))},DT._preloadedLinks={},DT.addPreloadLink=({href:href,as:as,type:type="",media:media="",prefetch:prefetch="",fetchPriority:fetchPriority=""})=>new Promise((async resolve=>{if(DT._preloadedLinks[href])return!0===DT._preloadedLinks[href]?(resolve(),void 0):DT._preloadedLinks[href].then(resolve);if("script"===type&&DT._loadedScriptsOnce[href])return!0===DT._loadedScriptsOnce[href]?(resolve(),void 0):DT._loadedScriptsOnce[href].finally(resolve);if("style"===type&&DT._loadedStyleSheetsOnce[href])return!0===DT._loadedStyleSheetsOnce[href]?(resolve(),void 0):DT._loadedStyleSheetsOnce[href].finally(resolve);const prefetchUrlPromise=DT.prefetchWorker.getPrefetchUrlPromise(href);prefetchUrlPromise?await prefetchUrlPromise:DT.prefetchWorker.abortPrefetchUrls(href),DT._preloadedLinks[href]=new Promise((resolve=>{const preloadLink=document.createElement("link");preloadLink.setAttribute("rel","preload"),preloadLink.setAttribute("as",as);let processedHref=href;"script"===as?processedHref=DT.processJsImportUrl(href):"style"===as&&(processedHref=DT.processCssImportUrl(href)),preloadLink.setAttribute("href",processedHref),preloadLink.onload=()=>{preloadLink.onload=null,resolve(preloadLink)},preloadLink.onerror=err=>{DT.log("error","Failed to preload link",err),resolve(preloadLink)},type&&preloadLink.setAttribute("type",type),prefetch&&preloadLink.setAttribute("prefetch",prefetch),fetchPriority&&DT.useFetchPriority&&preloadLink.setAttribute("fetchpriority",fetchPriority);const head=document.getElementsByTagName("head")[0];return preloadLink.relList.supports("preload")?(head.appendChild(preloadLink),void 0):"style"===as?(preloadLink.setAttribute("rel","stylesheet"),head.appendChild(preloadLink),void 0):(resolve(preloadLink),void 0)})),DT._preloadedLinks[href].then((link=>{resolve(link)}))})),DT.addPreloadLinks=(...links)=>new Promise.all([...links.map((link=>DT.addPreloadLink(link)))]),DT._lastQueuePreloadLink=new Promise((resolve=>resolve())),DT.queuePreloadLink=async link=>{const prevLoad=DT._lastQueuePreloadLink;return DT._lastQueuePreloadLink=new Promise((async resolve=>{try{await prevLoad}catch(err){}DT.addPreloadLink(link).catch((reason=>{DT.log("error","Failed to preload link",reason)})).finally(resolve)})),DT._lastQueuePreloadLink},DT._lastQueueLoadDeps=new Promise((resolve=>resolve())),DT.queueLoadDeps=async loadDeps=>{if("function"!=typeof loadDeps)return;const prevLoad=DT._lastQueueLoadDeps;return DT._lastQueueLoadDeps=new Promise((async resolve=>{try{await prevLoad}catch(err){DT.log("error","Fail prev deps load",err)}await DT.idle();try{await loadDeps()}catch(err){DT.log("error","Failed to queue load deps",err)}resolve()})),DT._lastQueueLoadDeps},DT.queueDepsOnLoad=loadDeps=>new Promise((resolve=>{DT.onLoadIdle((async()=>{try{await DT.queueLoadDeps(loadDeps)}finally{resolve()}}))})),DT.loadDeps=({js:js=[],css:css=[]},priority="",{loadJs:loadJs=!0,loadCss:loadCss=!0}={})=>{const loadPromises=[];if(loadJs||loadCss||(loadJs=!0,loadCss=!0),loadJs){const loadScriptsOnce=[];for(let i=0;i<js.length;i++){const jsUrl=js[i];Array.isArray(jsUrl)?priority?loadPromises.push(DT.loadScriptsInOrderOnce(...jsUrl.map((url=>({src:url,fetchPriority:priority}))))):loadPromises.push(DT.loadScriptsInOrderOnce(...jsUrl)):priority?loadScriptsOnce.push({src:jsUrl,fetchPriority:priority}):loadScriptsOnce.push(jsUrl)}loadScriptsOnce.length&&loadPromises.push(DT.loadScriptsOnce(...loadScriptsOnce))}return loadCss&&css.length&&loadPromises.push(DT.loadCSS(...css)),Promise.all(loadPromises)},DT.createLoadDeps=(deps,priority="")=>(options={})=>DT.loadDeps(deps,priority,options),DT.loadLazyDeps=(lazyDeps,priority="")=>{const deps=DT.collectDeps(DT.parseLazyDeps(lazyDeps));return deps?DT.loadDeps(deps,priority):Promise.resolve()},DT.prefetchWorker={queuedUrls:{},fetchedUrlsFinished:{},fetchedUrls:{},worker:null,getPrefetchUrlPromise(url){return this.fetchedUrls[url]},log(data){DT.log(data.level,data.message)},onWorkerMessage(event){if("log"===event?.data?.type)return DT.prefetchWorker.log(event.data),void 0;event?.data&&"start_fetch"===event.data.type&&!DT.prefetchWorker.fetchedUrls[event.data.url]&&(DT.prefetchWorker.fetchedUrls[event.data.url]=new Promise((resolve=>{const startFetchUrl=event.data.url,handler=endFetchEvent=>{endFetchEvent?.data&&"end_fetch"===endFetchEvent.data.type&&endFetchEvent.data.url===startFetchUrl&&(DT.prefetchWorker.fetchedUrlsFinished[startFetchUrl]=!0,DT.prefetchWorker.worker.removeEventListener("message",handler),resolve())};DT.prefetchWorker.worker.addEventListener("message",handler)})))},processUrls:(urls=[])=>urls.map((url=>{if(!url)return null;const cleanUrl=url.split("?")[0];let processedUrl,contentType;switch(!0){case cleanUrl.endsWith(".js"):case cleanUrl.endsWith(".js.php"):processedUrl=DT.processJsImportUrl(url),contentType="text/javascript";break;case cleanUrl.endsWith(".css"):case cleanUrl.endsWith(".css.php"):processedUrl=DT.processCssImportUrl(url),contentType="text/css";break;default:processedUrl=url;break}return{originalUrl:url,url:processedUrl,contentType:contentType}})).filter((url=>null!==url)),prefetchUrls(urls,priority="auto"){if(!this.worker||!urls.length)return;const validUrls=urls.filter((url=>!(DT._preloadedLinks[url]||DT._loadedScriptsOnce[url]||DT._loadedStyleSheetsOnce[url]||this.queuedUrls[url]||this.abortedUrls[url]||this.fetchedUrlsFinished[url]))),processedUrls=this.processUrls(validUrls);processedUrls.length&&(processedUrls.forEach((url=>{this.queuedUrls[url.originalUrl]=!0})),this.worker.postMessage({type:"prefetchUrls",urls:processedUrls,priority:priority}))},queuePrefetchUrls(urls,priority="low"){if(!this.worker||!urls.length)return;const validUrls=urls.filter((url=>!(DT._preloadedLinks[url]||DT._loadedScriptsOnce[url]||DT._loadedStyleSheetsOnce[url]||this.queuedUrls[url]||this.abortedUrls[url]||this.fetchedUrlsFinished[url]))),processedUrls=this.processUrls(validUrls);processedUrls.length&&(processedUrls.forEach((url=>{this.queuedUrls[url.originalUrl]=!0})),this.worker.postMessage({type:"queuePrefetchUrls",urls:processedUrls,priority:priority}))},abortedUrls:{},abortPrefetchUrls(...urls){if(!this.worker||!urls.length)return;const validUrls=urls.filter((url=>!this.abortedUrls[url]&&!this.fetchedUrlsFinished[url])),processedUrls=this.processUrls(validUrls);processedUrls.length&&(processedUrls.forEach((url=>{this.abortedUrls[url.originalUrl]=!0})),this.worker.postMessage({type:"abortPrefetchUrls",urls:processedUrls}))},queuePrefetchUrlsOnReady(urls,priority="high"){DT.onReadyIdle((()=>{this.queuePrefetchUrls(urls,priority)}))},queuePrefetchUrlsOnLoad(urls,priority="low"){DT.onLoadIdle((()=>{this.queuePrefetchUrls(urls,priority)}))},init(){try{this.worker=new Worker(DT.prefetchWorkerUrl,{name:"DT Prefetch Worker"}),this.worker.addEventListener("message",this.onWorkerMessage)}catch(err){this.worker=null,DT.log("error","Failed to create Prefetch Worker",err)}}},DT.queuePrefetchDeps=({js:js=[],css:css=[]},priority="low",direct=!1)=>{const prefetchUrls=[],addNestedUrls=urls=>{for(let i=0;i<urls.length;i++){const url=urls[i];Array.isArray(url)?addNestedUrls(url):prefetchUrls.push(url)}};addNestedUrls(js),addNestedUrls(css),direct?DT.prefetchWorker.prefetchUrls(prefetchUrls,priority):DT.prefetchWorker.queuePrefetchUrls(prefetchUrls,priority)},DT.onReadyIdle((()=>{DT.usePrefetchWorker&&"undefined"!=typeof Worker&&null===DT.prefetchWorker.worker&&DT.prefetchWorker.init()})),DT.debounce=function(func,threshold=200,execAsap){var timeout;return function debounced(){var obj=this,args=arguments;function delayed(){execAsap||func.apply(obj,args),timeout=null}timeout?clearTimeout(timeout):execAsap&&func.apply(obj,args),timeout=setTimeout(delayed,threshold)}},DT.throttle=function(func,limit=200){var wait=!1;return function(){var obj=this,args=arguments;wait||(func.apply(obj,args),wait=!0,setTimeout((function(){wait=!1}),limit))}},DT._callbacksNotifyFirstMouseMove=[],DT._callbacksNotifyFirstMouseMoveTriggered=!1,DT.notifyFirstMouseMove=(...callbacks)=>{DT._callbacksNotifyFirstMouseMove.push(...callbacks)},DT.notifierOnFirstMouseMove=()=>{if(!DT._callbacksNotifyFirstMouseMoveTriggered){DT._callbacksNotifyFirstMouseMoveTriggered=!0,document.removeEventListener("scroll",DT.notifierOnFirstMouseMove),document.removeEventListener("mousemove",DT.notifierOnFirstMouseMove),DT.isMobile&&document.removeEventListener("touchmove",DT.notifierOnFirstMouseMove),document.removeEventListener("pointermove",DT.notifierOnFirstMouseMove);for(let i=0;i<DT._callbacksNotifyFirstMouseMove.length;i++)try{DT._callbacksNotifyFirstMouseMove[i]()}catch(_err){}}},DT.onReady((()=>{document.addEventListener("scroll",DT.notifierOnFirstMouseMove),document.addEventListener("mousemove",DT.notifierOnFirstMouseMove),DT.isMobile&&document.addEventListener("touchmove",DT.notifierOnFirstMouseMove),document.addEventListener("pointermove",DT.notifierOnFirstMouseMove)})),DT.loadHtml=async({element:element,url:url,asOuterHtml:asOuterHtml=!1,fetchOptions:fetchOptions,allowOnlyDtUrl:allowOnlyDtUrl=!0})=>{"string"==typeof element&&(element=document.querySelector(element));let htmlUrl=url;if(DT.isRelativeUrl(htmlUrl))0===htmlUrl.indexOf("/")&&(htmlUrl=htmlUrl.slice(1)),htmlUrl=`${DT.ajaxBase}${htmlUrl}`;else if(allowOnlyDtUrl&&!DT.isDtUrl(htmlUrl))return;const response=await fetch(htmlUrl,fetchOptions);if(!response.ok)throw new Error(`HTTP error: ${response.status}`);const html=await response.text();if("CheckLogin"===html)return location.reload(),void 0;asOuterHtml?element.outerHTML=html:element.innerHTML=html},DT.jsonData={},DT.parseJSONData=dataId=>{var oData=document.getElementById(dataId);return!(!oData||!oData.text)&&JSON.parse(oData.text)},DT.parseJsonHtml=templateName=>{let html=null;try{const data=DT.parseJSONData(`json-html-${templateName}`);if(!data)return null;html=data.html}catch(error){return DT.log("error","Failed to parse JSON template",error),null}if(!html)return null;const placeholder=document.createElement("div");return placeholder.innerHTML=html,placeholder.firstElementChild},DT.isNullish=value=>null==value,DT.toType=obj=>Object.prototype.toString.call(obj).slice(8,-1).toLowerCase(),DT.isObject=value=>"object"===DT.toType(value),DT.deepMerge=(...sources)=>{let returnValue={};for(const source of sources)if(Array.isArray(source))Array.isArray(returnValue)||(returnValue=[]),returnValue=[...returnValue,...source];else if(DT.isObject(source))for(let[key,value]of Object.entries(source))DT.isObject(value)&&key in returnValue&&(value=DT.deepMerge(returnValue[key],value)),returnValue={...returnValue,[key]:value};return returnValue},DT.setCookie=function(name,value,expires,path,domain,secure){expires||(expires=30);var today=new Date,expires2=new Date(today.getTime()+864e5*expires);document.cookie=name+"="+encodeURIComponent(value)+(expires?"; expires="+expires2.toGMTString():"")+(path?"; path="+path:"; path=/")+(domain?"; domain="+domain:"; domain=.dreamstime.com")+(secure?"; secure":"")},DT.getCookie=function(name){var dc=document.cookie,prefix=name+"=",begin=dc.indexOf("; "+prefix);if(-1==begin){if(0!=(begin=dc.indexOf(prefix)))return null}else begin+=2;var end=document.cookie.indexOf(";",begin);return-1==end&&(end=dc.length),decodeURIComponent(dc.substring(begin+prefix.length,end))},DT.deleteCookie=function(name,path,domain){DT.getCookie(name)&&(document.cookie=name+"="+(path?"; path="+path:"")+(domain?"; domain="+domain:"")+"; expires=Thu, 01-Jan-70 00:00:01 GMT")},DT.parseLazyDeps=deps=>{const parsedDeps={};for(const[key,value]of Object.entries(deps))parsedDeps[key]=value.toString().split(",").map((urlKey=>{const urlKeyTrimmed=urlKey.toString().trim(),deps=DT.htmlLazyDeps[urlKeyTrimmed];return deps||(DT.isDtUrl(urlKeyTrimmed)?urlKeyTrimmed:"")}));return parsedDeps},DT.isElement=element=>element instanceof Element||element instanceof Document,DT.getElement=selectorOrElement=>{try{return"string"==typeof selectorOrElement?document.querySelector(selectorOrElement):selectorOrElement}catch(_){return null}},DT.collectDeps=deps=>{const js=[],css=[];for(let[key,value]of Object.entries(deps))Array.isArray(value)||(value=[value]),key.startsWith("js-order")?js.push([...value]):key.startsWith("js")?js.push(...value):key.startsWith("css")&&css.push(...value);return{js:js,css:css}},DT.loadDepsFromTree=element=>{const elements=[...element.querySelectorAll("[data-lazy-deps]")];return element.dataset?.lazyDeps&&elements.push(element),elements.length?Promise.all(elements.map((element=>{const jsonDeps=element.dataset?.lazyDeps,parsedDeps=DT.parseLazyDeps(JSON.parse(jsonDeps)),deps=DT.collectDeps(parsedDeps);return DT.createLoadDeps(deps,"high")()}))):Promise.resolve()},DT.insertTemplate=async(templateOrSelector,elementOrSelector,position="append")=>{const template=DT.getElement(templateOrSelector),element=DT.getElement(elementOrSelector);if(!template||!element)return;const templateElement=template.content.cloneNode(!0);return await DT.loadDepsFromTree(templateElement),"append"===position?element.appendChild(templateElement):element.prepend(templateElement),templateElement},DT.afterPaint=async(callback=null)=>(await DT.nextFrame(),callback?(DT.onNextIter(callback),void 0):DT.nextIter()); DT.UI={loadingTimeouts:new WeakMap,showLoading({element:element,type:type="area",theme:theme="dark",size:size=null,positionRelative:positionRelative=!1,timeout:timeout=null,isPage:isPage=!1}){if(!(element=DT.getElement(element)))return;if(clearTimeout(this.loadingTimeouts.get(element)),"button"===type&&(type="btn"),!timeout)return this._showLoading({element:element,type:type,theme:theme,size:size,positionRelative:positionRelative,isPage:isPage}),DT.nextIter();const timeoutId=setTimeout((async()=>{await DT.yieldIfInputPending(),this._showLoading({element:element,type:type,theme:theme,size:size,positionRelative:positionRelative,isPage:isPage})}),timeout);return this.loadingTimeouts.set(element,timeoutId),DT.nextIter()},_showLoading({element:element,type:type="area",theme:theme="dark",size:size=null,positionRelative:positionRelative=!1,isPage:isPage=!1}){const elem=DT.getElement(element);if(!elem)return;const prevState=this.get(elem);if(elem.setAttribute("data-loading-type",type),"area"===type){const loadingArea=this.makeLoadingArea(isPage);elem.appendChild(loadingArea);const borderRadius=window.getComputedStyle(elem).borderRadius;borderRadius&&"0px"!==borderRadius&&loadingArea.style.setProperty("--loading-area-border-radius",borderRadius)}elem.setAttribute("data-loading",theme),size&&elem.setAttribute("data-loading-size",size),positionRelative&&elem.setAttribute("data-pos",""),prevState&&elem.setAttribute("data-loading-prev-state",prevState),this.unset(elem)},makeLoadingArea(isPage=!1){const element=document.createElement("div");return element.classList.add("loading","js-loading-area"),isPage&&element.setAttribute("data-page-loading",""),element},hideLoading(selectorOrElement){const element=DT.getElement(selectorOrElement);if(!element)return;const prevState=element.getAttribute("data-loading-prev-state"),area=element.querySelector(".js-loading-area");element.removeAttribute("data-loading-type"),element.removeAttribute("data-loading"),element.removeAttribute("data-loading-size"),element.removeAttribute("data-pos"),area?.remove(),prevState&&(this.set(element,prevState),element.removeAttribute("data-loading-prev-state")),clearTimeout(this.loadingTimeouts.get(element))},showPageLoading(theme="dark"){return this.showLoading({element:document.body,type:"area",theme:theme,isPage:!0})},hidePageLoading(){this.hideLoading(document.body)},isLoading:selectorOrElement=>DT.getElement(selectorOrElement)?.hasAttribute("data-loading"),set(selectorOrElement,state){DT.getElement(selectorOrElement)?.setAttribute("data-state",state)},unset(selectorOrElement){DT.getElement(selectorOrElement)?.removeAttribute("data-state")},unsetIf(selectorOrElement,state){this.is(selectorOrElement,state)&&this.unset(selectorOrElement)},get:selectorOrElement=>DT.getElement(selectorOrElement)?.getAttribute("data-state"),is(selectorOrElement,state){return this.get(selectorOrElement)===state},toggle(selectorOrElement,state){if(this.is(selectorOrElement,state))return this.unset(selectorOrElement),void 0;this.set(selectorOrElement,state)},toggleCustom(selectorOrElement,stateOn,stateOff){if(this.is(selectorOrElement,stateOn))return this.set(selectorOrElement,stateOff),void 0;this.set(selectorOrElement,stateOn)},setCustom(selectorOrElement,attribute,value){DT.getElement(selectorOrElement)?.setAttribute(`data-${attribute}`,value)},unsetCustom(selectorOrElement,attribute){DT.getElement(selectorOrElement)?.removeAttribute(`data-${attribute}`)},offset(element){const box=element.getBoundingClientRect(),scrollX=window.pageXOffset,scrollY=window.pageYOffset,clientTop=document.documentElement.clientTop,clientLeft=document.documentElement.clientLeft,left=box.left+scrollX-clientLeft,right=box.right+scrollX-clientLeft;return{top:box.top+scrollY-clientTop,left:left,right:right,bottom:box.bottom+scrollY-clientTop,inlineStart:DT.isRtl?right:left,inlineEnd:DT.isRtl?left:right}}}; DT.htmlLazyLoad={directPrefetch:!0,initializers:{},visibleMarginPx:100,events:new Set,deps:new Map,loading:new Set,loaded:new Set,loadingPromises:new Map,prefix:"data-dt-",broadcastTargets:{},getDepsUrls(element,attr,first=!1){const isAjax=this.hasAttr(element,"ajax"),urls=this.getAttr(element,attr)?.split(",").map((urlKey=>{const urlKeyTrimmed=urlKey.trim();return isAjax&&DT.isDtUrl(urlKeyTrimmed)?urlKeyTrimmed:DT.htmlLazyDeps[urlKeyTrimmed]}));return first?urls?.[0]:urls},setLoaded(id){this.loaded.add(id)},setLoading(id){this.loading.add(id)},createEvent:(eventName,detail)=>new CustomEvent(eventName,{detail:detail}),isOnDocumentEvent(eventName){return eventName.startsWith(`${this.prefix}on-document`)},isOnWindowEvent(eventName){return eventName.startsWith(`${this.prefix}on-window`)},broadcast(infix,ev,type=ev.type){try{const keyPrefix=`${infix}-`,keyDefault=`${keyPrefix}${type}`,keyKeyboard=ev instanceof KeyboardEvent?`${keyPrefix}key-${ev.key.toLowerCase()}`:null,elements=this.broadcastTargets[keyDefault],elementsKeyboard=keyKeyboard?this.broadcastTargets[keyKeyboard]:null;elements?.length&&elements.forEach((target=>{document.contains(target)&&this.dispatch(target,infix,ev)})),elementsKeyboard?.length&&elementsKeyboard.forEach((target=>{document.contains(target)&&this.dispatch(target,infix,ev)}))}catch(err){DT.log("error","Failed to broadcast",err)}},getAttr(element,attr){return element.getAttribute(`${this.prefix}${attr}`)},hasAttr(element,attr){return element.hasAttribute(`${this.prefix}${attr}`)},getRootElement(id){return document.querySelector(`[${this.prefix}id="${id}"][${this.prefix}root]`)},getDispatchTarget(element,id,ev){if(!this.hasAttr(element,"dispatch-target"))return element;try{const selector=this.getAttr(element,"dispatch-target");return"original"===selector?ev.target??element:"document"===selector?document.body:"window"===selector?window:"root"===selector?this.getRootElement(id):document.querySelector(selector)}catch(err){DT.log("error","Failed to get dispatchTarget, use element",err)}return element},doAction({id:id,element:element,ev:ev,eventName:eventName,isPreventDefault:isPreventDefault}){let action="dispatch";switch(this.hasAttr(element,`action${eventName}`)?action=this.getAttr(element,`action${eventName}`):this.hasAttr(element,"action")&&(action=this.getAttr(element,"action")),action){case"dispatch":{const dispatchTarget=this.getDispatchTarget(element,id,ev),customDispatchEvent=this.getAttr(element,"dispatch-event"),dispatchNextIter=()=>{try{if(customDispatchEvent&&customDispatchEvent!==ev.type)return dispatchTarget.dispatchEvent(new Event(customDispatchEvent,{bubbles:!0,cancelable:!0})),void 0;isPreventDefault?dispatchTarget.dispatchEvent(new ev.constructor(ev.type,{...ev,bubbles:!0,cancelable:!0})):dispatchTarget.dispatchEvent(ev)}catch(err){DT.log("error",`DT Loader failed to dispatch event ${ev.type} with name ${eventName} for id ${id}`,err)}};return DT.onNextIter(dispatchNextIter),void 0}case"call":{const obj=this.getAttr(element,"obj"),method=this.getAttr(element,"method"),objRoot=this.hasAttr(element,"obj-dt")?DT:window;try{if(obj){const objPath=obj.split(".");let object=objRoot;objPath.forEach((path=>object=object[path])),object[method](ev,element)}else objRoot[method](ev,element)}catch(err){DT.log("error","Failed to call obj method",err)}return}case"custom-dispatch":{const dispatchTarget=this.getDispatchTarget(element,id,ev),customEventName=this.getAttr(element,"dispatch-event")??ev.type,detail=this.getAttr(element,"dispatch-detail")??"";return DT.onNextIter((()=>{dispatchTarget.dispatchEvent(this.createEvent(customEventName,detail))})),void 0}case"init":{const initializer=this.getAttr(element,"init");try{DT.htmlLazyLoad.initializers[initializer](ev,element)}catch(err){DT.log("error","Failed to call init",err)}return}case"root":{const rootElement=this.getRootElement(id);if(rootElement===element)return;return this.doAction({id:id,element:rootElement,ev:ev,eventName:eventName,isPreventDefault:isPreventDefault}),void 0}default:return}},load:{async default({loadDeps:loadDeps}){await loadDeps()},async html({loadDeps:loadDeps,loader:loader,element:element}){const urlKey=loader.getAttr(element,"html"),url=DT.htmlLazyDeps[urlKey.trim()],loadTarget=loader.getAttr(element,"html-target")??element,asOuterHtml=loader.hasAttr(element,"html-outer");await loadDeps({loadJs:!1}),await DT.loadHtml({element:loadTarget,url:url,asOuterHtml:asOuterHtml}),await loadDeps({loadCss:!1})}},async getLoadingElemByBreakpoint(element){let loadingElem=element;const loadingBpAttrs=element.getAttributeNames().filter((attr=>attr.startsWith(`${this.prefix}loading-target-`)));return loadingBpAttrs.length?(await DT.loadScriptsOnce("js/breakpoints.js"),loadingBpAttrs.forEach((attr=>{const breakpoint=attr.replace(`${this.prefix}loading-target-`,"");DT.breakpoints.is(breakpoint)&&(loadingElem=document.querySelector(element.getAttribute(attr)))})),loadingElem):loadingElem},async displayLoading({element:element,eventName:eventName}){let isLoadingDisplayed=!1,loadingElem=null;if(!this.hasAttr(element,"show-loading"))return{isLoadingDisplayed:isLoadingDisplayed,loadingElem:loadingElem};if(this.hasAttr(element,"loading-for")){const loadingFor=this.getAttr(element,"loading-for"),eventNameClean=eventName.replace("-","");if(!loadingFor.includes(eventName)&&!loadingFor.includes(eventNameClean))return{isLoadingDisplayed:isLoadingDisplayed,loadingElem:loadingElem}}if(isLoadingDisplayed=!0,loadingElem=element,this.hasAttr(element,"loading-target")){const loadingElemType=this.getAttr(element,"loading-target");if("bp"===loadingElemType)loadingElem=await this.getLoadingElemByBreakpoint(element);else if(loadingElemType.startsWith("closest:")){const closestSelector=loadingElemType.replace("closest:","");loadingElem=element.closest(closestSelector)}else if(loadingElemType.startsWith("scope:")){const scopeSelector=loadingElemType.replace("scope:","");loadingElem=element.querySelector(`:scope ${scopeSelector}`)}else loadingElem=document.querySelector(loadingElemType)}return DT.UI.isLoading(loadingElem)||(DT.UI.showLoading({element:loadingElem,type:this.getAttr(element,"loading-type"),theme:this.getAttr(element,"loading-theme"),size:this.getAttr(element,"loading-size"),positionRelative:this.hasAttr(element,"loading-relative"),timeout:parseInt(this.getAttr(element,"loading-delay"),10)||null}),await DT.Scheduler.yieldToMain()),{isLoadingDisplayed:isLoadingDisplayed,loadingElem:loadingElem}},isAllowed({element:element,event:event}){switch(!0){case event instanceof PointerEvent:{if(!this.hasAttr(element,"mouse-button")||"mouse"!==event.pointerType)return!0;const mouseButton=undefined;return this.getAttr(element,"mouse-button").split(",").includes(event.button.toString())}default:return!0}},async displaySecondaryLoading(element,eventName,id){if(DT.UI.isLoading(element))return;const{isLoadingDisplayed:isLoadingDisplayed,loadingElem:loadingElem}=await this.displayLoading({element:element,eventName:eventName});if(isLoadingDisplayed)try{await this.loadingPromises.get(id)}finally{DT.UI.hideLoading(loadingElem)}},async dispatch(element,prefix="",ev){const id=this.getAttr(element,"id");if(!id||this.loaded.has(id))return;let eventName=`${prefix}-${ev.type}`;if(ev instanceof KeyboardEvent){const eventKey=ev.key.toLowerCase();this.hasAttr(element,`on${prefix}-key-${eventKey}`)&&(eventName=`${prefix}-key-${eventKey}`)}let isPreventDefault=!1;if(this.hasAttr(element,`on${eventName}-preventdefault`)&&(ev.preventDefault(),isPreventDefault=!0),!this.hasAttr(element,`on${eventName}`)||DT.isTouchDevice&&this.hasAttr(element,`on${eventName}-no-touch`)||!this.isAllowed({element:element,event:ev}))return;if(await DT.Scheduler.waitForHighPriority(),this.loading.has(id))return this.displaySecondaryLoading(element,eventName,id),void 0;this.loading.add(id);const elementDeps=this.deps.get(id),loadDeps=DT.createLoadDeps(elementDeps,"high"),{isLoadingDisplayed:isLoadingDisplayed,loadingElem:loadingElem}=await this.displayLoading({element:element,eventName:eventName});try{const loadDepsType=this.hasAttr(element,"html")?"html":"default",loadingPromise=this.load[loadDepsType]({loadDeps:loadDeps,element:element,loader:this});this.loadingPromises.set(id,loadingPromise),await loadingPromise,this.loaded.add(id),isLoadingDisplayed&&(DT.UI.hideLoading(loadingElem),await DT.afterPaint()),this.doAction({id:id,element:element,ev:ev,eventName:eventName,isPreventDefault:isPreventDefault})}catch(err){this.loaded.add(id),isLoadingDisplayed&&DT.UI.hideLoading(loadingElem),DT.log("error",`Failed to lazy load ${id} reason: ${err}`,err)}},processWindowEvent(ev){this.broadcast("-window",ev,ev.type)},async processDocumentEvent(ev){let type=ev.type,element=ev.target;for(this.broadcast("-document",ev,type);element&&element.getAttribute;)await this.dispatch(element,"",ev),element=ev.bubbles?element.parentElement:null},push(eventName){if(!eventName||this.events.has(eventName))return;let domEventName=eventName;eventName.startsWith("key-")&&(domEventName="keydown"),document.addEventListener(domEventName,this.processDocumentEvent.bind(this),{capture:!0,passive:!1}),window.addEventListener(domEventName,this.processWindowEvent.bind(this)),this.events.add(eventName)},addTree(rootElem){rootElem&&(this.add(rootElem),rootElem.querySelectorAll(`:scope [${this.prefix}id]`).forEach((elem=>this.add(elem))))},initMutationObserver(){this.mutationObserver=new MutationObserver((async mutations=>{await DT.Scheduler.waitForHighPriority(),mutations.forEach((mutation=>{"childList"===mutation.type&&mutation.addedNodes.forEach((node=>{node.nodeType===Node.ELEMENT_NODE&&(this.addTree(node),DT.loadDepsFromTree(node))}))}))})),this.mutationObserver.observe(document.body,{childList:!0,subtree:!0}),document.dispatchEvent(new Event("dt_loader:mutation-observer-init"))},getUrlsFromLazyDeps(lazyDeps){const parsedDeps=DT.parseLazyDeps(JSON.parse(lazyDeps));return Object.values(parsedDeps).flat(3)},prefetchLazyDeps(){DT.onLoad((()=>{const elements=[...document.querySelectorAll("[data-lazy-deps]")],templates=[...document.querySelectorAll("template")];elements?.forEach((element=>{try{DT.prefetchWorker.queuePrefetchUrls(this.getUrlsFromLazyDeps(element.dataset.lazyDeps))}catch(_){}})),templates?.forEach((template=>{const elements=undefined;[...template.content.querySelectorAll("[data-lazy-deps]")]?.forEach((element=>{try{DT.prefetchWorker.queuePrefetchUrls(this.getUrlsFromLazyDeps(element.dataset.lazyDeps))}catch(_){}}))}))}))},pushBroadcastTarget(broadcastPrefix,element,eventName){const key=`${broadcastPrefix}-${eventName}`;this.broadcastTargets[key]||(this.broadcastTargets[key]=[]),this.broadcastTargets[key].push(element)},add(element){const id=this.getAttr(element,"id");if(!id)return;const attributeNames=element.getAttributeNames(),elementEvents=attributeNames.filter((attr=>attr.startsWith(`${this.prefix}on`)));if((!elementEvents.length||elementEvents.some((ev=>!ev.endsWith("-preventdefault"))))&&(elementEvents.forEach((eventName=>{const domEvent=eventName.replace("-window","").replace("-document","").replace(`${this.prefix}on-`,"").replace("-preventdefault","");this.push(domEvent),this.isOnDocumentEvent(eventName)&&this.pushBroadcastTarget("-document",element,domEvent),this.isOnWindowEvent(eventName)&&this.pushBroadcastTarget("-window",element,domEvent),["ready","load"].includes(domEvent)&&this.pushBroadcastTarget("",element,domEvent)})),this.hasAttr(element,"root")&&!this.deps.has(id)))try{const js=[],css=[];let prefetchOnlyDeps=[];if(this.hasAttr(element,"js")){const urls=this.getDepsUrls(element,"js");js.push(...urls)}const jsOrderAttr=undefined;if(attributeNames.filter((attr=>attr.startsWith(`${this.prefix}js-order`))).forEach((attr=>{const urls=this.getDepsUrls(element,attr.replace(this.prefix,""));js.push([...urls])})),this.hasAttr(element,"css")){const urls=this.getDepsUrls(element,"css");css.push(...urls)}this.hasAttr(element,"prefetch-deps")&&(prefetchOnlyDeps=this.getDepsUrls(element,"prefetch-deps"));const priority=this.getAttr(element,"priority")??"low",prefetchOnlyDepsPriority=this.getAttr(element,"prefetch-deps-priority")??"low",prefetchOnlyDepsDirect=this.hasAttr(element,"prefetch-deps-direct"),elementDeps={js:js,css:css};this.deps.set(id,elementDeps);const doPrefetchOnlyDeps=async()=>{if(prefetchOnlyDeps?.length){if(await DT.nextIter(),prefetchOnlyDepsDirect)return DT.prefetchWorker.prefetchUrls(prefetchOnlyDeps,prefetchOnlyDepsPriority),void 0;DT.prefetchWorker.queuePrefetchUrls(prefetchOnlyDeps,prefetchOnlyDepsPriority)}};"load"===this.getAttr(element,"prefetch")?DT.onLoadIdle((()=>{DT.queuePrefetchDeps(elementDeps,priority,this.directPrefetch),doPrefetchOnlyDeps()})):(DT.queuePrefetchDeps(elementDeps,priority,this.directPrefetch),doPrefetchOnlyDeps())}catch(error){DT.log("error","Failed to lazy load from element",error)}},init(){DT.onReadyIdle((async()=>{const elements=document.querySelectorAll(`[${this.prefix}id]`);let processed=0;const PROCESSED_BREAK_TASK=25;for(const element of elements)this.add(element),processed++,processed>=25&&(await DT.Scheduler.yieldToMain(),processed=0);if(this.events.has("visible")){const results=document.querySelectorAll(`[${this.prefix}on-visible]`),observer=new IntersectionObserver((entries=>{for(const entry of entries)entry.isIntersecting&&(observer.unobserve(entry.target),this.dispatch(entry.target,"",this.createEvent("visible",entry)))}),{rootMargin:`${this.visibleMarginPx}px`});results.forEach((el=>observer.observe(el)))}if(this.events.has("not-visible")){const results=document.querySelectorAll(`[${this.prefix}on-not-visible]`),observer=new IntersectionObserver((entries=>{for(const entry of entries)entry.isIntersecting||(observer.unobserve(entry.target),this.dispatch(entry.target,"",this.createEvent("not-visible",entry)))}),{threshold:1});results.forEach((el=>observer.observe(el)))}this.events.has("ready")&&DT.onIdle((()=>this.broadcast("",this.createEvent("ready")))),this.events.has("load")&&DT.onLoadIdle((()=>this.broadcast("",this.createEvent("load")))),this.initMutationObserver(),this.prefetchLazyDeps(),DT.onNextIter((()=>{document.dispatchEvent(new Event("dt_loader:init"))}))}))}},DT.htmlLazyLoad.init(); DT.onLoad((()=>{DT.loadScriptsOnce("js/push.js")})); DT.onReady((()=>{if(void 0!==DT.toast)return;let isInitializing=!1,resolve,reject,initPromise=new Promise(((_resolve,_reject)=>{resolve=_resolve,reject=_reject}));const initializer=async(...params)=>{if(isInitializing)return initPromise.then((()=>{DT.toast?.(...params)}));isInitializing=!0;try{const initPromise=fetch(`${DT.componentsBasePath}Toast/init.ajax.php`),depsPromise=DT.loadScriptsOnce("js/ajax_html.js"),[response]=await Promise.all([initPromise,depsPromise]);if(!response.ok)return;return await DT.ajaxHtml.fromResponse(response,(html=>{html&&document.body.insertAdjacentHTML("beforeend",html)})),DT.toast===initializer?(DT.toast=null,void 0):DT.toast?.(...params)}catch(error){return DT.log("error","Failed to load toast component",error),()=>{}}finally{isInitializing=!1,resolve()}};DT.toast=initializer})); DT.onReadyIdle((()=>{document.addEventListener("click",(event=>{const button=event.target.closest(".js-password-toggle-btn");if(!button)return;event.preventDefault();const inputSelector=button.getAttribute("data-input"),input=document.querySelector(inputSelector);input&&("password"===input.type?(input.type="text",button.setAttribute("aria-pressed","true")):(input.type="password",button.setAttribute("aria-pressed","false")))}))})); document.addEventListener("paste",function(e){var t=e.target;if(t&&t.closest&&t.closest('.js-search-input, .js-header-search-input, input[name="srh_field"]')){var r=function(e){var t=e.clipboardData||window.clipboardData;if(!t)return null;var r=t.files;if(r&&r.length&&/^image\//.test(r[0].type))return r[0];for(var i=t.items||[],a=0;a<i.length;a++)if("file"==i[a].kind&&/^image\//.test(i[a].type)){var l=i[a].getAsFile();if(l)return l}return null}(e);if(r){var i=t.closest("form[data-puzzle]"),a=i?i.getAttribute("data-puzzle"):"off";if("off"!=a)if(e.preventDefault(),"register"!=a){try{t.value=""}catch(e){}DT.loadScriptsInOrderOnce("js/plugins/hermite.js","js/jquery.js","js/plugins/puzzle.js").then(function(){if("undefined"==typeof puzzle||!puzzle.searchFile)throw new Error("puzzle.searchFile is not available");puzzle.searchFile(r)}).catch(function(e){DT.log("error","Failed to load puzzle for a pasted image",e)})}else window.location.href=i.getAttribute("data-puzzle-register")}}}); DT.onReady((()=>{const combobox=document.querySelector(".js-search-combobox"),input=combobox.querySelector(".js-search-input"),wrapper=document.querySelector(".js-search-autocomplete"),content=wrapper.querySelector(".js-content"),accessibilityStatus=wrapper.querySelector(".js-accessibility-status"),isLogSelection=wrapper.hasAttribute("data-log-selection"),logUrl=wrapper.getAttribute("data-log-url"),searchForm=document.querySelector(".js-search-form");let suggestionsController=null,stateController=null,keyboardInteractionController=null,state="close",currentInputValue=input.value;const statusTexts={noSuggestions:wrapper.getAttribute("data-no-suggestions-text"),fetching:wrapper.getAttribute("data-fetching-text"),multipleResults:wrapper.getAttribute("data-multiple-results-text"),oneResult:wrapper.getAttribute("data-one-result-text")},fetchUrl=wrapper.getAttribute("data-fetch-url");let lazyDepsInitiated=!1;const initLazyDeps=async()=>{if(lazyDepsInitiated)return;let deps;try{const jsonDeps=wrapper.dataset?.lazyDeps,parsedDeps=DT.parseLazyDeps(JSON.parse(jsonDeps));deps=DT.collectDeps(parsedDeps)}catch(error){DT.log("warn","Failed to parse SearchAutocomplete lazy deps: ",error)}if(deps){try{await DT.createLoadDeps(deps,"high")()}catch(error){return DT.log("warn","Failed to load SearchAutocomplete lazy deps: ",error),void 0}lazyDepsInitiated=!0,wrapper.setAttribute("data-init","true")}},isOpen=()=>"open"===state,isClose=()=>"close"===state,abortPreviousStateTask=()=>{try{stateController?.abort("Abort previous state task"),stateController=null}catch(_){}},abortPreviousKeyboardInteractionTask=()=>{try{keyboardInteractionController?.abort("Abort previous keyboard interaction"),keyboardInteractionController=null}catch(_){}},abortScheduledTasks=()=>{abortPreviousStateTask(),abortPreviousSuggestionsTask(),abortPreviousKeyboardInteractionTask()},close=async()=>{if(abortScheduledTasks(),!isClose()){stateController=new TaskController;try{await DT.Scheduler.postTask((()=>{clearCurrentSuggestionFocus(),combobox.setAttribute("aria-expanded","false"),wrapper.setAttribute("data-state","closed"),state="close"}),{priority:"user-blocking",signal:stateController.signal})}catch(_){}}},open=async()=>{if(abortPreviousStateTask(),!isOpen()){stateController=new TaskController;try{await DT.Scheduler.postTask((()=>{combobox.setAttribute("aria-expanded","true"),wrapper.setAttribute("data-state","opened"),state="open",updateSuggestionsStatus()}),{priority:"user-blocking",signal:stateController.signal})}catch(_){}}},setStatus=message=>{accessibilityStatus.textContent=message},setFetchingStatus=()=>{setStatus(statusTexts.fetching)},setSuggestionsStatus=count=>{switch(!0){case count<1:setStatus(statusTexts.noSuggestions);break;case 1===count:setStatus(statusTexts.oneResult);break;case count>1:setStatus(statusTexts.multipleResults.replace("%d%",count));break;default:setStatus(statusTexts.noSuggestions);break}},querySuggestionsCategories=()=>content.querySelectorAll(".js-suggestions"),querySuggestions=()=>content.querySelectorAll(".js-suggestion"),logSelection=suggestion=>{isLogSelection&&DT.http.post(logUrl,{data:{search:suggestion.getAttribute("data-value"),category:suggestion.getAttribute("data-category")}}).catch((()=>{}))},isSuggestionFocused=suggestion=>"true"===suggestion.getAttribute("aria-selected"),setSuggestionFocus=suggestion=>{input.value=suggestion.getAttribute("data-value"),setSuggestionVisualFocus(suggestion)},scrollIntoView=suggestion=>{suggestion.hasAttribute("data-focus-prevent-scroll")||suggestion.scrollIntoView({block:"nearest",inline:"nearest"})},setSuggestionVisualFocus=suggestion=>{isSuggestionFocused(suggestion)||(clearCurrentSuggestionFocus(),scrollIntoView(suggestion),input.setAttribute("aria-activedescendant",suggestion.id),suggestion.setAttribute("aria-selected","true"),setStatus(suggestion.getAttribute("aria-label")))},clearCurrentSuggestionFocus=()=>{input.setAttribute("aria-activedescendant",""),document.querySelector('.js-suggestion[aria-selected="true"]')?.setAttribute("aria-selected","false")},appendSkipInputIfNeeded=suggestion=>{suggestion.hasAttribute("data-append-skip-input")&&searchForm.insertAdjacentHTML("afterbegin",'<input type="hidden" name="skip" value="yes">')},selectSuggestion=(suggestion,shouldDispatchEvent=!0)=>{input.value=suggestion.getAttribute("data-value"),appendSkipInputIfNeeded(suggestion),logSelection(suggestion),close(),shouldDispatchEvent&&document.dispatchEvent(new CustomEvent("search-autocomplete:select-suggestion"))},abortPreviousSuggestionsTask=()=>{try{suggestionsController?.abort("Abort previous suggestion task"),suggestionsController=null}catch(_){}},updateSuggestionsStatus=()=>{const suggestionsCategories=querySuggestionsCategories();let countSuggestions=0;suggestionsCategories.forEach((suggestions=>{const count=parseInt(suggestions.getAttribute("data-count"),10);countSuggestions+=isNaN(count)?0:count})),setSuggestionsStatus(countSuggestions)},displaySuggestions=async()=>{abortPreviousSuggestionsTask();const searchKeyword=input.value;if(!searchKeyword)return;suggestionsController=new AbortController;const signal=suggestionsController.signal;try{if(await DT.Scheduler.waitForHighPriority({signal:signal}),await initLazyDeps(),signal.aborted)return;setFetchingStatus();const response=await DT.http.get(fetchUrl,{data:{searchKeyword:searchKeyword},signal:signal});if(!response.ok)return;await DT.Scheduler.postTask((async()=>{await DT.ajaxHtml.fromResponse(response,(html=>{if(!signal.aborted){if(!html)return close().then((()=>{content.innerHTML=html})),setSuggestionsStatus(0),void 0;content.innerHTML=html,clearCurrentSuggestionFocus()}})),signal.aborted||(isClose()?open():updateSuggestionsStatus())}),{priority:"user-blocking",signal:signal})}catch(error){DT.log("warn","Error displaying autocomplete suggestions: ",error)}},debouncedDisplaySuggestions=DT.debounce(displaySuggestions,200),queryCurrentFocusedSuggestion=()=>content.querySelector('.js-suggestion[aria-selected="true"]'),focusFirstSuggestion=()=>{const suggestion=content.querySelector(".js-suggestion");suggestion&&setSuggestionFocus(suggestion)},focusLastSuggestion=()=>{const suggestions=content.querySelectorAll(".js-suggestion");if(!suggestions.length)return;const lastSuggestion=suggestions[suggestions.length-1];setSuggestionFocus(lastSuggestion)},cancelKeyboardNavigation=()=>{clearCurrentSuggestionFocus(),revertSuggestion(),updateSuggestionsStatus()},focusNextSuggestion=()=>{const currentFocused=queryCurrentFocusedSuggestion();if(!currentFocused)return focusFirstSuggestion(),void 0;const suggestions=querySuggestions(),suggestionsLength=suggestions.length;for(let i=0;i<suggestionsLength;i++){const suggestion=undefined;if(suggestions[i]===currentFocused&&i+1<suggestionsLength)return setSuggestionFocus(suggestions[i+1]),void 0}cancelKeyboardNavigation()},focusPreviousSuggestion=()=>{const currentFocused=queryCurrentFocusedSuggestion();if(!currentFocused)return focusLastSuggestion(),void 0;const suggestions=querySuggestions(),suggestionsLength=suggestions.length;for(let i=0;i<suggestionsLength;i++){const suggestion=undefined;if(suggestions[i]===currentFocused&&i-1>=0)return setSuggestionFocus(suggestions[i-1]),void 0}cancelKeyboardNavigation()},revertSuggestion=()=>{input.value=currentInputValue},handleSuggestionHover=event=>{const suggestion=event.target.closest(".js-suggestion");suggestion&&content.contains(suggestion)&&setSuggestionVisualFocus(suggestion)},handleUserInputChange=()=>{previousInputValue=currentInputValue,currentInputValue=input.value},handleKeydownPreventDefault=event=>{switch(event.key){case"ArrowDown":case"ArrowUp":case"PageUp":case"PageDown":event.preventDefault();break;default:break}},handleKeyboardInteraction=async event=>{abortPreviousKeyboardInteractionTask(),keyboardInteractionController=new TaskController;const signal=keyboardInteractionController.signal;switch(event.key){case"Enter":case"Escape":if(close(),"Escape"===event.key){try{await DT.Scheduler.waitForHighPriority(),revertSuggestion()}catch(_){}return}if("Enter"===event.key){const currentFocused=queryCurrentFocusedSuggestion();currentFocused&&selectSuggestion(currentFocused,!1)}break;case"ArrowDown":case"ArrowUp":case"PageUp":case"PageDown":if(isClose())return displaySuggestions(),void 0;try{await DT.Scheduler.waitForHighPriority({signal:signal})}catch(_){return}if(signal.aborted)return;if("PageUp"===event.key)return focusFirstSuggestion(),void 0;if("PageDown"===event.key)return focusLastSuggestion(),void 0;if("ArrowDown"===event.key)return focusNextSuggestion(),void 0;if("ArrowUp"===event.key)return focusPreviousSuggestion(),void 0;break;default:break}},handleInputBlur=async event=>{wrapper.contains(event.relatedTarget)||isClose()||(close(),await DT.Scheduler.waitForHighPriority(),revertSuggestion())},handleSuggestionClick=event=>{const suggestion=event.target.closest(".js-suggestion");suggestion&&DT.Scheduler.postTask((()=>{selectSuggestion(suggestion)}),{priority:"user-blocking"})},handleInput=()=>{if(handleUserInputChange(),""===input.value)return close(),void 0;debouncedDisplaySuggestions()},preventBlurIfClickInside=event=>{event.preventDefault()},clearFocusOnMouseOut=event=>{const suggestion=event.target.closest(".js-suggestion");suggestion&&content.contains(suggestion)&&isSuggestionFocused(suggestion)&&!suggestion.contains(event.relatedTarget)&&clearCurrentSuggestionFocus()};wrapper.addEventListener("mousedown",preventBlurIfClickInside),content.addEventListener("click",handleSuggestionClick),input.addEventListener("blur",handleInputBlur),input.addEventListener("input",handleInput),input.addEventListener("keydown",handleKeydownPreventDefault),input.addEventListener("keyup",handleKeyboardInteraction),content.addEventListener("mouseover",handleSuggestionHover),content.addEventListener("mouseout",clearFocusOnMouseOut)})); DT.onReadyIdle((async()=>{const waitLazyLoader=new Promise((resolve=>{document.addEventListener("dt_loader:mutation-observer-init",(()=>{resolve()}))}));await Promise.race([waitLazyLoader,DT.nextIter(200)]);const bannerPlaceholders=document.querySelectorAll(".js-banner-ajax-placeholder");bannerPlaceholders.length&&(DT.afterLcp&&await(DT.afterLcp?.()),bannerPlaceholders.forEach(((placeholder,index)=>{placeholder.innerHTML=DT.bannersToLoad[index]})),setTimeout((()=>{document.querySelectorAll(".js-banner-default").forEach((elem=>{elem.setAttribute("data-state",""),elem.setAttribute("data-loaded",""),DT.onNextIter((()=>{document.dispatchEvent(new CustomEvent("banner:loaded",{detail:{name:elem.getAttribute("data-name"),element:elem}}))}))}))}),0))}),100); function doNothing(){return!1}function doneEvent(){try{if(searchUrlWithPuzzle(document.querySelector('input[name="srh_field"]').value))return!1}catch(e){}return searchSubmitFilters(),!1}function checkShValue(e){var t=document.getElementById(e);return t.value=t.value.trim().replace(/[`~!@#$%^&*()_|+\-=?;:'",<>\{\}\[\]\\\/]/gi," ").toLowerCase(),0==t.value.length||t.value==dtl_SearchSubmit_000||t.value==dtl_SearchSubmit_001||t.value.indexOf(dtl_SearchSubmit_006)>=0?(DT.afterPaint(()=>{alert(dtl_SearchSubmit_002)}),t.focus(),t.select(),!1):t.value.length<2?(DT.afterPaint(()=>{alert(dtl_SearchSubmit_003)}),t.focus(),t.select(),!1):-1!=t.value.search(/[$\\@\\\#%\^\&\*\(\)\[\]\+\_\{\}\`\~\=\|]/)?(DT.afterPaint(()=>{alert(dtl_SearchSubmit_004+"\n\r\n\r@ $ % ^ & * # ( ) [ ] \\ { + } ` ~ = | \n\r\n\r"+dtl_SearchSubmit_005+"\n")}),t.focus(),t.select(),!1):t.value}function updateDisableClass(e,t=".people-filers-all"){document.querySelectorAll(t).forEach(t=>{e?(t.classList.add("fltr-content__group--disable"),t.setAttribute("inert",""),t.style.opacity="0.2",t.style.pointerEvents="none"):(t.classList.remove("fltr-content__group--disable"),t.removeAttribute("inert"),t.style.opacity="1",t.style.pointerEvents="auto")})}function bindChange(e,t,s){var r=document.getElementById(e);r&&r.addEventListener(t,function(){changeEvent(1);var e=document.getElementById(s);e&&(e.checked=!0)})}function changeEvent(e){var t=document.getElementById("changeEvent").value;return 1==e&&0==t?(document.getElementById("changeEvent").value="1",!1):"clear"==e&&1==t?(document.getElementById("changeEvent").value="0",!1):2==e?t:void 0}function setActiveSelection(e){"y"===varSHget[e]&&DT.UI.set("#"+e,"active")}function updateSingleSHFlag(e){const t=["s_ph","s_ed","s_il","s_video","s_audio","s_ad"];if(t.includes(e)){if("undefined"==typeof varSHget)return;t.forEach(e=>{varSHget[e]="n"}),varSHget[e]="y"}}function searchSubmitFilters(e){var t=checkShValue("srh_field");if(""===t)return!1;if(varSHget.srh_field=t,document.querySelector("#myonoffswitchwre").checked&&""!==srh_field){var s=checkShValue("srh_fieldwrs");if(""===s)return!1;varSHget.firstvalue=varSHget.srh_field,varSHget.srh_field=s,varSHget.srh_fieldwrs=s}varSHget.s_ph=document.getElementById("s_ph")&&document.getElementById("s_ph").checked?"y":"n",varSHget.s_ed=document.getElementById("s_ed")&&document.getElementById("s_ed").checked?"y":"n",varSHget.s_il=document.getElementById("s_il")&&document.getElementById("s_il").checked?"y":"n",varSHget.s_video=document.getElementById("s_video")&&document.getElementById("s_video").checked?"y":"n",varSHget.s_amusic=document.getElementById("s_amusic")&&document.getElementById("s_amusic").checked?"y":"n",varSHget.s_asfx=document.getElementById("s_asfx")&&document.getElementById("s_asfx").checked?"y":"n",varSHget.s_ad=document.getElementById("s_ad")&&document.getElementById("s_ad").checked?"y":"n",updateSingleSHFlag(e);var r=varSHget.site_adr+"search.php?securitycheck="+varSHget.securitycheck;varSHget.srh_field&&(r=r+"&srh_field="+varSHget.srh_field),varSHget.firstvalue&&(r=r+"&firstvalue="+varSHget.firstvalue),varSHget.lastsearchvalue&&(r=r+"&lastsearchvalue="+varSHget.lastsearchvalue),varSHget.srh_fieldwrs&&(r=r+"&srh_fieldwrs="+varSHget.srh_fieldwrs),varSHget.s_all&&(r+="&s_all=n"),varSHget.s_ph&&(r=r+"&s_ph="+varSHget.s_ph),varSHget.s_il&&(r=r+"&s_il="+varSHget.s_il),varSHget.s_video&&"y"!==varSHget.s_all&&"y"!==varSHget.s_audio&&(r=r+"&s_video="+varSHget.s_video),varSHget.s_audio&&"y"!==varSHget.s_all&&"y"!==varSHget.s_video&&"y"!==varSHget.s_ph&&"y"!==varSHget.s_ad&&"y"!==varSHget.s_ed&&"y"!==varSHget.s_il&&(r+="&s_audio=y"),varSHget.s_ad&&(r=r+"&s_ad="+varSHget.s_ad),varSHget.s_free&&(r=r+"&s_free="+varSHget.s_free),document.querySelector("#myonoffswitchwre").checked&&(r+="&s_st=wre"),document.querySelector("#morewec").checked&&"morewec_remvf"!==e&&(r+="&s_st=wec"),"y"==varSHget.s_wp&&"s_wp_remvf"!=e&&(r=r+"&s_wp="+varSHget.s_wp),"y"==varSHget.s_op&&"s_op_remvf"!=e&&(r=r+"&s_op="+varSHget.s_op,"y"==varSHget.s_mrc1&&(r=r+"&s_mrc1="+varSHget.s_mrc1),"y"==varSHget.s_mrc2&&(r=r+"&s_mrc2="+varSHget.s_mrc2),"y"==varSHget.s_mrc3&&(r=r+"&s_mrc3="+varSHget.s_mrc3),"y"==varSHget.s_mrc4&&(r=r+"&s_mrc4="+varSHget.s_mrc4),"y"==varSHget.s_mrc5&&(r=r+"&s_mrc5="+varSHget.s_mrc5),r=(r=r+"&s_mr="+varSHget.s_mr)+"&s_mrg="+varSHget.s_mrg,"y"==varSHget.s_mra1&&(r=r+"&s_mra1="+varSHget.s_mra1),"y"==varSHget.s_mra2&&(r=r+"&s_mra2="+varSHget.s_mra2),"y"==varSHget.s_mra3&&(r=r+"&s_mra3="+varSHget.s_mra3),"y"==varSHget.s_mra4&&(r=r+"&s_mra4="+varSHget.s_mra4),"y"==varSHget.s_mra5&&(r=r+"&s_mra5="+varSHget.s_mra5),"y"==varSHget.s_mra6&&(r=r+"&s_mra6="+varSHget.s_mra6),"y"==varSHget.s_mra7&&(r=r+"&s_mra7="+varSHget.s_mra7),"y"==varSHget.s_mra8&&(r=r+"&s_mra8="+varSHget.s_mra8),"y"==varSHget.s_mra9&&(r=r+"&s_mra9="+varSHget.s_mra9),"y"==varSHget.s_mrea&&(r=r+"&s_mrea="+varSHget.s_mrea),"y"==varSHget.s_mreb&&(r=r+"&s_mreb="+varSHget.s_mreb),"y"==varSHget.s_mreh&&(r=r+"&s_mreh="+varSHget.s_mreh),"y"==varSHget.s_mrem&&(r=r+"&s_mrem="+varSHget.s_mrem),"y"==varSHget.s_mrec&&(r=r+"&s_mrec="+varSHget.s_mrec),"y"==varSHget.s_mreo&&(r=r+"&s_mreo="+varSHget.s_mreo)),"y"==varSHget.s_sl0&&"s_sl_remvf"!=e&&(r=r+"&s_sl0="+varSHget.s_sl0),"y"==varSHget.s_sl1&&"s_sl_remvf"!=e&&(r=r+"&s_sl1="+varSHget.s_sl1),"y"==varSHget.s_sl2&&"s_sl_remvf"!=e&&(r=r+"&s_sl2="+varSHget.s_sl2),"y"==varSHget.s_sl3&&"s_sl_remvf"!=e&&(r=r+"&s_sl3="+varSHget.s_sl3),"y"==varSHget.s_sl4&&"s_sl_remvf"!=e&&(r=r+"&s_sl4="+varSHget.s_sl4),"y"==varSHget.s_sl5&&"s_sl_remvf"!=e&&(r=r+"&s_sl5="+varSHget.s_sl5),"y"==varSHget.s_rf&&"s_rf_remvf"!=e&&(r=r+"&s_rf="+varSHget.s_rf),"y"==varSHget.s_ed&&"s_ed_remvf"!=e&&(r=r+"&s_ed="+varSHget.s_ed),"y"==varSHget.s_ed&&"s_ed_remvf"===e&&(varSHget.s_ed="n",r+="&s_rf=y"),"y"==varSHget.s_exclusive&&"s_exclusive_remvf"!=e&&(r=r+"&s_exclusive="+varSHget.s_exclusive),"y"==varSHget.s_wel&&"s_wel_remvf"!=e&&(r=r+"&s_wel="+varSHget.s_wel),"y"==varSHget.s_pel&&"s_pel_remvf"!=e&&(r=r+"&s_pel="+varSHget.s_pel),"y"==varSHget.s_srel&&"s_srel_remvf"!=e&&(r=r+"&s_srel="+varSHget.s_srel),"y"==varSHget.s_orp&&"s_orp_remvf"!=e&&(r=r+"&s_orp="+varSHget.s_orp),"y"==varSHget.s_orl&&"s_orl_remvf"!=e&&(r=r+"&s_orl="+varSHget.s_orl),"y"==varSHget.s_ors&&"s_ors_remvf"!=e&&(r=r+"&s_ors="+varSHget.s_ors),"y"==varSHget.s_orw&&"s_orw_remvf"!=e&&(r=r+"&s_orw="+varSHget.s_orw),"y"==varSHget.s_clc&&"s_clc_remvf"!=e&&(r=r+"&s_clc="+varSHget.s_clc),"y"==varSHget.s_clm&&"s_clm_remvf"!=e&&(r=r+"&s_clm="+varSHget.s_clm);let a=document.querySelector("#s_color1");a&&(a=a.value.replace("#",""));let c=document.querySelector('select[name="form_select_id"]');c&&(c=Number(c.value));let n=document.querySelector("#s_color2");n&&(n=n.value.replace("#",""));let _=document.querySelector('select[name="form_select_id2"]');_&&(_=Number(_.value)),document.querySelector("#s_c1e")&&document.querySelector("#s_c1e").checked?varSHget.s_c1e="y":varSHget.s_c1e="",document.querySelector("#s_c2e")&&document.querySelector("#s_c2e").checked?varSHget.s_c2e="y":varSHget.s_c2e="","y"==varSHget.s_c1e&&null!=a&&null!=c&&"s_c1e_remvf"!=e&&(r=(r=(r=r+"&s_c1e="+varSHget.s_c1e)+"&s_color1="+a)+"&s_percent1="+c),"y"==varSHget.s_c2e&&null!=n&&null!=_&&"s_c2e_remvf"!=e&&(r=(r=(r=r+"&s_c2e="+varSHget.s_c2e)+"&s_color2="+n)+"&s_percent2="+_),""!==varSHget.s_rsf&&"MPsize_remvf"!=e&&(r=r+"&s_rsf="+varSHget.s_rsf),""!==varSHget.s_rst&&"MPsize_remvf"!=e&&(r=r+"&s_rst="+varSHget.s_rst),"on"!=varSHget.s_cf&&"off"!=varSHget.s_cf||(r=r+"&s_cf="+varSHget.s_cf),varSHget.memberid&&(document.querySelector("#s_amf").checked?varSHget.s_amf="y":varSHget.s_amf="","y"===varSHget.s_amf&&"s_amf_remvf"!==e&&(r+="&s_amf="+varSHget.s_amf));var l=document.querySelector("#s_sp").value.replace(/\s/g,"");""!==l&&"s_sp_remvf"!==e&&(!0===/^[0-9a-zA-Z \-_,]+$/.test(l)&&(l=encodeURIComponent(l),r+="&s_sp="+l));var d=document.querySelector("#s_exc").value.replace(/\s/g,"");""!==d&&"s_exc_remvf"!==e&&(!0===/^[0-9a-zA-Z \-_,]+$/.test(d)&&(d=encodeURIComponent(d),r+="&s_exc="+d));1==varSHget.s_exc_ai&&"s_exc_ai_remvf"!==e&&(r=r+"&s_exc_ai="+varSHget.s_exc_ai),1==varSHget.s_exc_ai&&"s_exc_ai_remvf"===e&&(varSHget.s_exc_ai=0,varSHget.s_onlyai="n"),"y"==varSHget.s_onlyai&&1!=varSHget.s_exc_ai&&"s_onlyai"!==e&&(r=r+"&s_onlyai="+varSHget.s_onlyai),"y"==varSHget.s_amusic&&"s_amusic_remvf"!==e&&(r=r+"&s_amusic="+varSHget.s_amusic),"y"==varSHget.s_asfx&&"s_asfx_remvf"!==e&&(r=r+"&s_asfx="+varSHget.s_asfx),"y"!=varSHget.s_sl1&&"y"!=varSHget.s_sl2&&"y"!=varSHget.s_sl3&&"y"!=varSHget.s_sl4&&"y"!=varSHget.s_sl4||1!=varSHget.s_zerogravityactiv||"s_sl_remvf"==e||setCookie2("dreamstime_slgravity","n",5),"y"==varSHget.s_sl0&&"y"!=varSHget.s_sl1&&"y"!=varSHget.s_sl2&&"y"!=varSHget.s_sl3&&"y"!=varSHget.s_sl4&&1==varSHget.s_zerogravityactiv&&"s_sl_remvf"!=e&&setCookie2("dreamstime_slgravity","",-5),varSHget.sortcriteria&&(r=r+"&sortcriteria="+varSHget.sortcriteria),r+="&nd=1",memorizeFilters(varSHget.s_ed,varSHget.s_exc_ai),setTimeout(()=>{window.location.href=r},30)}function myonoffswitch2(e){var t=document.URL,s=t.substr(t.length-5),r=new XMLHttpRequest;r.open("POST","../../ajax/memoptions.php"),r.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),r.onload=function(){".html"===s?location.reload():searchSubmitFilters()},r.send("showcontentfiltered="+e+"&securitycheck="+varSHget.securitycheck)}function myonoffswitch3(e){var t=document.URL,s=t.substr(t.length-5),r=new XMLHttpRequest;r.open("POST","../../ajax/memoptions.php"),r.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),r.onload=function(){".html"===s?location.reload():searchSubmitFilters()},r.send("exclude_ai="+e+"&securitycheck="+varSHget.securitycheck)}function resetContent(e){"y"===varSHget.s_audio&&"y"!==varSHget.s_all&&(document.getElementById("s_amusic").checked=!0,document.getElementById("s_asfx").checked=!0,varSHget.s_amusic="y",varSHget.s_asfx="y",varSHget.s_rf="y",document.getElementById("s_rf").checked=!0),"y"===varSHget.s_audio||"y"!=varSHget.s_all&&"y"!=varSHget.s_video&&"y"!=varSHget.s_ph&&"y"!=varSHget.s_ad&&"y"!=varSHget.s_ed&&"y"!=varSHget.s_il||(document.getElementById("s_ph").checked=!1,document.getElementById("s_ad").checked=!1,document.getElementById("s_video").checked=!1,document.getElementById("s_il").checked=!1,"y"==e.s_ph&&(document.getElementById("s_ph").checked=!0,varSHget.s_ph="y"),"y"==e.s_ad&&"y"!==e.s_video&&(document.getElementById("s_ad").checked=!0,varSHget.s_ad="y"),"y"==e.s_video&&(document.getElementById("s_video").checked=!0,varSHget.s_video="y",document.getElementById("s_ad").checked=!1,varSHget.s_ad="n"),"y"==e.s_il&&(document.getElementById("s_il").checked=!0,varSHget.s_il="y"),"y"==e.s_ed?(document.getElementById("s_ed").checked=!0,document.getElementById("s_ph").checked=!0,document.getElementById("s_video").checked=!0,document.getElementById("s_il").checked=!0,varSHget.s_ed="y",varSHget.s_ph="y",varSHget.s_il="y",varSHget.s_video="y"):(document.getElementById("s_ed").checked=!0,varSHget.s_ed="y"),document.getElementById("s_wel").checked=!1,document.getElementById("s_pel").checked=!1,document.getElementById("s_srel").checked=!1,varSHget.s_wel="n",varSHget.s_pel="n",varSHget.s_srel="n",DT.UI.set("#s_aiinclude","active"),DT.UI.unset("#s_exc_ai"),DT.UI.unset("#s_onlyai"),varSHget.s_onlyai="n",varSHget.s_exc_ai=1,document.querySelector(".js-s_pel").style.display="",updateDisableClass(!1,wclass=".js-option-s_ad"),desabled_S_ad(e),"y"!==e.s_ed?(varSHget.s_rf="y",document.getElementById("s_rf").checked=!0):(varSHget.s_rf="n",document.getElementById("s_rf").checked=!1)),document.getElementById("s_amf").checked=!1,document.getElementById("morewec").checked=!1,document.getElementById("s_exclusive").checked=!1,varSHget.s_amf="n",varSHget.morewec="n",varSHget.s_exclusive="n";var t=document.getElementById("s_sp"),s=document.getElementById("s_exc");t.value="",s.value="",changeEvent(1)}function resetPeople(){const e=["s_mrea","s_mreb","s_mreh","s_mrem","s_mrec","s_mreo"];(document.querySelector("#cnt-1").checked||document.querySelector("#nopeople").checked)&&(document.querySelector("#cnt-1").checked=!1,filtersClassAction(".numberppl","unset"),filtersClassAction(".genderppl","unset"),document.querySelector("#nopeople").checked=!1,varSHget.s_op="",varSHget.s_mr="",varSHget.s_wp="",varSHget.s_mrc1="y",varSHget.s_mrc2="y",varSHget.s_mrc3="y",varSHget.s_mrc4="y",varSHget.s_mrc5="y",varSHget.s_mrg="1",DT.UI.set("#s_mrca","active"),DT.UI.set("#s_mrg1","active"),filtersClassAction(".agerange","unset"),DT.UI.set("#s_mraany","active"),e.forEach(e=>{document.getElementById(e).checked=!0})),document.getElementById("includepeople").checked=!0,updateDisableClass(!0),changeEvent(1)}function resetFilters(){memorizeFilters("","",1).then(function(e){1===e&&setTimeout(()=>{document.querySelectorAll(".js-reset-searches").forEach(function(e){if(!e.checked)return;let t=e.id;varSHget.s_audio&&(t="s_audio"),"s_ph"===t&&document.getElementById("s_ed")?.checked||t&&SearchSubmit2024(t)})},20)})}function resetMedia(){"y"===varSHget.s_audio&&"y"!==varSHget.s_all&&((document.querySelector("#cnt-1").checked||document.querySelector("#nopeople").checked)&&(document.querySelector("#cnt-1").checked=!1,document.querySelector("#nopeople").checked=!1,varSHget.s_op="",varSHget.s_mr="",varSHget.s_wp=""),document.getElementById("includepeople").checked=!0,"active"!==document.getElementById("s_slany").getAttribute("data-state")&&(document.querySelectorAll(".levelp").forEach(function(e){DT.UI.unset(e)}),DT.UI.set("#s_slany","active"),varSHget.s_sl0="y",varSHget.s_sl1="y",varSHget.s_sl2="y",varSHget.s_sl3="y",varSHget.s_sl4="y",varSHget.s_sl5="y"));"y"===varSHget.s_audio||"y"!=varSHget.s_all&&"y"!=varSHget.s_video&&"y"!=varSHget.s_ph&&"y"!=varSHget.s_ad&&"y"!=varSHget.s_ed&&"y"!=varSHget.s_il||(document.getElementById("s_orp").checked=!0,document.getElementById("s_orp").dispatchEvent(new Event("change")),document.getElementById("s_orl").checked=!0,document.getElementById("s_orl").dispatchEvent(new Event("change")),document.getElementById("s_ors").checked=!0,document.getElementById("s_ors").dispatchEvent(new Event("change")),document.getElementById("s_orw").checked=!0,document.getElementById("s_orw").dispatchEvent(new Event("change")),DT.UI.set("#s_clany","active"),DT.UI.unset("#s_clc"),DT.UI.unset("#s_clm"),document.getElementById("s_color1").value="",document.getElementById("s_color1").dispatchEvent(new Event("change")),document.getElementById("s_color2").value="",document.getElementById("s_color2").dispatchEvent(new Event("change")),document.getElementById("s_c1e").checked=!1,document.getElementById("s_c2e").checked=!1,varSHget.s_orp="y",varSHget.s_orl="y",varSHget.s_ors="y",varSHget.s_orw="y",varSHget.s_clc="y",varSHget.s_clm="y",varSHget.s_color1="",varSHget.s_color2="",varSHget.s_rsf=0,varSHget.s_rst=7,DT.UI.set("#s_rstany","active"),DT.UI.unset("#s_rst5"),DT.UI.unset("#s_rst8"),DT.UI.unset("#s_rst15"),DT.UI.unset("#s_rst20"),"active"!==document.getElementById("s_slany").getAttribute("data-state")&&(document.querySelectorAll(".levelp").forEach(function(e){DT.UI.unset(e)}),DT.UI.set("#s_slany","active"),varSHget.s_sl0="y",varSHget.s_sl1="y",varSHget.s_sl2="y",varSHget.s_sl3="y",varSHget.s_sl4="y",varSHget.s_sl5="y"));changeEvent(1)}function filtersClassAction(e,t){const s=document.querySelectorAll(e);for(var r=0;r<s.length;r++)(function(e){const r=document.getElementById(s[e].id);"unset"==t&&DT.UI.unset(r)})(r)}function changeCheckboxValueWithCnt(e){document.getElementById(e).addEventListener("change",function(){document.getElementById("cnt-1").checked=!0;var t=new Event("change");document.getElementById("cnt-1").dispatchEvent(t),changeEvent(1),this.checked?varSHget[e]="y":varSHget[e]=""})}function setCheckedState(e,t){"y"===varSHget[t]&&(document.getElementById(e).checked=!0)}function cloaseAllFilters(){return DT.Scheduler.postTask(()=>{const e=document.getElementsByClassName("js-adv-filter-trigger");for(var t=0;t<e.length;t++)(function(t){const s=document.getElementById(e[t].getAttribute("data-dt-id"));DT.UI.set(s,"hidden"),e[t].setAttribute("data-state","")})(t)},{priority:"user-visible"})}async function zerogravitySwitch(e){await DT.Scheduler.waitForHighPriority(),"addcookie"==e?(changeEvent(1),setCookie2("dreamstime_slgravity","n",5),cloaseAllFilters(),searchSubmitFilters("s_sl_remvf")):"removecookie"==e&&(changeEvent(1),setCookie2("dreamstime_slgravity","",-5),searchSubmitFilters("s_sl_remvf"))}function desabled_S_ad(e){"y"===e.s_video&&"y"!==e.s_ph&&"y"!==e.s_il&&(e.s_ad="n",e.s_pel="n",document.getElementById("s_ad").checked=!1,document.getElementById("s_pel").checked=!1,document.querySelector(".js-s_pel").style.display="none",updateDisableClass(!0,wclass=".js-option-s_ad"))}function advSearchHideEx(){0==document.getElementById("s_ph").checked&&0==document.getElementById("s_il").checked&&0==document.getElementById("s_ad").checked?document.querySelector(".js-photo-ex-license").style.display="none":1!=document.getElementById("s_ph").checked&&1!=document.getElementById("s_il").checked&&1!=document.getElementById("s_ad").checked||(document.querySelector(".js-photo-ex-license").style.display="")}function handleCheckboxChange(e,t){changeEvent(1),e.target.checked?varSHget[t]="y":varSHget[t]="n"}function changeSearchLabel(e){if(["s_asfx","s_amusic"].includes(e))return;document.querySelector("form[name=searchfrm]").action=(document.querySelector("form[name=searchfrm]").action.split("?")[0].replace(/[^/]*$/,"")||"/")+"search.php";let t="",s="";var r,a;document.querySelectorAll("#s_ph, #s_ed, #s_il, #s_ad, #s_video, #s_audio").forEach(e=>{e.checked?(t+=document.querySelector(`label[for=${e.id}]`).innerHTML+", ",s+="Y"):s+="N"}),6===s.length&&(s+="NN"),t=t.slice(0,-2),r="#s_ad",a=!["NYNNNNNN","NYYYNNNN","NNYYNNNN","NYNYNNNN","NNNYNNNN","NYNNYNNN","NNNNYNNN"].includes(s),document.querySelector(r).parentElement.style.display=a?"":"none",document.querySelector(".js-select-selected-content").innerHTML=t}function addChangeHandler(e,t){e.forEach(e=>{const s=document.getElementById(e);s&&s.addEventListener("change",t)})}function memorizeFilters(e,t,s=0){return new Promise(function(r){var a,c=new XMLHttpRequest;c.open("POST","../../ajax/memoptions.php"),c.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),c.timeout=200,c.onload=function(){if(200!==c.status)return r(0);try{var e=JSON.parse(c.responseText);return r(e&&"ok"===e.status?1:0)}catch(e){return r(1)}},c.onerror=function(){r(0)},c.ontimeout=function(){r(0)},a=0===s?"memorize_filters=1&s_ed="+encodeURIComponent(e)+"&s_exc_ai="+encodeURIComponent(t)+"&securitycheck="+encodeURIComponent(varSHget.securitycheck):"memorize_filters=1&clr_filters=1&securitycheck="+encodeURIComponent(varSHget.securitycheck),c.send(a)})} DT.onReady((()=>{const COOKIE_EXPIRES_DAYS=30,handleClick=async event=>{const button=event.currentTarget;if(!button)return;await DT.Scheduler.waitForHighPriority();const sortCriteria=button.getAttribute("data-sort");if(!sortCriteria)return;DT.setCookie("sortorder_same_url",`${sortCriteria}|${DT.fullCpage}`,30,"/",".dreamstime.com");const url=new URL(window.location.href);url.searchParams.delete("pg"),window.location.href=url.toString()};document.querySelectorAll(".js-search-sort-btn").forEach((button=>{button.addEventListener("click",handleClick)}))})); DT.onReady((()=>{const init=title=>{let isDragging=!1,allowClick=!0,startX,startY,scrollLeft,scrollTop;title.addEventListener("click",(e=>{allowClick||(e.preventDefault(),e.stopImmediatePropagation())}),{capture:!0,passive:!1}),title.addEventListener("dragstart",(e=>{e.preventDefault()})),title.addEventListener("dragdrop",(e=>{e.preventDefault()})),title.addEventListener("mousedown",(e=>{isDragging=!0,allowClick=!0,startX=e.pageX-title.offsetLeft,startY=e.pageY-title.offsetTop,scrollLeft=title.scrollLeft,scrollTop=title.scrollTop})),title.addEventListener("mouseleave",(()=>{isDragging=!1})),title.addEventListener("mouseup",(()=>{DT.onNextIter((()=>{allowClick=!0})),isDragging=!1})),title.addEventListener("mousemove",(e=>{if(!isDragging)return;e.preventDefault(),allowClick=!1;const x=e.pageX-title.offsetLeft,y=e.pageY-title.offsetTop,walkX=1*(x-startX),walkY=1*(y-startY);title.scrollLeft=scrollLeft-walkX,title.scrollTop=scrollTop-walkY}))},selector=".js-image-wall .js-listing-item .js-item-title";DT.onIdle((()=>{document.querySelectorAll(selector).forEach((title=>{init(title)}))})),new MutationObserver((mutations=>{mutations.forEach((mutation=>{"childList"===mutation.type&&mutation.addedNodes.forEach((node=>{if(node.nodeType===Node.ELEMENT_NODE){const titles=undefined;node.querySelectorAll(selector).forEach((title=>{init(title)}))}}))}))})).observe(document.body,{childList:!0,subtree:!0})})); DT.onReadyIdle((()=>{document.addEventListener("dragstart",(event=>{const item=event.target.closest(".js-listing-item");if(!item||!item.dataset.id)return;const data={type:"item",data:{id:item.dataset.id,type:item.dataset.type}};event.dataTransfer.setData("text/plain",JSON.stringify(data))}))})); DT.initModal=(()=>{const modalDeps=DT.parseJSONData("modal-deps")?.deps||[];DT.onReadyIdle((()=>{DT.prefetchWorker.prefetchUrls(modalDeps)}));const initModal=undefined;return async({url:url,params:params,loadData:loadData})=>{await DT.loadLazyDeps(modalDeps);const response=await DT.http.get(url,{data:loadData});if(!response.ok)throw new Error(`Failed to load modal content from ${url}: ${response.statusText}`);let modal;return await DT.ajaxHtml.fromResponse(response,(async html=>{if(!html)throw new Error(`Failed to load modal content from ${url}: Empty response`);modal=await DT.modal({content:html,...params||{}})})),modal}})(); DT.ajaxHtml=(()=>{const loadCss=async({css:css,js:js}={})=>{if(css){if(js?.url&&DT.prefetchWorker.prefetchUrls(js.url??[]),css.inline){let style=document.querySelector("style[data-dt-lazy]");if(style)return style.innerHTML+=css.inline,void 0;style=document.createElement("style"),style.setAttribute("data-dt-lazy",""),style.innerHTML=css.inline,document.head.appendChild(style)}css.url&&await DT.loadCSS(...css.url)}},loadJs=async({js:js}={})=>{if(js){if(await DT.nextIter(),js.inline){let script=document.querySelector("script[data-dt-lazy]");if(script)return script.innerHTML+=js.inline,void 0;script=document.createElement("script"),script.setAttribute("data-dt-lazy",""),script.innerHTML=js.inline,document.head.appendChild(script)}js.url&&await DT.loadScriptsInOrderOnce(...js.url)}},loadJson=({jsonData:jsonData}={})=>{if(jsonData)try{for(const key in jsonData)DT.jsonData[key]=jsonData[key]}catch(error){DT.log("error","Ajax html load json error",error)}},fromResponse=async(response,insertHtml)=>{try{const{html:html,assets:assets,...params}=await response.json();await loadCss(assets),loadJson(assets),await insertHtml(html,params??{}),await loadJs(assets)}catch(error){return DT.log("error","Ajax load from response error",error),void 0}},fromResponseData=async(data,insertHtml)=>{try{const{html:html,assets:assets,...params}=data;await loadCss(assets),loadJson(assets),await insertHtml(html,params??{}),await loadJs(assets)}catch(error){return DT.log("error","Ajax load from response error",error),void 0}};return{loadCss:loadCss,loadJs:loadJs,fromResponse:fromResponse,fromResponseData:fromResponseData}})(); DT.initLightboxBar=async()=>{if(await(DT.afterLcp?.()),await DT.Scheduler.waitForMediumPriority(),await DT.yieldIfInputPending(),document.querySelector(".js-lightbox-bar-root"))return;const response=await fetch(DT.lightboxBarInitUrl);document.querySelector(".js-lightbox-bar-root")||(response.ok||DT.log("error","Failed to fetch LightboxBar component",response),await(DT.ajaxHtml?.fromResponse(response,(html=>{html&&document.body.insertAdjacentHTML("beforeend",html)}))),DT.LightboxBar?.dispatchEvent("lightbox-bar:init"),document.dispatchEvent(new CustomEvent("lightbox-bar:init")))}; DT.bannersToLoad = []; DT.onReady(() => { var mres = window.location.hash.match(/\#res(\d+)/); if (mres) { var ref = document.referrer || ''; if (!ref) { dtrfr = ref; } if (ref && ref != '' && ref.indexOf('.dreamstime.com') == -1 ) { var img = new Image(); img.src = '/img404.php?ref=' + encodeURIComponent(ref); } } }); DT.onReady(() => { if (window.location.hash !== '') { DT.loadScriptsOnce('templates/footer/footer_ref.js'); } }); DT.onReadyIdle(async () => { window.oldDocumentWrite = document.write; document.write = function (node) { document.body.appendChild(node); }; try { await DT.loadScriptsOnce('https://www.googleadservices.com/pagead/conversion.js'); } catch (_err) {} document.write = window.oldDocumentWrite; }); const varSHget = { sortcriteria: "6", countsh: "0", s_st: "new", s_op: "", s_mr: "", s_wp: "", s_rf: "", s_ed: "", s_exclusive: "", s_wel: "", s_pel: "", s_srel: "", s_orp: "y", s_orl: "y", s_ors: "y", s_orw: "y", s_clc: "y", s_clm: "y", s_c1e: "", s_color1: "", s_percent1: "", s_c2e: "", s_color2: "", s_percent2: "", s_rsf: "0", s_rst: "7", s_amf: "", s_sp: "", s_exc: "", s_exc_ai: "0", s_onlyai: "", s_mrc1: "y", s_mrc2: "y", s_mrc3: "y", s_mrc4: "y", s_mrc5: "y", s_mrg: "1", s_mra1: "", s_mra2: "", s_mra3: "", s_mra4: "", s_mra5: "", s_mra6: "", s_mra7: "", s_mra8: "", s_mra9: "", s_mrea: "", s_mreb: "", s_mreh: "", s_mrem: "", s_mrec: "", s_mreo: "", s_sl0: "y", s_sl1: "y", s_sl2: "y", s_sl3: "y", s_sl4: "y", s_sl5: "y", srh_field: "scriptprogrammering", firstvalue: "", lastsearchvalue: "scriptprogrammering", s_all: "", s_ph: "", s_il: "y", s_video: "", s_audio: "", s_ad: "", s_free: "", securitycheck: "4fb721e3ad8b67a443a7da3ec29631fa", s_cf: "0", s_mrca: "", site_adr: "https://dk.dreamstime.com/", ico_close: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10"><path d="M3.511 5 0 8.511 1.489 10 5 6.489 8.511 10 10 8.511 6.489 5 10 1.489 8.511 0 5 3.511 1.489 0 0 1.489z"/></svg>', memberid: '', srh_fieldwrs: '', s_amusic: "", s_asfx: "", s_zerogravity: "", s_zerogravityactiv: "0" }; DT.onReady(async () => { try { await DT.loadScriptsOnce('js/lang_cts.js.php?l=dk'); } catch (_) {} DT.loadScripts('js/functions_cookie.js'); DT.loadScripts('components/Search/Search.js'); DT.loadScripts('templates/search/filters/filters_search_load.js'); }); DT.bannersToLoad.push("<div class=\"banner banner--freetrial banner--big js-banner js-banner-default js-banner-freetrial\" data-name=\"freetrial\" data-state=\"hidden\" data-inline=\"\" > <a href=\"https:\/\/dk.dreamstime.com\/securecredits2.php?subscriptionid=816&packagetype=0\" class=\"banner__link banner__link--freetrial\" aria-label=\"Start din GRATIS pr\u00f8veperiode\" ><\/a> <div class=\"banner__picture\"> <picture> <source type=\"image\/jpeg\" srcset=\"https:\/\/thumbs.dreamstime.com\/front\/img\/banners\/free-trial\/dt-freetrial-banner-background-500.jpg\" media=\"(max-width: 767.98px)\" width=\"500\" height=\"132\"><source type=\"image\/jpeg\" srcset=\"https:\/\/thumbs.dreamstime.com\/front\/img\/banners\/free-trial\/dt-freetrial-banner-background-900.jpg\" media=\"(min-width: 768px)\" width=\"900\" height=\"100\"><source type=\"image\/jpeg\" srcset=\"https:\/\/thumbs.dreamstime.com\/front\/img\/banners\/free-trial\/dt-freetrial-banner-background-1600.jpg\" media=\"(min-width: 1200px)\" width=\"1600\" height=\"100\"><img src=\"https:\/\/thumbs.dreamstime.com\/front\/img\/banners\/free-trial\/dt-freetrial-banner-background-1600.jpg\" width=\"1600\" height=\"100\" alt=\"Billede til banner "Start din GRATIS pr\u00f8veperiode"\"> <\/picture> <\/div> <div class=\"banner__content\"> <div class=\"banner__title\">Dine f\u00f8rste 15 billeder, gratis!<\/div> <div class=\"banner__description\">Opsigelse til enhver tid.<\/div> <\/div> <div class=\"banner__btn-wrapper\"> <a href=\"https:\/\/dk.dreamstime.com\/securecredits2.php?subscriptionid=816&packagetype=0\" class=\"banner__btn btn btn--pink btn--big\">Start din GRATIS pr\u00f8veperiode<\/a> <\/div> <\/div>"); DT.lightboxBarActionsUrl = 'https://dk.dreamstime.com/new/components/LightboxBar/actions.ajax.php'; DT.lightboxBarInitUrl = 'https://dk.dreamstime.com/new/components/LightboxBar/actions.ajax.php?action=init_component'; try { window.openfreetrial = 0; window.popupsignup = 0; window.site_adr = 'https://dk.dreamstime.com/'; window.dtrfr = ''; } catch (_err) {} </script> </body> </html>