Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build-push-action (docker buildx) does not respect the no_proxy variable. #1223

Open
3 tasks done
snowdream opened this issue Aug 31, 2024 · 1 comment
Open
3 tasks done

Comments

@snowdream
Copy link

snowdream commented Aug 31, 2024

Contributing guidelines

I've found a bug, and:

  • The documentation does not mention anything about my problem
  • There are no open or closed issues that are related to my problem

Description

GitHub Actions Continuous Delivery

I want ro run github acion on a self-host pc behind the proxy,but falied.

I can not pull the base image.

The proxy is fine. i can run docker buildx on the pc,but failed when i run github action on it.

Error: buildx failed with: ERROR: failed to solve: alpine:3.20.2: failed to resolve source metadata for docker.io/library/alpine:3.20.2: failed to do request: Head "https://docker.sn0wdr1am.com/v2/library/alpine/manifests/3.20.2?ns=docker.io": proxyconnect tcp: dial tcp 127.0.0.1:1080: connect: connection refused

Expected behaviour

Setup and Run github action on self-host pc behind proxy.

Actual behaviour

I can not pull the base image.

Repository URL

https://github.com/snowdreamtech/alpine

Workflow run URL

https://github.com/snowdreamtech/alpine/actions/workflows/main.yml

YAML workflow

name: GitHub Actions Continuous Delivery

on:
  push:
    branches:
      - main  
    tags:
      - '*'
  workflow_dispatch:
jobs:
    buildx:
      runs-on: whitepi3bplus
      steps:
        -
          name: Checkout
          uses: actions/checkout@v4.1.7
          with:
            # [Required] Access token with `workflow` scope.
            token: ${{ secrets.WORKFLOW_SECRET }}
        - 
          name: Set env variables
          run: |
            echo "BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV
            echo "http_proxy=${http_proxy}" >> $GITHUB_ENV
            echo "no_proxy=${no_proxy}" >> $GITHUB_ENV
        -
          # Add support for more platforms with QEMU (optional)
          # https://github.com/docker/setup-qemu-action
          name: Set up QEMU
          uses: docker/setup-qemu-action@v3.2.0
        -
          # https://github.com/docker/setup-buildx-action/issues/57#issuecomment-1059657292
          # https://github.com/docker/buildx/issues/136#issuecomment-550205439
          # docker buildx create --driver-opt env.http_proxy=$http_proxy --driver-opt env.https_proxy=$https_proxy --driver-opt '"env.no_proxy='$no_proxy'"'
          name: Set up Docker Buildx
          uses: docker/setup-buildx-action@v3.6.1
          with:
            buildkitd-config: .github/buildkitd.toml
            driver-opts: |
              env.http_proxy=${{ env.http_proxy }}
              env.https_proxy=${{ env.http_proxy }}
              "env.no_proxy='${{ env.no_proxy}}'"
        -
          name: Login to DockerHub
          uses: docker/login-action@v3.3.0
          with:
            username: ${{ secrets.DOCKER_HUB_USERNAME }}
            password: ${{ secrets.DOCKER_HUB_TOKEN }}
        -
          name: Login to GitHub Container Registry
          uses: docker/login-action@v3.3.0
          with:
            registry: ghcr.io
            username: ${{ github.repository_owner }}
            password: ${{ secrets.GITHUB_TOKEN }}          
        -
          name: Build and push
          uses: docker/build-push-action@v6.7.0
          with:
            context: .
            build-args: |
              "http_proxy=${{ env.http_proxy }}"
              "https_proxy=${{ env.http_proxy }}"
              "no_proxy='${{ env.no_proxy}}'"
            platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/riscv64,linux/s390x
            push: true
            tags: |
              snowdreamtech/alpine:latest
              snowdreamtech/alpine:3.20.2
              snowdreamtech/alpine:3.20
              snowdreamtech/alpine:3
              ghcr.io/snowdreamtech/alpine:latest
              ghcr.io/snowdreamtech/alpine:3.20.2
              ghcr.io/snowdreamtech/alpine:3.20
              ghcr.io/snowdreamtech/alpine:3

Workflow logs

https://github.com/snowdreamtech/alpine/actions/runs/10643865069/job/29507938882

logs_27827136796.zip

BuildKit logs

No response

Additional info

~/.docker/config.json

{
        "auths": {},
        "proxies": {
                "default": {
                        "httpProxy": "http://127.0.0.1:1080",
                        "httpsProxy": "http://127.0.0.1:1080",
                        "noProxy": "localhost,example.com,sn0wdr1am.com"
                }
        }
}

.github/buildkitd.toml

# debug enables additional debug logging
debug = true
# trace enables additional trace logging (very verbose, with potential performance impacts)
trace = true


[registry."docker.io"]
    mirrors = ["https://docker.sn0wdr1am.com"]

[registry."quay.io"]
    mirrors = ["https://quay.sn0wdr1am.com"]

[registry."gcr.io"]
    mirrors = ["https://gcr.sn0wdr1am.com"]

[registry."k8s.gcr.io"]
    mirrors = ["https://k8s-gcr.sn0wdr1am.com"]

[registry."k8s.io"]
    mirrors = ["https://k8s.sn0wdr1am.com"]

[registry."ghcr.io"]
    mirrors = ["https://ghcr.sn0wdr1am.com"]

[registry."cloudsmith.io"]
    mirrors = ["https://cloudsmith.sn0wdr1am.com"]

[registry."ecr.aws"]
    mirrors = ["https://ecr.sn0wdr1am.com"]

[worker.oci]
  max-parallelism = 2

global proxy

export http_proxy="http://127.0.0.1:1080"
export https_proxy="http://127.0.0.1:1080"
export ftp_proxy="http://127.0.0.1:1080"
export all_proxy="http://127.0.0.1:1080"
export no_proxy="localhost,example.com,sn0wdr1am.com"
export HTTP_PROXY="http://127.0.0.1:1080"
export HTTPS_PROXY="http://127.0.0.1:1080"
export FTP_PROXY="http://127.0.0.1:1080"
export ALL_PROXY="http://127.0.0.1:1080"
export NO_PROXY="localhost,example.com,sn0wdr1am.com"

~/.config/systemd/user/docker.service.d/http-proxy.conf

/etc/systemd/system/docker.service.d/http-proxy.conf

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:1080"
Environment="HTTPS_PROXY=http://127.0.0.1:1080"
Environment="NO_PROXY=localhost,example.com,sn0wdr1am.com"

/etc/docker/daemon.json

{
          "experimental": true,
    "registry-mirrors": [
    "https://docker.sn0wdr1am.com", 
    "https://quay.sn0wdr1am.com",   
    "https://gcr.sn0wdr1am.com",    
    "https://k8s-gcr.sn0wdr1am.com",    
    "https://k8s.sn0wdr1am.com",
    "https://ghcr.sn0wdr1am.com",   
    "https://cloudsmith.sn0wdr1am.com", 
    "https://ecr.sn0wdr1am.com"
  ]
}

~/actions-runner/.env

export http_proxy="http://127.0.0.1:1080"
export https_proxy="http://127.0.0.1:1080"
export ftp_proxy="http://127.0.0.1:1080"
export all_proxy="http://127.0.0.1:1080"
export no_proxy="localhost,example.com,sn0wdr1am.com"
export HTTP_PROXY="http://127.0.0.1:1080"
export HTTPS_PROXY="http://127.0.0.1:1080"
export FTP_PROXY="http://127.0.0.1:1080"
export ALL_PROXY="http://127.0.0.1:1080"
export NO_PROXY="localhost,example.com,sn0wdr1am.com"
@snowdream
Copy link
Author

snowdream@pc:~/actions-runner $ curl -x http://127.0.0.1:1080 http://www.google.com

<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en"><head><meta content="Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for." name="description"><meta content="noodp, " name="robots"><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>Google</title><script nonce="vMnpzl_6pSRnvI46EJ3Fxw">(function(){var _g={kEI:'o-LSZv3DMOWu5NoPhLKvsQE',kEXPI:'0,3700328,614,439,97,538567,2872,2891,73050,16105,18161,162095,342,23024,6700,41942,57740,2,2,1,26632,8155,23351,22435,9779,62658,6049,30697,3801,2412,33249,15816,1804,7734,29,18069,1260,19990,1635,29276,15664,6114,5305,5212675,997,127,21,5991286,2841031,386,257,2,17,19,7440485,20539938,1007,15665,43887,3,318,4,1281,3,2124363,23029351,8163,4636,16436,2727,27220,54098,11647,5178,2469,7,3321,885,8326,3741,2213,8181,150,22703,4,19951,6622,19011,2656,3438,3319,155,1,1,1,2481,21240,9139,1994,2605,328,3217,4,1235,1769,1117,18557,408,519,3301,1557,5,856,7303,687,2749,3,3925,1119,3,1,2833,181,2695,1751,2724,1896,24,3691,475,97,4979,709,682,452,207,3131,3054,7523,2204,7,12,3089,637,4,4837,4840,2380,567,919,978,308,221,1705,737,5,319,1,289,3,2,1,441,8936,4828,5315,462,1490,473,125,628,44,2388,638,1049,3541,1067,1,1211,866,563,599,112,59,557,10,1060,1549,1600,10666,1533,1,1781,2,1,6,1106,1,1,2,3,2699,629,7,346,544,15,782,3,63,8,1460,2,496,1160,119,2,382,1570,466,300,634,366,15,517,4,166,175,261,1,133,755,3,2,532,175,308,113,1245,1,40,116,1141,306,33,46,124,21,215,4,1393,764,336,141,3,193,327,178,480,429,1,1040,1,1,2,3,1451,41,228,1,455,136,329,700,685,6,518,2482,24,88,334,147,506,248,1375,1,48,421,2425,724,427,438,290,4,199,448,2,727,265,4,1,6,670,7,518,373,319,322,813,142,499,150,122,692,2,516,2275,1,2,2,21114269,359917,5720,3,14475,3,7053,275,837,47,3660,5121,21,590,190,985769',kBL:'oi5y',kOPI:89978449};(function(){var a;((a=window.google)==null?0:a.stvsc)?google.kEI=_g.kEI:window.google=_g;}).call(this);})();(function(){google.sn='webhp';google.kHL='en';})();(function(){
var h=this||self;function l(){return window.google!==void 0&&window.google.kOPI!==void 0&&window.google.kOPI!==0?window.google.kOPI:null};var m,n=[];function p(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||m}function q(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute("leid")));)a=a.parentNode;return b}function r(a){/^http:/i.test(a)&&window.location.protocol==="https:"&&(google.ml&&google.ml(Error("a"),!1,{src:a,glmm:1}),a="");return a}
function t(a,b,c,d,k){var e="";b.search("&ei=")===-1&&(e="&ei="+p(d),b.search("&lei=")===-1&&(d=q(d))&&(e+="&lei="+d));d="";var g=b.search("&cshid=")===-1&&a!=="slh",f=[];f.push(["zx",Date.now().toString()]);h._cshid&&g&&f.push(["cshid",h._cshid]);c=c();c!=null&&f.push(["opi",c.toString()]);for(c=0;c<f.length;c++){if(c===0||c>0)d+="&";d+=f[c][0]+"="+f[c][1]}return"/"+(k||"gen_204")+"?atyp=i&ct="+String(a)+"&cad="+(b+e+d)};m=google.kEI;google.getEI=p;google.getLEI=q;google.ml=function(){return null};google.log=function(a,b,c,d,k,e){e=e===void 0?l:e;c||(c=t(a,b,e,d,k));if(c=r(c)){a=new Image;var g=n.length;n[g]=a;a.onerror=a.onload=a.onabort=function(){delete n[g]};a.src=c}};google.logUrl=function(a,b){b=b===void 0?l:b;return t("",a,b)};}).call(this);(function(){google.y={};google.sy=[];var d;(d=google).x||(d.x=function(a,b){if(a)var c=a.id;else{do c=Math.random();while(google.y[c])}google.y[c]=[a,b];return!1});var e;(e=google).sx||(e.sx=function(a){google.sy.push(a)});google.lm=[];var f;(f=google).plm||(f.plm=function(a){google.lm.push.apply(google.lm,a)});google.lq=[];var g;(g=google).load||(g.load=function(a,b,c){google.lq.push([[a],b,c])});var h;(h=google).loadAll||(h.loadAll=function(a,b){google.lq.push([a,b])});google.bx=!1;var k;(k=google).lx||(k.lx=function(){});var l=[],m;(m=google).fce||(m.fce=function(a,b,c,n){l.push([a,b,c,n])});google.qce=l;}).call(this);google.f={};(function(){
document.documentElement.addEventListener("submit",function(b){var a;if(a=b.target){var c=a.getAttribute("data-submitfalse");a=c==="1"||c==="q"&&!a.elements.q.value?!0:!1}else a=!1;a&&(b.preventDefault(),b.stopPropagation())},!0);document.documentElement.addEventListener("click",function(b){var a;a:{for(a=b.target;a&&a!==document.documentElement;a=a.parentElement)if(a.tagName==="A"){a=a.getAttribute("data-nohref")==="1";break a}a=!1}a&&b.preventDefault()},!0);}).call(this);</script><style>#gbar,#guser{font-size:13px;padding-top:1px !important;}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}.gbi .gb4{color:#dd8e27 !important}.gbf .gb4{color:#900 !important}
</style><style>body,td,a,p,.h{font-family:arial,sans-serif}body{margin:0;overflow-y:scroll}#gog{padding:3px 8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}.h{color:#1967d2}em{font-weight:bold;font-style:normal}.lst{height:25px;width:496px}.gsfi,.lst{font:18px arial,sans-serif}.gsfs{font:17px arial,sans-serif}.ds{display:inline-box;display:inline-block;margin:3px 0 4px;margin-left:4px}input{font-family:inherit}body{background:#fff;color:#000}a{color:#681da8;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl a{color:#1967d2}a:visited{color:#681da8}.sblc{padding-top:5px}.sblc a{display:block;margin:2px 0;margin-left:13px;font-size:11px}.lsbb{background:#f8f9fa;border:solid 1px;border-color:#dadce0 #70757a #70757a #dadce0;height:30px}.lsbb{display:block}#WqQANb a{display:inline-block;margin:0 12px}.lsb{background:url(/images/nav_logo229.png) 0 -261px repeat-x;color:#000;border:none;cursor:pointer;height:30px;margin:0;outline:0;font:15px arial,sans-serif;vertical-align:top}.lsb:active{background:#dadce0}.lst:focus{outline:none}</style><script nonce="vMnpzl_6pSRnvI46EJ3Fxw">(function(){window.google.erd={jsr:1,bv:2069,de:true};
var g=this||self;var k,l=(k=g.mei)!=null?k:1,n,p=(n=g.sdo)!=null?n:!0,q=0,r,t=google.erd,v=t.jsr;google.ml=function(a,b,d,m,e){e=e===void 0?2:e;b&&(r=a&&a.message);d===void 0&&(d={});d.cad="ple_"+google.ple+".aple_"+google.aple;if(google.dl)return google.dl(a,e,d,!0),null;b=d;if(v<0){window.console&&console.error(a,b);if(v===-2)throw a;b=!1}else b=!a||!a.message||a.message==="Error loading script"||q>=l&&!m?!1:!0;if(!b)return null;q++;d=d||{};b=encodeURIComponent;var c="/gen_204?atyp=i&ei="+b(google.kEI);google.kEXPI&&(c+="&jexpid="+b(google.kEXPI));c+="&srcpg="+b(google.sn)+"&jsr="+b(t.jsr)+
"&bver="+b(t.bv);t.dpf&&(c+="&dpf="+b(t.dpf));var f=a.lineNumber;f!==void 0&&(c+="&line="+f);var h=a.fileName;h&&(h.indexOf("-extension:/")>0&&(e=3),c+="&script="+b(h),f&&h===window.location.href&&(f=document.documentElement.outerHTML.split("\n")[f],c+="&cad="+b(f?f.substring(0,300):"No script found.")));google.ple&&google.ple===1&&(e=2);c+="&jsel="+e;for(var u in d)c+="&",c+=b(u),c+="=",c+=b(d[u]);c=c+"&emsg="+b(a.name+": "+a.message);c=c+"&jsst="+b(a.stack||"N/A");c.length>=12288&&(c=c.substr(0,12288));a=c;m||google.log(0,"",a);return a};window.onerror=function(a,b,d,m,e){r!==a&&(a=e instanceof Error?e:Error(a),d===void 0||"lineNumber"in a||(a.lineNumber=d),b===void 0||"fileName"in a||(a.fileName=b),google.ml(a,!1,void 0,!1,a.name==="SyntaxError"||a.message.substring(0,11)==="SyntaxError"||a.message.indexOf("Script error")!==-1?3:0));r=null;p&&q>=l&&(window.onerror=null)};})();</script></head><body bgcolor="#fff"><script nonce="vMnpzl_6pSRnvI46EJ3Fxw">(function(){var src='/images/nav_logo229.png';var iesg=false;document.body.onload = function(){window.n && window.n();if (document.images){new Image().src=src;}
if (!iesg){document.f&&document.f.q.focus();document.gbqf&&document.gbqf.q.focus();}
}
})();</script><div id="mngb"><div id=gbar><nobr><b class=gb1>Search</b> <a class=gb1 href="https://www.google.com/imghp?hl=en&tab=wi">Images</a> <a class=gb1 href="http://maps.google.com/maps?hl=en&tab=wl">Maps</a> <a class=gb1 href="https://play.google.com/?hl=en&tab=w8">Play</a> <a class=gb1 href="https://www.youtube.com/?tab=w1">YouTube</a> <a class=gb1 href="https://news.google.com/?tab=wn">News</a> <a class=gb1 href="https://mail.google.com/mail/?tab=wm">Gmail</a> <a class=gb1 href="https://drive.google.com/?tab=wo">Drive</a> <a class=gb1 style="text-decoration:none" href="https://www.google.com/intl/en/about/products?tab=wh"><u>More</u> &raquo;</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe></span><a href="http://www.google.com/history/optout?hl=en" class=gb4>Web History</a> | <a  href="/preferences?hl=en" class=gb4>Settings</a> | <a target=_top id=gb_70 href="https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=http://www.google.com/&ec=GAZAAQ" class=gb4>Sign in</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div></div><center><br clear="all" id="lgpd"><div id="XjhHGf"><img alt="Google" height="92" src="/images/branding/googlelogo/1x/googlelogo_white_background_color_272x92dp.png" style="padding:28px 0 14px" width="272" id="hplogo"><br><br></div><form action="/search" name="f"><table cellpadding="0" cellspacing="0"><tr valign="top"><td width="25%">&nbsp;</td><td align="center" nowrap=""><input name="ie" value="ISO-8859-1" type="hidden"><input value="en" name="hl" type="hidden"><input name="source" type="hidden" value="hp"><input name="biw" type="hidden"><input name="bih" type="hidden"><div class="ds" style="height:32px;margin:4px 0"><input class="lst" style="margin:0;padding:5px 8px 0 6px;vertical-align:top;color:#000" autocomplete="off" value="" title="Google Search" maxlength="2048" name="q" size="57"></div><br style="line-height:0"><span class="ds"><span class="lsbb"><input class="lsb" value="Google Search" name="btnG" type="submit"></span></span><span class="ds"><span class="lsbb"><input class="lsb" id="tsuid_1" value="I'm Feeling Lucky" name="btnI" type="submit"><script nonce="vMnpzl_6pSRnvI46EJ3Fxw">(function(){var id='tsuid_1';document.getElementById(id).onclick = function(){if (this.form.q.value){this.checked = 1;if (this.form.iflsig)this.form.iflsig.disabled = false;}
else top.location='/doodles/';};})();</script><input value="AL9hbdgAAAAAZtLwsyZEyXVcLmcCoiR5o2vodg8Ef9Pq" name="iflsig" type="hidden"></span></span></td><td class="fl sblc" align="left" nowrap="" width="25%"><a href="/advanced_search?hl=en&amp;authuser=0">Advanced search</a></td></tr></table><input id="gbv" name="gbv" type="hidden" value="1"><script nonce="vMnpzl_6pSRnvI46EJ3Fxw">(function(){var a,b="1";if(document&&document.getElementById)if(typeof XMLHttpRequest!="undefined")b="2";else if(typeof ActiveXObject!="undefined"){var c,d,e=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];for(c=0;d=e[c++];)try{new ActiveXObject(d),b="2"}catch(h){}}a=b;if(a=="2"&&location.search.indexOf("&gbv=2")==-1){var f=google.gbvu,g=document.getElementById("gbv");g&&(g.value=a);f&&window.setTimeout(function(){location.href=f},0)};}).call(this);</script></form><div style="font-size:83%;min-height:3.5em"><br></div><span id="footer"><div style="font-size:10pt"><div style="margin:19px auto;text-align:center" id="WqQANb"><a href="/intl/en/ads/">Advertising</a><a href="/services/">Business Solutions</a><a href="/intl/en/about.html">About Google</a></div></div><p style="font-size:8pt;color:#70757a">&copy; 2024 - <a href="/intl/en/policies/privacy/">Privacy</a> - <a href="/intl/en/policies/terms/">Terms</a></p></span></center><script nonce="vMnpzl_6pSRnvI46EJ3Fxw">(function(){window.google.cdo={height:757,width:1440};(function(){var a=window.innerWidth,b=window.innerHeight;if(!a||!b){var c=window.document,d=c.compatMode=="CSS1Compat"?c.documentElement:c.body;a=d.clientWidth;b=d.clientHeight}
if(a&&b&&(a!=google.cdo.width||b!=google.cdo.height)){var e=google,f=e.log,g="/client_204?&atyp=i&biw="+a+"&bih="+b+"&ei="+google.kEI,h="",k=[],l=window.google!==void 0&&window.google.kOPI!==void 0&&window.google.kOPI!==0?window.google.kOPI:null;l!=null&&k.push(["opi",l.toString()]);for(var m=0;m<k.length;m++){if(m===0||m>0)h+="&";h+=k[m][0]+"="+k[m][1]}f.call(e,"","",g+h)};}).call(this);})();</script>  <script nonce="vMnpzl_6pSRnvI46EJ3Fxw">(function(){google.xjs={basecomb:'/xjs/_/js/k\x3dxjs.hp.en.yP0lJCSYMgw.O/ck\x3dxjs.hp.D-YrOoWwU74.L.X.O/am\x3dAQAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAQAAAAAAAAQAAYAcAAAAAgAEBAAAAAAAB4AAAAAAAAQgBAAAAUAAQKAA_EdAYAAWAQAgBc/d\x3d1/ed\x3d1/dg\x3d0/ujg\x3d1/rs\x3dACT90oEU0msm2rRx9k4T4Y4nBO1Ofdu_QQ',basecss:'/xjs/_/ss/k\x3dxjs.hp.D-YrOoWwU74.L.X.O/am\x3dAQAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAQAAAAAAAAAAgAEBAAAAAAAAAAAAAAAAAQgBAAAAUAAQI/rs\x3dACT90oGqtY8slixiWwjo2qpBsYsJmpb-JA',basejs:'/xjs/_/js/k\x3dxjs.hp.en.yP0lJCSYMgw.O/am\x3dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAYAcAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAACAA_EdAYAAWAQAgBc/dg\x3d0/rs\x3dACT90oE27GwmyMeKr1-HFe_-t4lDpneqww',excm:[]};})();</script>  <link href="/xjs/_/ss/k=xjs.hp.D-YrOoWwU74.L.X.O/am=AQAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAQAAAAAAAAAAgAEBAAAAAAAAAAAAAAAAAQgBAAAAUAAQI/d=1/ed=1/rs=ACT90oGqtY8slixiWwjo2qpBsYsJmpb-JA/m=sb_he,d" rel="stylesheet" nonce="vMnpzl_6pSRnvI46EJ3Fxw">      <script nonce="vMnpzl_6pSRnvI46EJ3Fxw">(function(){var u='/xjs/_/js/k\x3dxjs.hp.en.yP0lJCSYMgw.O/am\x3dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAYAcAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAACAA_EdAYAAWAQAgBc/d\x3d1/ed\x3d1/dg\x3d3/rs\x3dACT90oE27GwmyMeKr1-HFe_-t4lDpneqww/m\x3dsb_he,d';var st=1;var amd=1000;var mmd=0;var pod=true;
var f=this||self,g=function(a){return a};function h(){var a,b,c;return(a=(b=window.google)==null?void 0:(c=b.ia)==null?void 0:c.r.B2Jtyd)&&a.m===1&&a.cbfd!=null&&a.cbvi!=null?a:void 0};var k;var l={},m=function(a){this.g=a};m.prototype.toString=function(){return this.g+""};var n=function(a){return a instanceof m&&a.constructor===m?a.g:"type_error:TrustedResourceUrl"};
var p=/^\s*(?!javascript:)(?:[\w+.-]+:|[^:/?#]*(?:[/?#]|$))/i;var q="alternate author bookmark canonical cite help icon license modulepreload next prefetch dns-prefetch prerender preconnect preload prev search subresource".split(" ");function r(a,b){a.src=n(b);var c,d;(c=(b=(d=(c=(a.ownerDocument&&a.ownerDocument.defaultView||window).document).querySelector)==null?void 0:d.call(c,"script[nonce]"))?b.nonce||b.getAttribute("nonce")||"":"")&&a.setAttribute("nonce",c)};var t=function(a){var b=document;a=String(a);b.contentType==="application/xhtml+xml"&&(a=a.toLowerCase());return b.createElement(a)};function w(a){a=a===null?"null":a===void 0?"undefined":a;if(k===void 0){var b=null;var c=f.trustedTypes;if(c&&c.createPolicy){try{b=c.createPolicy("goog#html",{createHTML:g,createScript:g,createScriptURL:g})}catch(d){f.console&&f.console.error(d.message)}k=b}else k=b}a=(b=k)?b.createScriptURL(a):a;return new m(a,l)};google.ps===void 0&&(google.ps=[]);function x(){var a=u,b=function(){};google.lx=google.stvsc?b:function(){y(a);google.lx=b};google.bx||google.lx()}function z(a,b){b&&r(a,w(b));var c=a.onload;a.onload=function(d){c&&c(d);google.ps=google.ps.filter(function(e){return a!==e})};google.ps.push(a);document.body.appendChild(a)}google.as=z;function y(a){google.timers&&google.timers.load&&google.tick&&google.tick("load","xjsls");var b=t("SCRIPT");b.onerror=function(){google.ple=1};b.onload=function(){google.ple=0};google.xjsus=void 0;z(b,a);google.aple=-1;google.dp=!0}
function A(){var a=[u];if(!google.dp){for(var b=0;b<a.length;b++){var c=t("LINK"),d=c,e=w(a[b]);if(e instanceof m)d.href=n(e).toString(),d.rel="preload";else{if(q.indexOf("preload")===-1)throw Error("a`preload");e=p.test(e)?e:void 0;e!==void 0&&(d.href=e,d.rel="preload")}c.setAttribute("as","script");document.body.appendChild(c)}google.dp=!0}};function B(a){var b=a.getAttribute("jscontroller");return(b==="UBXHI"||b==="R3fhkb"||b==="TSZEqd")&&a.hasAttribute("data-src")}function C(){for(var a=document.getElementsByTagName("img"),b=0,c=a.length;b<c;b++){var d=a[b];if(d.hasAttribute("data-lzy_")&&Number(d.getAttribute("data-atf"))&1&&!B(d))return!0}return!1}for(var D=document.getElementsByTagName("img"),E=0,F=D.length;E<F;++E){var G=D[E];Number(G.getAttribute("data-atf"))&1&&B(G)&&(G.src=G.getAttribute("data-src"))};var H,I,J,K,L,M;function N(){google.xjsu=u;f._F_jsUrl=u;L=function(){x()};H=!1;I=(st===1||st===3)&&!!google.caft&&!C();J=h();K=(st===2||st===3)&&(!!google.rairicb||!!J)&&!C();M=pod}function O(){H||I||K||(L(),H=!0)}
setTimeout(function(){google&&google.tick&&google.timers&&google.timers.load&&google.tick("load","xjspls");N();if(I||K){if(I){var a=function(){I=!1;O()};google.caft(a);window.setTimeout(a,amd)}K&&(a=function(){K=!1;O()},J?J.cbvi.push(a):(0,google.rairicb)(a),window.setTimeout(a,mmd));M&&(H||A())}else L()},0);})();window._ = window._ || {};window._DumpException = _._DumpException = function(e){throw e;};window._s = window._s || {};_s._DumpException = _._DumpException;window._qs = window._qs || {};_qs._DumpException = _._DumpException;(function(){var t=[1,64,0,0,0,0,4341760,0,1131568,29425689,41943044,263168,590848,120,0,270340,21038336,68026376,134222303,71184,6016];window._F_toggles = window._xjs_toggles = t;})();window._F_installCss = window._F_installCss || function(css){};(function(){google.jl={bfl:0,dw:false,ine:false,ubm:false,uwp:true,vs:false};})();(function(){var pmc='{\x22d\x22:{},\x22sb_he\x22:{\x22agen\x22:false,\x22cgen\x22:false,\x22client\x22:\x22heirloom-hp\x22,\x22dh\x22:true,\x22ds\x22:\x22\x22,\x22fl\x22:true,\x22host\x22:\x22google.com\x22,\x22jsonp\x22:true,\x22msgs\x22:{\x22cibl\x22:\x22Clear Search\x22,\x22dym\x22:\x22Did you mean:\x22,\x22lcky\x22:\x22I\\u0026#39;m Feeling Lucky\x22,\x22lml\x22:\x22Learn more\x22,\x22psrc\x22:\x22This search was removed from your \\u003Ca href\x3d\\\x22/history\\\x22\\u003EWeb History\\u003C/a\\u003E\x22,\x22psrl\x22:\x22Remove\x22,\x22sbit\x22:\x22Search by image\x22,\x22srch\x22:\x22Google Search\x22},\x22ovr\x22:{},\x22pq\x22:\x22\x22,\x22rfs\x22:[],\x22stok\x22:\x22Xnj0gMwINWq2PLlmm6F_lYGXZgA\x22}}';google.pmc=JSON.parse(pmc);})();(function(){var b=function(a){var c=0;return function(){return c<a.length?{done:!1,value:a[c++]}:{done:!0}}};
var e=this||self;var g,h;a:{for(var k=["CLOSURE_FLAGS"],l=e,n=0;n<k.length;n++)if(l=l[k[n]],l==null){h=null;break a}h=l}var p=h&&h[610401301];g=p!=null?p:!1;var q,r=e.navigator;q=r?r.userAgentData||null:null;function t(a){return g?q?q.brands.some(function(c){return(c=c.brand)&&c.indexOf(a)!=-1}):!1:!1}function u(a){var c;a:{if(c=e.navigator)if(c=c.userAgent)break a;c=""}return c.indexOf(a)!=-1};function v(){return g?!!q&&q.brands.length>0:!1}function w(){return u("Safari")&&!(x()||(v()?0:u("Coast"))||(v()?0:u("Opera"))||(v()?0:u("Edge"))||(v()?t("Microsoft Edge"):u("Edg/"))||(v()?t("Opera"):u("OPR"))||u("Firefox")||u("FxiOS")||u("Silk")||u("Android"))}function x(){return v()?t("Chromium"):(u("Chrome")||u("CriOS"))&&!(v()?0:u("Edge"))||u("Silk")}function y(){return u("Android")&&!(x()||u("Firefox")||u("FxiOS")||(v()?0:u("Opera"))||u("Silk"))};var z=v()?!1:u("Trident")||u("MSIE");y();x();w();var A=!z&&!w(),D=function(a){if(/-[a-z]/.test("ved"))return null;if(A&&a.dataset){if(y()&&!("ved"in a.dataset))return null;a=a.dataset.ved;return a===void 0?null:a}return a.getAttribute("data-"+"ved".replace(/([A-Z])/g,"-$1").toLowerCase())};var E=[],F=null;function G(a){a=a.target;var c=performance.now(),f=[],H=f.concat,d=E;if(!(d instanceof Array)){var m=typeof Symbol!="undefined"&&Symbol.iterator&&d[Symbol.iterator];if(m)d=m.call(d);else if(typeof d.length=="number")d={next:b(d)};else throw Error("b`"+String(d));for(var B=[];!(m=d.next()).done;)B.push(m.value);d=B}E=H.call(f,d,[c]);if(a&&a instanceof HTMLElement)if(a===F){if(c=E.length>=4)c=(E[E.length-1]-E[E.length-4])/1E3<5;if(c){c=google.getEI(a);a.hasAttribute("data-ved")?f=a?D(a)||"":"":f=(f=
a.closest("[data-ved]"))?D(f)||"":"";f=f||"";if(a.hasAttribute("jsname"))a=a.getAttribute("jsname");else{var C;a=(C=a.closest("[jsname]"))==null?void 0:C.getAttribute("jsname")}google.log("rcm","&ei="+c+"&tgtved="+f+"&jsname="+(a||""))}}else F=a,E=[c]}window.document.addEventListener("DOMContentLoaded",function(){document.body.addEventListener("click",G)});}).call(this);</script></body></html>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant