Полимеразная цепная реакция

Материал из свободной русской энциклопедии «Традиция»
Перейти к навигации Перейти к поиску
Не удалось преобразовать TeX в MML с помощью серверного MathJax: ошибка:
/var/www/wiki/w/extensions/MathJax/node_modules/esm/esm.js:1
const __global__ = this;(function (require, module, __shared__) { var __shared__;const e=module,t={Array:global.Array,Buffer:global.Buffer,Error:global.Error,EvalError:global.EvalError,Function:global.Function,JSON:global.JSON,Object:global.Object,Promise:global.Promise,RangeError:global.RangeError,ReferenceError:global.ReferenceError,Reflect:global.Reflect,SyntaxError:global.SyntaxError,TypeError:global.TypeError,URIError:global.URIError,eval:global.eval},r=global.console;module.exports=(function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.d=function(e,t,r){Reflect.defineProperty(e,t,{configurable:!0,enumerable:!0,get:r})},r.n=function(e){return e.a=e,function(){return e}},r(r.s=2)})([(function(e,t){var r;t=e.exports=$,"object"==typeof process&&process,r=function(){},t.SEMVER_SPEC_VERSION="2.0.0";var i=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,s=t.re=[],a=t.src=[],o=0,u=o++;a[u]="0|[1-9]\\d*";var l=o++;a[l]="[0-9]+";var c=o++;a[c]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var p=o++;a[p]="("+a[u]+")\\.("+a[u]+")\\.("+a[u]+")";var h=o++;a[h]="("+a[l]+")\\.("+a[l]+")\\.("+a[l]+")";var f=o++;a[f]="(?:"+a[u]+"|"+a[c]+")";var d=o++;a[d]="(?:"+a[l]+"|"+a[c]+")";var m=o++;a[m]="(?:-("+a[f]+"(?:\\."+a[f]+")*))";var v=o++;a[v]="(?:-?("+a[d]+"(?:\\."+a[d]+")*))";var g=o++;a[g]="[0-9A-Za-z-]+";var y=o++;a[y]="(?:\\+("+a[g]+"(?:\\."+a[g]+")*))";var x=o++,b="v?"+a[p]+a[m]+"?"+a[y]+"?";a[x]="^"+b+"$";var w="[v=\\s]*"+a[h]+a[v]+"?"+a[y]+"?",E=o++;a[E]="^"+w+"$";var S=o++;a[S]="((?:<|>)?=?)";var R=o++;a[R]=a[l]+"|x|X|\\*";var P=o++;a[P]=a[u]+"|x|X|\\*";var _=o++;a[_]="[v=\\s]*("+a[P]+")(?:\\.("+a[P]+")(?:\\.("+a[P]+")(?:"+a[m]+")?"+a[y]+"?)?)?";var k=o++;a[k]="[v=\\s]*("+a[R]+")(?:\\.("+a[R]+")(?:\\.("+a[R]+")(?:"+a[v]+")?"+a[y]+"?)?)?";var I=o++;a[I]="^"+a[S]+"\\s*"+a[_]+"$";var A=o++;a[A]="^"+a[S]+"\\s*"+a[k]+"$";var N=o++;a[N]="(?:^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])";var C=o++;a[C]="(?:~>?)";var O=o++;a[O]="(\\s*)"+a[C]+"\\s+",s[O]=RegExp(a[O],"g");var T=o++;a[T]="^"+a[C]+a[_]+"$";var M=o++;a[M]="^"+a[C]+a[k]+"$";var L=o++;a[L]="(?:\\^)";var D=o++;a[D]="(\\s*)"+a[L]+"\\s+",s[D]=RegExp(a[D],"g");var F=o++;a[F]="^"+a[L]+a[_]+"$";var j=o++;a[j]="^"+a[L]+a[k]+"$";var V=o++;a[V]="^"+a[S]+"\\s*("+w+")$|^$";var G=o++;a[G]="^"+a[S]+"\\s*("+b+")$|^$";var B=o++;a[B]="(\\s*)"+a[S]+"\\s*("+w+"|"+a[_]+")",s[B]=RegExp(a[B],"g");var U=o++;a[U]="^\\s*("+a[_]+")\\s+-\\s+("+a[_]+")\\s*$";var W=o++;a[W]="^\\s*("+a[k]+")\\s+-\\s+("+a[k]+")\\s*$";var q=o++;a[q]="(<|>)?=?\\s*\\*";for(var z=0;z<35;z++)r(z,a[z]),s[z]||(s[z]=RegExp(a[z]));function H(e,t){"use strict";if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof $)return e;if("string"!=typeof e)return null;if(e.length>i)return null;var r=t.loose?s[E]:s[x];if(!r.test(e))return null;try{return new $(e,t)}catch(e){return null}}function $(e,t){"use strict";if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof $){if(e.loose===t.loose)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>i)throw new TypeError("version is longer than "+i+" characters");if(!(this instanceof $))return new $(e,t);r("SemVer",e,t),this.options=t,this.loose=!!t.loose;var a=e.trim().match(t.loose?s[E]:s[x]);if(!a)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+a[1],this.minor=+a[2],this.patch=+a[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");this.prerelease=a[4]?a[4].split(".").map((function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this},t.inc=function(e,t,r,i){"use strict";"string"==typeof r&&(i=r,r=void 0);try{return new $(e,r).inc(t,i).version}catch(e){return null}},t.diff=function(e,t){"use strict";if(Z(e,t))return null;var r=H(e),i=H(t),n="";if(r.prerelease.length||i.prerelease.length){n="pre";var s="prerelease"}for(var a in r)if(("major"===a||"minor"===a||"patch"===a)&&r[a]!==i[a])return n+a;return s},t.compareIdentifiers=J;var K=/^[0-9]+$/;function J(e,t){"use strict";var r=K.test(e),i=K.test(t);return r&&i&&(e=+e,t=+t),e===t?0:r&&!i?-1:i&&!r?1:e0}function Q(e,t,r){"use strict";return Y(e,t,r)<0}function Z(e,t,r){"use strict";return 0===Y(e,t,r)}function ee(e,t,r){"use strict";return 0!==Y(e,t,r)}function te(e,t,r){"use strict";return Y(e,t,r)>=0}function re(e,t,r){"use strict";return Y(e,t,r)<=0}function ie(e,t,r,i){"use strict";switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return Z(e,r,i);case"!=":return ee(e,r,i);case">":return X(e,r,i);case">=":return te(e,r,i);case"<":return Q(e,r,i);case"<=":return re(e,r,i);default:throw new TypeError("Invalid operator: "+t)}}function ne(e,t){"use strict";if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof ne){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof ne))return new ne(e,t);r("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.value=this.semver===se?"":this.operator+this.semver.version,r("comp",this)}t.rcompareIdentifiers=function(e,t){"use strict";return J(t,e)},t.major=function(e,t){"use strict";return new $(e,t).major},t.minor=function(e,t){"use strict";return new $(e,t).minor},t.patch=function(e,t){"use strict";return new $(e,t).patch},t.compare=Y,t.compareLoose=function(e,t){"use strict";return Y(e,t,!0)},t.rcompare=function(e,t,r){"use strict";return Y(t,e,r)},t.sort=function(e,r){"use strict";return e.sort((function(e,i){return t.compare(e,i,r)}))},t.rsort=function(e,r){"use strict";return e.sort((function(e,i){return t.rcompare(e,i,r)}))},t.gt=X,t.lt=Q,t.eq=Z,t.neq=ee,t.gte=te,t.lte=re,t.cmp=ie,t.Comparator=ne;var se={};function ae(e,t){"use strict";if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof ae)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new ae(e.raw,t);if(e instanceof ne)return new ae(e.value,t);if(!(this instanceof ae))return new ae(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map((function(e){return this.parseRange(e.trim())}),this).filter((function(e){return e.length})),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}function oe(e){"use strict";return!e||"x"===e.toLowerCase()||"*"===e}function ue(e,t,r,i,n,s,a,o,u,l,c,p,h){"use strict";return t=oe(r)?"":oe(i)?">="+r+".0.0":oe(n)?">="+r+"."+i+".0":">="+t,o=oe(u)?"":oe(l)?"<"+(+u+1)+".0.0":oe(c)?"<"+u+"."+(+l+1)+".0":p?"<="+u+"."+l+"."+c+"-"+p:"<="+o,(t+" "+o).trim()}function le(e,t,i){"use strict";for(var n=0;n0){var s=e[n].semver;if(s.major===t.major&&s.minor===t.minor&&s.patch===t.patch)return!0}return!1}return!0}function ce(e,t,r){"use strict";try{t=new ae(t,r)}catch(e){return!1}return t.test(e)}function pe(e,t,r,i){"use strict";var n,s,a,o,u;switch(e=new $(e,i),t=new ae(t,i),r){case">":n=X,s=re,a=Q,o=">",u=">=";break;case"<":n=Q,s=te,a=X,o="<",u="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(ce(e,t,i))return!1;for(var l=0;l=0.0.0")),p=p||e,h=h||e,n(e.semver,p.semver,i)?p=e:a(e.semver,h.semver,i)&&(h=e)})),p.operator===o||p.operator===u)return!1;if((!h.operator||h.operator===o)&&s(e,h.semver))return!1;if(h.operator===u&&a(e,h.semver))return!1}return!0}ne.prototype.parse=function(e){"use strict";var t=this.options.loose?s[V]:s[G],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=r[1],"="===this.operator&&(this.operator=""),this.semver=r[2]?new $(r[2],this.options.loose):se},ne.prototype.toString=function(){"use strict";return this.value},ne.prototype.test=function(e){"use strict";return r("Comparator.test",e,this.options.loose),this.semver===se||("string"==typeof e&&(e=new $(e,this.options)),ie(e,this.operator,this.semver,this.options))},ne.prototype.intersects=function(e,t){"use strict";if(!(e instanceof ne))throw new TypeError("a Comparator is required");var r;if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return r=new ae(e.value,t),ce(this.value,r,t);if(""===e.operator)return r=new ae(this.value,t),ce(e.semver,r,t);var i=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),n=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),s=this.semver.version===e.semver.version,a=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),o=ie(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),u=ie(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return i||n||s&&a||o||u},t.Range=ae,ae.prototype.format=function(){"use strict";return this.range=this.set.map((function(e){return e.join(" ").trim()})).join("||").trim(),this.range},ae.prototype.toString=function(){"use strict";return this.range},ae.prototype.parseRange=function(e){"use strict";var t=this.options.loose;e=e.trim();var i=t?s[W]:s[U];e=e.replace(i,ue),r("hyphen replace",e),e=e.replace(s[B],"$1$2$3"),r("comparator trim",e,s[B]),e=e.replace(s[O],"$1~"),e=e.replace(s[D],"$1^"),e=e.split(/\s+/).join(" ");var n=t?s[V]:s[G],a=e.split(" ").map((function(e){return(function(e,t){return r("comp",e,t),e=(function(e,t){return e.trim().split(/\s+/).map((function(e){return(function(e,t){r("caret",e,t);var i=t.loose?s[j]:s[F];return e.replace(i,(function(t,i,n,s,a){var o;return r("caret",e,t,i,n,s,a),oe(i)?o="":oe(n)?o=">="+i+".0.0 <"+(+i+1)+".0.0":oe(s)?o="0"===i?">="+i+"."+n+".0 <"+i+"."+(+n+1)+".0":">="+i+"."+n+".0 <"+(+i+1)+".0.0":a?(r("replaceCaret pr",a),o="0"===i?"0"===n?">="+i+"."+n+"."+s+"-"+a+" <"+i+"."+n+"."+(+s+1):">="+i+"."+n+"."+s+"-"+a+" <"+i+"."+(+n+1)+".0":">="+i+"."+n+"."+s+"-"+a+" <"+(+i+1)+".0.0"):(r("no pr"),o="0"===i?"0"===n?">="+i+"."+n+"."+s+" <"+i+"."+n+"."+(+s+1):">="+i+"."+n+"."+s+" <"+i+"."+(+n+1)+".0":">="+i+"."+n+"."+s+" <"+(+i+1)+".0.0"),r("caret return",o),o}))})(e,t)})).join(" ")})(e,t),r("caret",e),e=(function(e,t){return e.trim().split(/\s+/).map((function(e){return(function(e,t){var i=t.loose?s[M]:s[T];return e.replace(i,(function(t,i,n,s,a){var o;return r("tilde",e,t,i,n,s,a),oe(i)?o="":oe(n)?o=">="+i+".0.0 <"+(+i+1)+".0.0":oe(s)?o=">="+i+"."+n+".0 <"+i+"."+(+n+1)+".0":a?(r("replaceTilde pr",a),o=">="+i+"."+n+"."+s+"-"+a+" <"+i+"."+(+n+1)+".0"):o=">="+i+"."+n+"."+s+" <"+i+"."+(+n+1)+".0",r("tilde return",o),o}))})(e,t)})).join(" ")})(e,t),r("tildes",e),e=(function(e,t){return r("replaceXRanges",e,t),e.split(/\s+/).map((function(e){return(function(e,t){e=e.trim();var i=t.loose?s[A]:s[I];return e.replace(i,(function(t,i,n,s,a,o){r("xRange",e,t,i,n,s,a,o);var u=oe(n),l=u||oe(s),c=l||oe(a),p=c;return"="===i&&p&&(i=""),u?t=">"===i||"<"===i?"<0.0.0":"*":i&&p?(l&&(s=0),a=0,">"===i?(i=">=",l?(n=+n+1,s=0,a=0):(s=+s+1,a=0)):"<="===i&&(i="<",l?n=+n+1:s=+s+1),t=i+n+"."+s+"."+a):l?t=">="+n+".0.0 <"+(+n+1)+".0.0":c&&(t=">="+n+"."+s+".0 <"+n+"."+(+s+1)+".0"),r("xRange return",t),t}))})(e,t)})).join(" ")})(e,t),r("xrange",e),e=(function(e,t){return r("replaceStars",e,t),e.trim().replace(s[q],"")})(e,t),r("stars",e),e})(e,this.options)}),this).join(" ").split(/\s+/);return this.options.loose&&(a=a.filter((function(e){return!!e.match(n)}))),a=a.map((function(e){return new ne(e,this.options)}),this),a},ae.prototype.intersects=function(e,t){"use strict";if(!(e instanceof ae))throw new TypeError("a Range is required");return this.set.some((function(r){return r.every((function(r){return e.set.some((function(e){return e.every((function(e){return r.intersects(e,t)}))}))}))}))},t.toComparators=function(e,t){"use strict";return new ae(e,t).set.map((function(e){return e.map((function(e){return e.value})).join(" ").trim().split(" ")}))},ae.prototype.test=function(e){"use strict";if(!e)return!1;"string"==typeof e&&(e=new $(e,this.options));for(var t=0;t":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!X(r,t)||(r=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator)}}))}return r&&e.test(r)?r:null},t.validRange=function(e,t){"use strict";try{return new ae(e,t).range||"*"}catch(e){return null}},t.ltr=function(e,t,r){"use strict";return pe(e,t,"<",r)},t.gtr=function(e,t,r){"use strict";return pe(e,t,">",r)},t.outside=pe,t.prerelease=function(e,t){"use strict";var r=H(e,t);return r&&r.prerelease.length?r.prerelease:null},t.intersects=function(e,t,r){"use strict";return e=new ae(e,r),t=new ae(t,r),e.intersects(t)},t.coerce=function(e){"use strict";if(e instanceof $)return e;if("string"!=typeof e)return null;var t=e.match(s[N]);return null==t?null:H(t[1]+"."+(t[2]||"0")+"."+(t[3]||"0"))}}),(function(e,t,r){var i=!0,n=-1,s=0,a=1,o=2,u=3,l=4,c=5,p=6,h=7,f=8,d=9,m=10,v=11,g=13,y=0,x=[];function b(){var e=x.pop();return e||(e={context:y,elements:null,element_array:null}),e}function w(e){x.push(e)}var E=[];function S(e){E.push(e)}var R=t;R.escape=function(e){var t,r="";if(!e)return e;for(t=0;t0&&(A&&("function"==typeof t&&(function e(r,i){var n,s,a=r[i];if(a&&"object"==typeof a)for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(s=e(a,n),void 0!==s?a[n]=s:delete a[n]);return t.call(r,i,a)})({"":A},""),e(A),A=void 0),!(i<2));i=this._write());},_write(e,t){var Z,ee,te,re=0;function ie(e,t){throw Error(`${e} '${String.fromCodePoint(t)}' unexpected at ${P} (near '${te.substr(P>4?P-4:0,P>4?3:P-1)}[${String.fromCodePoint(t)}]${te.substr(P,10)}') [${R.line}:${R.col}]`)}function ne(){x.value_type=s,x.string=""}function se(e){return e.length>1&&!L&&!D&&!F&&48===e.charCodeAt(0)?(I?-1:1)*+("0o"+e):(I?-1:1)*+e}function ae(){switch(x.value_type){case c:C.push(i?se(x.string):(I?-1:1)*+x.string);break;case l:C.push(x.string);break;case o:C.push(!0);break;case u:C.push(!1);break;case f:case d:C.push(NaN);break;case m:C.push(-1/0);break;case v:C.push(1/0);break;case a:C.push(null);break;case n:C.push(void 0);break;case g:C.push(void 0),delete C[C.length-1];break;case p:case h:C.push(x.contains)}}function oe(){switch(x.value_type){case c:N[x.name]=i?se(x.string):(I?-1:1)*+x.string;break;case l:N[x.name]=x.string;break;case o:N[x.name]=!0;break;case u:N[x.name]=!1;break;case f:case d:N[x.name]=NaN;break;case m:N[x.name]=-1/0;break;case v:N[x.name]=1/0;break;case a:N[x.name]=null;break;case n:N[x.name]=void 0;break;case p:case h:N[x.name]=x.contains}}function ue(e){for(var t=0;0===t&&P=65536&&(r+=te.charAt(P),P++),R.col++,i===e)q?(x.string+=r,q=!1):(t=-1,X?ie("Incomplete Octal sequence",i):K?ie("Incomplete hexidecimal sequence",i):$?ie("Incomplete unicode sequence",i):H&&ie("Incomplete long unicode sequence",i),t=1);else if(q){if(X){if(Y<3&&i>=48&&i<=57){if(J*=8,J+=i-48,Y++,3===Y){x.string+=String.fromCodePoint(J),X=!1,q=!1;continue}continue}if(J>255){ie("(escaped character, parsing octal escape val=%d) fault while parsing",i),t=-1;break}x.string+=String.fromCodePoint(J),X=!1,q=!1;continue}if(H){if(125===i){x.string+=String.fromCodePoint(J),H=!1,$=!1,q=!1;continue}if(J*=16,i>=48&&i<=57)J+=i-48;else if(i>=65&&i<=70)J+=i-65+10;else{if(!(i>=97&&i<=102)){ie("(escaped character, parsing hex of \\u)",i),t=-1,H=!1,q=!1;continue}J+=i-97+10}continue}if(K||$){if(0===Y&&123===i){H=!0;continue}if(Y<2||$&&Y<4){if(J*=16,i>=48&&i<=57)J+=i-48;else if(i>=65&&i<=70)J+=i-65+10;else{if(!(i>=97&&i<=102)){ie($?"(escaped character, parsing hex of \\u)":"(escaped character, parsing hex of \\x)",i),t=-1,K=!1,q=!1;continue}J+=i-97+10}Y++,$?4===Y&&(x.string+=String.fromCodePoint(J),$=!1,q=!1):2===Y&&(x.string+=String.fromCodePoint(J),K=!1,q=!1);continue}}switch(i){case 13:z=!0,R.col=1;continue;case 10:case 2028:case 2029:R.line++;break;case 116:x.string+="\t";break;case 98:x.string+="\b";break;case 110:x.string+="\n";break;case 114:x.string+="\r";break;case 102:x.string+="\f";break;case 48:case 49:case 50:case 51:X=!0,J=i-48,Y=1;continue;case 120:K=!0,Y=0,J=0;continue;case 117:$=!0,Y=0,J=0;continue;default:x.string+=r}q=!1}else if(92===i)q?(x.string+="\\",q=!1):q=!0;else{if(z){if(z=!1,10===i){R.line++,R.col=1,q=!1;continue}R.line++,R.col=1;continue}x.string+=r}}return t}function le(){for(var e;(e=P)=65536&&(ie("fault while parsing number;",i),r+=te.charAt(P),P++),95!==i)if(R.col++,i>=48&&i<=57)F&&(V=!0),x.string+=r;else if(45===i||43===i){if(0!==x.string.length&&(!F||j||V)){k=!1,ie("fault while parsing number;",i);break}x.string+=r,j=!0}else if(46===i){if(D||L||F){k=!1,ie("fault while parsing number;",i);break}x.string+=r,D=!0}else if(120===i||98===i||111===i||88===i||66===i||79===i){if(L||"0"!==x.string){k=!1,ie("fault while parsing number;",i);break}L=!0,x.string+=r}else{if(101!==i&&69!==i){if(32===i||13===i||10===i||9===i||65279===i||44===i||125===i||93===i||58===i)break;t&&(k=!1,ie("fault while parsing number;",i));break}if(F){k=!1,ie("fault while parsing number;",i);break}x.string+=r,F=!0}}P=e,t||P!==te.length?(W=!1,x.value_type=c,T===y&&(Q=!0)):W=!0}if(!k)return-1;for(e&&e.length?(ee=(function(){var e=E.pop();return e?e.n=0:e={buf:null,n:0},e})(),ee.buf=e,G.push(ee)):W&&(W=!1,x.value_type=c,T===y&&(Q=!0),re=1);k&&(ee=G.shift());){if(P=ee.n,te=ee.buf,U){var ce=ue(B);ce<0?k=!1:ce>0&&(U=!1,k&&(x.value_type=l))}for(W&&le();!Q&&k&&P=65536&&(r+=te.charAt(P),P++),R.col++,M){if(1===M){if(42===Z){M=3;continue}47!==Z?(ie("fault while parsing;",Z),k=!1):M=2;continue}if(2===M){if(10===Z){M=0;continue}continue}if(3===M){if(42===Z){M=4;continue}continue}if(4===M){if(47===Z){M=0;continue}42!==Z&&(M=3);continue}}switch(Z){case 47:M||(M=1);break;case 123:if(29===_||30===_||3===T&&0===_){ie("fault while parsing; getting field name unexpected ",Z),k=!1;break}var pe=b();x.value_type=p;var he={};T===y?A=N=he:4===T&&(N[x.name]=he),pe.context=T,pe.elements=N,pe.element_array=C,pe.name=x.name,N=he,O.push(pe),ne(),T=3;break;case 91:if(3===T||29===_||30===_){ie("Fault while parsing; while getting field name unexpected",Z),k=!1;break}var fe=b();x.value_type=h;var de=[];T===y?A=C=de:4===T&&(N[x.name]=de),fe.context=T,fe.elements=N,fe.element_array=C,fe.name=x.name,C=de,O.push(fe),ne(),T=1;break;case 58:if(3===T){if(0!==_&&29!==_&&30!==_){k=FALSE,thorwError(`fault while parsing; unquoted keyword used as object field name (state:${_})`,Z);break}_=0,x.name=x.string,x.string="",T=4,x.value_type=s}else ie(1===T?"(in array, got colon out of string):parsing fault;":"(outside any object, got colon out of string):parsing fault;",Z),k=!1;break;case 125:if(31===_&&(_=0),3===T){ne();var me=O.pop();T=me.context,N=me.elements,C=me.element_array,w(me),T===y&&(Q=!0)}else if(4===T){x.value_type!==s&&oe(),x.value_type=p,x.contains=N;var ve=O.pop();x.name=ve.name,T=ve.context,N=ve.elements,C=ve.element_array,w(ve),T===y&&(Q=!0)}else ie("Fault while parsing; unexpected",Z),k=!1;I=!1;break;case 93:31===_&&(_=0),1===T?(x.value_type!==s&&ae(),x.value_type=h,x.contains=C,ve=O.pop(),x.name=ve.name,T=ve.context,N=ve.elements,C=ve.element_array,w(ve),T===y&&(Q=!0)):(ie(`bad context ${T}; fault while parsing`,Z),k=!1),I=!1;break;case 44:31===_&&(_=0),1===T?(x.value_type===s&&(x.value_type=g),x.value_type!==s&&(ae(),ne())):4===T?(T=3,x.value_type!==s&&(oe(),ne())):(k=!1,ie("bad context; excessive commas while parsing;",Z)),I=!1;break;default:if(3===T)switch(Z){case 96:case 34:case 39:if(0===_){var ge=ue(Z);ge?x.value_type=l:(B=Z,U=!0)}else ie("fault while parsing; quote not at start of field name",Z);break;case 10:R.line++,R.col=1;case 13:case 32:case 9:case 65279:if(31===_){_=0,T===y&&(Q=!0);break}if(0===_||30===_)break;29===_?_=30:(k=!1,ie("fault while parsing; whitepsace unexpected",Z));break;default:30===_&&(k=!1,ie("fault while parsing; character unexpected",Z)),0===_&&(_=29),x.string+=r}else switch(Z){case 96:case 34:case 39:var ye=ue(Z);ye?(x.value_type=l,_=31):(B=Z,U=!0);break;case 10:R.line++,R.col=1;case 32:case 9:case 13:case 65279:if(31===_){_=0,T===y&&(Q=!0);break}if(0===_)break;29===_?_=30:(k=!1,ie("fault parsing whitespace",Z));break;case 116:0===_?_=1:27===_?_=28:(k=!1,ie("fault parsing",Z));break;case 114:1===_?_=2:(k=!1,ie("fault parsing",Z));break;case 117:2===_?_=3:9===_?_=10:0===_?_=12:(k=!1,ie("fault parsing",Z));break;case 101:3===_?(x.value_type=o,_=31):8===_?(x.value_type=u,_=31):14===_?_=15:18===_?_=19:(k=!1,ie("fault parsing",Z));break;case 110:0===_?_=9:12===_?_=13:17===_?_=18:22===_?_=23:25===_?_=26:(k=!1,ie("fault parsing",Z));break;case 100:13===_?_=14:19===_?(x.value_type=n,_=31):(k=!1,ie("fault parsing",Z));break;case 105:16===_?_=17:24===_?_=25:26===_?_=27:(k=!1,ie("fault parsing",Z));break;case 108:10===_?_=11:11===_?(x.value_type=a,_=31):6===_?_=7:(k=!1,ie("fault parsing",Z));break;case 102:0===_?_=5:15===_?_=16:23===_?_=24:(k=!1,ie("fault parsing",Z));break;case 97:5===_?_=6:20===_?_=21:(k=!1,ie("fault parsing",Z));break;case 115:7===_?_=8:(k=!1,ie("fault parsing",Z));break;case 73:0===_?_=22:(k=!1,ie("fault parsing",Z));break;case 78:0===_?_=20:21===_?(x.value_type=I?f:d,_=31):(k=!1,ie("fault parsing",Z));break;case 121:28===_?(x.value_type=I?m:v,_=31):(k=!1,ie("fault parsing",Z));break;case 45:0===_?I=!I:(k=!1,ie("fault parsing",Z));break;default:Z>=48&&Z<=57||43===Z||46===Z||45===Z?(L=!1,F=!1,j=!1,V=!1,D=!1,x.string=r,ee.n=P,le()):(k=!1,ie("fault parsing",Z))}}if(Q){31===_&&(_=0);break}}if(P===te.length?(S(ee),U||W||3===T?re=0:T!==y||x.value_type===s&&!A||(Q=!0,re=1)):(ee.n=P,G.unshift(ee),re=2),Q)break}if(!k)return-1;if(Q&&x.value_type!==s){switch(x.value_type){case c:A=i?se(x.string):(I?-1:1)*+x.string;break;case l:A=x.string;break;case o:A=!0;break;case u:A=!1;break;case a:A=null;break;case n:A=void 0;break;case d:case f:A=NaN;break;case v:A=1/0;break;case m:A=-1/0;break;case p:case h:A=x.contains}I=!1,x.string="",x.value_type=s}return Q=!1,re}}};var P=[Object.freeze(R.begin())],_=0;R.parse=function(e,t){var r,i=_++;if(P.length<=i&&P.push(Object.freeze(R.begin())),r=P[i],"string"!=typeof e&&(e+=""),r.reset(),r._write(e,!0)>0){var n=r.value();return"function"==typeof t&&(function e(r,i){var n,s,a=r[i];if(a&&"object"==typeof a)for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(s=e(a,n),void 0!==s?a[n]=s:delete a[n]);return t.call(r,i,a)})({"":n},""),_--,n}}}),(function(i,n,s){var a=function(e){"use strict";return e+"\u200d"},o=Object.prototype.__defineGetter__,u=function(e,t,r){"use strict";return o.call(e,t,r),e},l=Object.prototype.__defineSetter__,c=function(e,t,r){"use strict";return l.call(e,t,r),e},p={configurable:!0,enumerable:!0,value:void 0,writable:!0},h=[],f=function(e,t,r){"use strict";return u(e,t,(function(){return this[t]=void 0,this[t]=Reflect.apply(r,this,h)})),c(e,t,(function(e){p.value=e,Reflect.defineProperty(this,t,p)})),e},d=["index.js","esm.js","esm/loader.js"],m={PACKAGE_DIRNAME:null,PACKAGE_FILENAMES:null,PACKAGE_PREFIX:a("esm"),PACKAGE_RANGE:"3.2.25",PACKAGE_VERSION:"3.2.25",STACK_TRACE_LIMIT:30},v=e,g=v.filename,y=v.parent,x=null!=y&&y.filename;f(m,"PACKAGE_DIRNAME",(function(){"use strict";var e=__shared__.module.safePath;return e.dirname(g)})),f(m,"PACKAGE_FILENAMES",(function(){"use strict";for(var e=__shared__.module.safePath,t=e.sep,r=this.PACKAGE_DIRNAME,i=d.length;i--;)d[i]=r+t+d[i];return d})),f(m,"PACKAGE_PARENT_NAME",(function(){"use strict";var e=__shared__.module.safePath,t=e.sep,r="string"==typeof x?x.lastIndexOf(t+"node_modules"+t):-1;if(-1===r)return"";var i=r+14,n=x.indexOf(t,i);return-1===n?"":x.slice(i,n)}));var b=m,w=b.PACKAGE_PREFIX,E=b.PACKAGE_VERSION,S=Symbol.for(w+"@"+E+":shared"),R=(function(){"use strict";if(void 0!==__shared__)return __shared__.reloaded=!1,__shared__;try{return __shared__=require(S),__shared__.reloaded=!0,__shared__}catch(e){}return e=Function.prototype.toString,r=new Proxy(class{},{[w]:1}),i={wasm:"object"==typeof WebAssembly&&null!==WebAssembly},n={_compile:Symbol.for(w+":module._compile"),entry:Symbol.for(w+":entry"),mjs:Symbol.for(w+':Module._extensions[".mjs"]'),namespace:Symbol.for(w+":namespace"),package:Symbol.for(w+":package"),proxy:Symbol.for(w+":proxy"),realGetProxyDetails:Symbol.for(w+":realGetProxyDetails"),realRequire:Symbol.for(w+":realRequire"),runtime:Symbol.for(w+":runtime"),shared:S,wrapper:Symbol.for(w+":wrapper")},s={},o={bridged:new Map,customInspectKey:void 0,defaultInspectOptions:void 0,entry:{cache:new WeakMap},external:t,inited:!1,loader:new Map,memoize:{builtinEntries:new Map,builtinModules:new Map,fsRealpath:new Map,moduleESMResolveFilename:new Map,moduleInternalFindPath:new Map,moduleInternalReadPackage:new Map,moduleStaticResolveFilename:new Map,shimFunctionPrototypeToString:new WeakMap,shimProcessBindingUtilGetProxyDetails:new Map,shimPuppeteerExecutionContextPrototypeEvaluateHandle:new WeakMap,utilGetProxyDetails:new WeakMap,utilMaskFunction:new WeakMap,utilMaxSatisfying:new Map,utilParseURL:new Map,utilProxyExports:new WeakMap,utilSatisfies:new Map,utilUnwrapOwnProxy:new WeakMap,utilUnwrapProxy:new WeakMap},module:{},moduleState:{instantiating:!1,parsing:!1,requireDepth:0,statFast:null,statSync:null},package:{dir:new Map,root:new Map},pendingScripts:new Map,pendingWrites:new Map,realpathNativeSync:void 0,reloaded:!1,safeGlobal:__global__,support:i,symbol:n,unsafeGlobal:global,utilBinding:s},f(o,"circularErrorMessage",(function(){try{var e={};e.a=e,JSON.stringify(e)}catch(e){var t=e.message;return t}})),f(o,"defaultGlobal",(function(){var e=o.module.safeVM;return new e.Script("this").runInThisContext()})),f(o,"originalConsole",(function(){var e=o.module,t=e.safeInspector,r=e.safeVM,i=e.utilGet,n=i(t,"console");return"function"==typeof n?n:new r.Script("console").runInNewContext()})),f(o,"proxyNativeSourceText",(function(){try{return e.call(r)}catch(e){}return""})),f(o,"runtimeName",(function(){var e=o.module.safeCrypto;return a("_"+e.createHash("md5").update(""+Date.now()).digest("hex").slice(0,3))})),f(o,"unsafeContext",(function(){var e=o.module,t=e.safeVM,r=e.utilPrepareContext;return r(t.createContext(o.unsafeGlobal))})),f(i,"await",(function(){var e=o.module.safeVM;try{return new e.Script("async()=>await 1").runInThisContext(),!0}catch(e){}return!1})),f(i,"consoleOptions",(function(){var e=o.module,t=e.safeProcess,r=e.utilSatisfies;return r(t.version,">=10")})),f(i,"createCachedData",(function(){var e=o.module.safeVM;return"function"==typeof e.Script.prototype.createCachedData})),f(i,"inspectProxies",(function(){var e=o.module.safeUtil,t=e.inspect(r,{depth:1,showProxy:!0});return-1!==t.indexOf("Proxy [")&&-1!==t.indexOf(w)})),f(i,"lookupShadowed",(function(){var e={__proto__:{get a(){},set a(e){}},a:1};return void 0===e.__lookupGetter__("a")&&void 0===e.__lookupSetter__("a")})),f(i,"nativeProxyReceiver",(function(){var e=o.module,t=e.SafeBuffer,r=e.utilGet,i=e.utilToString;try{var n=new Proxy(t.alloc(0),{get:function(e,t){return e[t]}});return"string"==typeof(""+n)}catch(e){return!/Illegal/.test(i(r(e,"message")))}})),f(i,"realpathNative",(function(){var e=o.module,t=e.safeProcess,r=e.utilSatisfies;return r(t.version,">=9.2")})),f(i,"replShowProxy",(function(){var e=o.module,t=e.safeProcess,r=e.utilSatisfies;return r(t.version,">=10")})),f(i,"vmCompileFunction",(function(){var e=o.module,t=e.safeProcess,r=e.utilSatisfies;return r(t.version,">=10.10")})),f(s,"errorDecoratedSymbol",(function(){var e=o.module,t=e.binding,r=e.safeProcess,i=e.utilSatisfies;return i(r.version,"<7")?"node:decorated":t.util.decorated_private_symbol})),f(s,"hiddenKeyType",(function(){return typeof s.errorDecoratedSymbol})),__shared__=o;var e,r,i,n,s,o})(),P=R.inited?R.module.utilUnapply:R.module.utilUnapply=(function(){"use strict";return function(e){return function(t,...r){return Reflect.apply(e,t,r)}}})(),_=R.inited?R.module.GenericFunction:R.module.GenericFunction=(function(){"use strict";return{bind:P(Function.prototype.bind)}})(),k=R.inited?R.module.realRequire:R.module.realRequire=(function(){"use strict";try{var e=require(R.symbol.realRequire);if("function"==typeof e)return e}catch(e){}return require})(),I=R.inited?R.module.realProcess:R.module.realProcess=k("process"),A=R.inited?R.module.utilIsObjectLike:R.module.utilIsObjectLike=(function(){"use strict";return function(e){var t=typeof e;return"function"===t||"object"===t&&null!==e}})(),N=R.inited?R.module.utilSetProperty:R.module.utilSetProperty=(function(){"use strict";var e={configurable:!0,enumerable:!0,value:void 0,writable:!0};return function(t,r,i){return!!A(t)&&(e.value=i,Reflect.defineProperty(t,r,e))}})(),C=R.inited?R.module.utilSilent:R.module.utilSilent=(function(){"use strict";return function(e){var t=Reflect.getOwnPropertyDescriptor(I,"noDeprecation");N(I,"noDeprecation",!0);try{return e()}finally{void 0===t?Reflect.deleteProperty(I,"noDeprecation"):Reflect.defineProperty(I,"noDeprecation",t)}}})(),O=R.inited?R.module.utilGetSilent:R.module.utilGetSilent=(function(){"use strict";return function(e,t){var r=C((function(){try{return e[t]}catch(e){}}));return"function"!=typeof r?r:function(...e){var t=this;return C((function(){return Reflect.apply(r,t,e)}))}}})(),T=R.inited?R.module.utilKeys:R.module.utilKeys=(function(){"use strict";return function(e){return A(e)?Object.keys(e):[]}})(),M=R.inited?R.module.utilHas:R.module.utilHas=(function(){"use strict";var e=Object.prototype.hasOwnProperty;return function(t,r){return null!=t&&e.call(t,r)}})(),L=R.inited?R.module.utilNoop:R.module.utilNoop=(function(){"use strict";return function(){}})(),D=R.inited?R.module.utilIsObject:R.module.utilIsObject=(function(){"use strict";return function(e){return"object"==typeof e&&null!==e}})(),F=R.inited?R.module.utilOwnKeys:R.module.utilOwnKeys=(function(){"use strict";return function(e){return A(e)?Reflect.ownKeys(e):[]}})(),j=R.inited?R.module.utilIsDataPropertyDescriptor:R.module.utilIsDataPropertyDescriptor=(function(){"use strict";return function(e){return D(e)&&!0===e.configurable&&!0===e.enumerable&&!0===e.writable&&M(e,"value")}})(),V=R.inited?R.module.utilSafeCopyProperty:R.module.utilSafeCopyProperty=(function(){"use strict";return function(e,t,r){if(!A(e)||!A(t))return e;var i=Reflect.getOwnPropertyDescriptor(t,r);if(void 0!==i){if(M(i,"value")){var n=i.value;Array.isArray(n)&&(i.value=Array.from(n))}j(i)?e[r]=i.value:(i.configurable=!0,M(i,"writable")&&(i.writable=!0),Reflect.defineProperty(e,r,i))}return e}})(),G=R.inited?R.module.utilSafeAssignProperties:R.module.utilSafeAssignProperties=(function(){"use strict";return function(e){for(var t=arguments.length,r=0;++r0;){var n=r[i--];if(D(n)&&!Array.isArray(n)&&t(n))return n}return null}getParentNode(e){return this.getNode(-2,e)}getValue(){var e=this.stack;return e[e.length-1]}}return B(e.prototype,null),e})(),Ae=R.inited?R.module.MagicString:R.module.MagicString=(function(){"use strict";class e{constructor(e,t,r){this.content=r,this.end=t,this.intro="",this.original=r,this.outro="",this.next=null,this.start=e}appendLeft(e){this.outro+=e}appendRight(e){this.intro+=e}contains(e){return this.startt.end;t;){if(t.contains(e))return void this._splitChunk(t,e);t=r?this.byStart.get(t.end):this.byEnd.get(t.start)}}_splitChunk(e,t){var r=e.split(t);this.byEnd.set(t,e),this.byStart.set(t,r),this.byEnd.set(r.end,r),this.lastSearchedChunk=e}toString(){for(var e=this.intro,t=this.firstChunk;t;)e+=""+t,t=t.next;return e+this.outro}}return B(t.prototype,null),t})();class Ne{constructor(e,t={}){this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null}}function Ce(e,t){"use strict";return new Ne(e,{beforeExpr:!0,binop:t})}var Oe={beforeExpr:!0},Te={startsExpr:!0},Me={};function Le(e,t={}){return t.keyword=e,Me[e]=new Ne(e,t)}var De={num:new Ne("num",Te),regexp:new Ne("regexp",Te),string:new Ne("string",Te),name:new Ne("name",Te),eof:new Ne("eof"),bracketL:new Ne("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new Ne("]"),braceL:new Ne("{",{beforeExpr:!0,startsExpr:!0}),braceR:new Ne("}"),parenL:new Ne("(",{beforeExpr:!0,startsExpr:!0}),parenR:new Ne(")"),comma:new Ne(",",Oe),semi:new Ne(";",Oe),colon:new Ne(":",Oe),dot:new Ne("."),question:new Ne("?",Oe),arrow:new Ne("=>",Oe),template:new Ne("template"),invalidTemplate:new Ne("invalidTemplate"),ellipsis:new Ne("...",Oe),backQuote:new Ne("`",Te),dollarBraceL:new Ne("${",{beforeExpr:!0,startsExpr:!0}),eq:new Ne("=",{beforeExpr:!0,isAssign:!0}),assign:new Ne("_=",{beforeExpr:!0,isAssign:!0}),incDec:new Ne("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new Ne("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:Ce("||",1),logicalAND:Ce("&&",2),bitwiseOR:Ce("|",3),bitwiseXOR:Ce("^",4),bitwiseAND:Ce("&",5),equality:Ce("==/!=/===/!==",6),relational:Ce("/<=/>=",7),bitShift:Ce("<>/>>>",8),plusMin:new Ne("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:Ce("%",10),star:Ce("*",10),slash:Ce("/",10),starstar:new Ne("**",{beforeExpr:!0}),_break:Le("break"),_case:Le("case",Oe),_catch:Le("catch"),_continue:Le("continue"),_debugger:Le("debugger"),_default:Le("default",Oe),_do:Le("do",{isLoop:!0,beforeExpr:!0}),_else:Le("else",Oe),_finally:Le("finally"),_for:Le("for",{isLoop:!0}),_function:Le("function",Te),_if:Le("if"),_return:Le("return",Oe),_switch:Le("switch"),_throw:Le("throw",Oe),_try:Le("try"),_var:Le("var"),_const:Le("const"),_while:Le("while",{isLoop:!0}),_with:Le("with"),_new:Le("new",{beforeExpr:!0,startsExpr:!0}),_this:Le("this",Te),_super:Le("super",Te),_class:Le("class",Te),_extends:Le("extends",Oe),_export:Le("export"),_import:Le("import"),_null:Le("null",Te),_true:Le("true",Te),_false:Le("false",Te),_in:Le("in",{beforeExpr:!0,binop:7}),_instanceof:Le("instanceof",{beforeExpr:!0,binop:7}),_typeof:Le("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:Le("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:Le("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},Fe={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},je="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",Ve={5:je,6:je+" const class extends export import super"},Ge=/^in(stanceof)?$/,Be="\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7b9\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc",Ue="\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f",We=RegExp("["+Be+"]"),qe=RegExp("["+Be+Ue+"]");Be=Ue=null;var ze=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,190,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,26,230,43,117,63,32,0,257,0,11,39,8,0,22,0,12,39,3,3,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,68,12,0,67,12,65,1,31,6129,15,754,9486,286,82,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541],He=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,280,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239];function $e(e,t){"use strict";for(var r=65536,i=0;ie)return!1;if(r+=t[i+1],r>=e)return!0}}function Ke(e,t){"use strict";return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&We.test(String.fromCharCode(e)):!1!==t&&$e(e,ze)))}function Je(e,t){"use strict";return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&qe.test(String.fromCharCode(e)):!1!==t&&($e(e,ze)||$e(e,He)))))}var Ye=/\r\n?|\n|\u2028|\u2029/,Xe=RegExp(Ye.source,"g");function Qe(e,t){"use strict";return 10===e||13===e||!t&&(8232===e||8233===e)}var Ze=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,et=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,tt=Object.prototype,rt=tt.hasOwnProperty,it=tt.toString;function nt(e,t){"use strict";return rt.call(e,t)}var st=Array.isArray||function(e){return"[object Array]"===it.call(e)};function at(e){"use strict";return RegExp("^(?:"+e.replace(/ /g,"|")+")$")}class ot{constructor(e,t){this.line=e,this.column=t}offset(e){return new ot(this.line,this.column+e)}}class ut{constructor(e,t,r){this.start=t,this.end=r,null!==e.sourceFile&&(this.source=e.sourceFile)}}function lt(e,t){"use strict";for(var r=1,i=0;;){Xe.lastIndex=i;var n=Xe.exec(e);if(!(n&&n.index=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),st(t.onToken)){var i=t.onToken;t.onToken=function(e){return i.push(e)}}return st(t.onComment)&&(t.onComment=(function(e,t){return function(r,i,n,s,a,o){var u={type:r?"Block":"Line",value:i,start:n,end:s};e.locations&&(u.loc=new ut(this,a,o)),e.ranges&&(u.range=[n,s]),t.push(u)}})(t,t.onComment)),t})(e),this.sourceFile=e.sourceFile,this.keywords=at(Ve[e.ecmaVersion>=6?6:5]);var i="";if(!e.allowReserved){for(var n=e.ecmaVersion;!(i=Fe[n]);n--);"module"===e.sourceType&&(i+=" await")}this.reservedWords=at(i);var s=(i?i+" ":"")+Fe.strict;this.reservedWordsStrict=at(s),this.reservedWordsStrictBind=at(s+" "+Fe.strictBind),this.input=t+"",this.containsEsc=!1,r?(this.pos=r,this.lineStart=this.input.lastIndexOf("\n",r-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(Ye).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=De.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports={},0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(pt),this.regexpState=null}parse(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)}get inFunction(){return(this.currentVarScope().flags&ht)>0}get inGenerator(){return(this.currentVarScope().flags&mt)>0}get inAsync(){return(this.currentVarScope().flags&dt)>0}get allowSuper(){return(this.currentThisScope().flags&vt)>0}get allowDirectSuper(){return(this.currentThisScope().flags>)>0}get treatFunctionsAsVar(){return this.treatFunctionsAsVarInScope(this.currentScope())}inNonArrowFunction(){return(this.currentThisScope().flags&ht)>0}static extend(...e){for(var t=this,r=0;r-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var r=t?e.parenthesizedAssign:e.parenthesizedBind;r>-1&&this.raiseRecoverable(r,"Parenthesized pattern")}},bt.checkExpressionErrors=function(e,t){"use strict";if(!e)return!1;var r=e.shorthandAssign,i=e.doubleProto;if(!t)return r>=0||i>=0;r>=0&&this.raise(r,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")},bt.checkYieldAwaitInDefaultParams=function(){"use strict";this.yieldPos&&(!this.awaitPos||this.yieldPos=9&&"SpreadElement"===e.type||this.options.ecmaVersion>=6&&(e.computed||e.method||e.shorthand))){var i,n=e.key;switch(n.type){case"Identifier":i=n.name;break;case"Literal":i=n.value+"";break;default:return}var s=e.kind;if(this.options.ecmaVersion>=6)"__proto__"===i&&"init"===s&&(t.proto&&(r&&r.doubleProto<0?r.doubleProto=n.start:this.raiseRecoverable(n.start,"Redefinition of __proto__ property")),t.proto=!0);else{i="$"+i;var a,o=t[i];o?(a="init"===s?this.strict&&o.init||o.get||o.set:o.init||o[s],a&&this.raiseRecoverable(n.start,"Redefinition of property")):o=t[i]={init:!1,get:!1,set:!1},o[s]=!0}}},St.parseExpression=function(e,t){"use strict";var r=this.start,i=this.startLoc,n=this.parseMaybeAssign(e,t);if(this.type===De.comma){var s=this.startNodeAt(r,i);for(s.expressions=[n];this.eat(De.comma);)s.expressions.push(this.parseMaybeAssign(e,t));return this.finishNode(s,"SequenceExpression")}return n},St.parseMaybeAssign=function(e,t,r){"use strict";if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield(e);this.exprAllowed=!1}var i=!1,n=-1,s=-1,a=-1;t?(n=t.parenthesizedAssign,s=t.trailingComma,a=t.shorthandAssign,t.parenthesizedAssign=t.trailingComma=t.shorthandAssign=-1):(t=new Et,i=!0);var o=this.start,u=this.startLoc;this.type!==De.parenL&&this.type!==De.name||(this.potentialArrowAt=this.start);var l=this.parseMaybeConditional(e,t);if(r&&(l=r.call(this,l,o,u)),this.type.isAssign){var c=this.startNodeAt(o,u);return c.operator=this.value,c.left=this.type===De.eq?this.toAssignable(l,!1,t):l,i||Et.call(t),t.shorthandAssign=-1,this.checkLVal(l),this.next(),c.right=this.parseMaybeAssign(e),this.finishNode(c,"AssignmentExpression")}return i&&this.checkExpressionErrors(t,!0),n>-1&&(t.parenthesizedAssign=n),s>-1&&(t.trailingComma=s),a>-1&&(t.shorthandAssign=a),l},St.parseMaybeConditional=function(e,t){"use strict";var r=this.start,i=this.startLoc,n=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return n;if(this.eat(De.question)){var s=this.startNodeAt(r,i);return s.test=n,s.consequent=this.parseMaybeAssign(),this.expect(De.colon),s.alternate=this.parseMaybeAssign(e),this.finishNode(s,"ConditionalExpression")}return n},St.parseExprOps=function(e,t){"use strict";var r=this.start,i=this.startLoc,n=this.parseMaybeUnary(t,!1);return this.checkExpressionErrors(t)?n:n.start===r&&"ArrowFunctionExpression"===n.type?n:this.parseExprOp(n,r,i,-1,e)},St.parseExprOp=function(e,t,r,i,n){"use strict";var s=this.type.binop;if(null!=s&&(!n||this.type!==De._in)&&s>i){var a=this.type===De.logicalOR||this.type===De.logicalAND,o=this.value;this.next();var u=this.start,l=this.startLoc,c=this.parseExprOp(this.parseMaybeUnary(null,!1),u,l,s,n),p=this.buildBinary(t,r,e,c,o,a);return this.parseExprOp(p,t,r,i,n)}return e},St.buildBinary=function(e,t,r,i,n,s){"use strict";var a=this.startNodeAt(e,t);return a.left=r,a.operator=n,a.right=i,this.finishNode(a,s?"LogicalExpression":"BinaryExpression")},St.parseMaybeUnary=function(e,t){"use strict";var r,i=this.start,n=this.startLoc;if(this.isContextual("await")&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction))r=this.parseAwait(),t=!0;else if(this.type.prefix){var s=this.startNode(),a=this.type===De.inc

Полимера́зная цепна́я реа́кция (ПЦР) — экспериментальный метод молекулярной биологии, позволяющий добиться значительного увеличения малых концентраций определённых фрагментов нуклеиновой кислоты (ДНК) в биологическом материале (пробе).

Помимо амплификации ДНК, ПЦР позволяет производить множество других манипуляций с нуклеиновыми кислотами (введение мутаций, сращивание фрагментов ДНК) и широко используется в биологической и медицинской практике, например, для диагностики заболеваний (наследственных, инфекционных), для установления отцовства, для клонирования генов, выделения новых генов.

История[править | править код]

В начале 1970-х годов норвежскому ученому Хьеллю Клеппе из лаборатории нобелевского лауреата Хара Гобинды Хораны пришла в голову мысль, что можно амплифицировать ДНК с помощью пары коротких одноцепочечных молекул ДНК — синтетических праймеров [1]. Однако, в то время эта идея осталась нереализованной. Полимеразная цепная реакция (ПЦР) была открыта в 1983 году американском химиком Кэри Маллисом. Его целью было создание метода, который бы позволил амплифицировать ДНК в ходе многократных последовательных удвоений исходной молекулы ДНК с помощью фермента ДНК-полимеразы. Первая публикация по методу ПЦР появилась в ноябре 1985 года в журнале Science [2]) Через 8 лет после этого, за изобретение метода ПЦР, К.Маллис получил Нобелевскую премию[3].

В начале использования метода после каждого цикла нагревания — охлаждения приходилось добавлять в реакционную смесь ДНК-полимеразу, так как она инактивировалась при высокой температуре, необходимой для разделения цепей спирали ДНК. Процедура проведения реакции была сравнительно неэффективной, требовала много времени и фермента. В 1986 году метод полимеразной цепной реакции был существенно улучшен. Было предложено использовать ДНК-полимеразы из термофильных бактерий [4]. Эти ферменты оказались термостабильными и были способны выдерживать множество циклов реакции. Их использование позволило упростить и автоматизировать проведение ПЦР. Одна из первых термостабильных ДНК-полимераз была выделена из бактерий Thermus aquaticus и названа Taq-полимеразой. Недостаток этой полимеразы заключается в том, что вероятность внесения ошибочного нуклеотида у неё достаточно высока, так как у этого фермента отсутствуют механизмы исправления ошибок (3'→5' экзонуклеазная активность). Полимеразы Pfu и Pwo, выделенные из архей, обладают таким механизмом, их использование значительно уменьшает число мутаций в ДНК, но скорость их работы (процессивность) ниже, чем у Taq. Сейчас применяют смеси Taq и Pfu, чтобы добиться одновременно высокой скорости полимеризации и высокой точности копирования.

В момент изобретения метода Кэри Маллис работал химиком-синтетиком (он синтезировал олигонуклеотиды, которые применялись тогда для выявления точковых мутаций по гибридизации с геномной ДНК) в компании Цетус (en:Cetus Corporation), которая и запатентовала метод ПЦР. В 1992 году Цетус продала права на метод и патент на использование Taq-полимеразы компании Хофман-Ла Рош за 300 млн долларов. Однако оказалось, что Taq-полимераза была охарактеризована советскими биохимиками А. Калединым, А. Слюсаренко и С.Городецким в 1980 году [5], а также, за 4 года до этой советской публикации, т.е. в 1976 году, - американскими биохимиками Alice Chien, David B.Edgar и John M. Trela. [6] В связи с этим компания Промега (Promega) пыталась в судебном порядке заставить Рош отказаться от исключительных прав на этот фермент [7]. Американский патент на метод ПЦР истёк в марте 2005 г.

Проведение ПЦР[править | править код]

Метод основан на многократном избирательном копировании определённого участка ДНК при помощи ферментов в искусственных условиях (in vitro). При этом происходит копирование только того участка, который удовлетворяет заданным условиям, и только в том случае, если он присутствует в исследуемом образце. В отличие от амплификации ДНК в живых организмах, (репликации), с помощью ПЦР амплифицируются относительно короткие участки ДНК. В обычном ПЦР-процессе длина копируемых ДНК-участков составляет не более 3000 пар оснований (3 kbp[8]). С помощью смеси различных полимераз, с использованием добавок и при определённых условиях длина ПЦР-фрагмента может достигать 20—40 тысяч пар нуклеотидов. Это всё равно значительно меньше длины хромосомной ДНК эукариотической клетки. Например, геном человека состоит примерно из 3 млрд пар оснований [9].

Компоненты реакции[править | править код]

Для проведения ПЦР в простейшем случае требуются следующие компоненты:

Чтобы избежать испарения реакционной смеси, в пробирку добавляют высококипящее масло, например, вазелиновое. Если используется амплификатор с подогревающейся крышкой, этого делать не требуется.

Добавление пирофосфатазы может увеличить выход ПЦР-реакции. Этот фермент катализирует гидролиз пирофосфата, побочного продукта присоединения нуклеотидтрифосфатов к растущей цепи ДНК, до ортофосфата. Пирофосфат может ингибировать ПЦР-реакцию [10].

Праймеры[править | править код]

Специфичность ПЦР основана на образовании комплементарных комплексов между матрицей и праймерами, короткими синтетическими олигонуклеотидами длиной 18—30 оснований. Каждый из праймеров комплементарен одной из цепей двуцепочечной матрицы и ограничивает начало и конец амплифицируемого участка.

После гибридизации матрицы с праймером (отжиг [11]), последний служит затравкой для ДНК-полимеразы при синтезе комплементарной цепи матрицы (см. ниже).

Важнейшая характеристика праймеров — температура плавления (Tm) комплекса праймер-матрица.

Tm — температура, при которой половина ДНК-матриц образует комплекс с олигонуклеотидным праймером. Температуру плавления можно приблизительно определить по формуле \(T_m = 2\cdot(n_A+n_T)+4\cdot(n_G+n_C)\), где nX — количество нуклеотидов Х в праймере.

В случае неверного выбора длины и нуклеотидного состава праймера или температуры отжига возможно образование частично комплементарных комплексов с другими участками матричной ДНК, что может привести к появлению неспецифических продуктов. Верхний предел температуры плавления ограничен оптимумом температуры действия полимеразы, активность которой падает при температурах выше 80 °C.

При выборе праймеров желательно придерживаться следующих критериев:

  • GC-состав ~ 40—60 %;
  • близкие Tm праймеров (отличия не более, чем на 5 °C);
  • отсутствие неспецифических вторичных структур — шпилек[12] и димеров[13];
  • желательно, чтобы на 5’-конце был гуанин или цитозин, поскольку они образуют три водородные связи с молекулой матрицы, делая гибридизацию более стабильной.

Амплификатор[править | править код]

Файл:Pcr machine.jpg
Рис. 1: Амплификатор для проведения ПЦР

ПЦР проводят в амплификаторе — приборе, обеспечивающем периодическое охлаждение и нагревание пробирок, обычно с точностью не менее 0,1 °C. Современные амплификаторы позволяют задавать сложные программы, в том числе с возможностью «горячего старта», Touchdown ПЦР (см. ниже) и последующего хранения амплифицированных молекул при 4 °C. Для ПЦР в реальном времени выпускают приборы, оборудованные флуоресцентным детектором. Существуют также приборы с автоматической крышкой и отделением для микропланшет, что позволяет встраивать их в автоматизированные системы.

Ход реакции[править | править код]

Фотография геля, содержащего маркерную ДНК (1) и продукты ПЦР-реакции (2, 3). Цифрами показана длина фрагментов ДНК в парах нуклеотидов

Обычно при проведении ПЦР выполняется 20—35 циклов, каждый из которых состоит из трёх стадий (рис. 2).

Денатурация[править | править код]

Двухцепочечную ДНК-матрицу нагревают до 94—96 °C (или до 98 °C, если используется особенно термостабильная полимераза) на 0,5—2 мин., чтобы цепи ДНК разошлись. Эта стадия называется денатурацией, так как разрушаются водородные связи между двумя цепями ДНК. Иногда перед первым циклом (до добавления полимеразы) проводят предварительный прогрев реакционной смеси в течение 2—5 мин. для полной денатурации матрицы и праймеров. Такой приём называется горячим стартом, он позволяет снизить количество неспецифичных продуктов реакции.

Отжиг[править | править код]

Когда цепи разошлись, температуру понижают, чтобы праймеры могли связаться с одноцепочечной матрицей. Эта стадия называется отжигом. Температура отжига зависит от состава праймеров и обычно выбирается на 4—5°С ниже их температуры плавления. Время стадии — 0,5—2 мин. Неправильный выбор температуры отжига приводит либо к плохому связыванию праймеров с матрицей (при завышенной температуре), либо к связыванию в неверном месте и появлению неспецифических продуктов (при заниженной температуре).

Элонгация[править | править код]

ДНК-полимераза реплицирует матричную цепь, используя праймер в качестве затравки. Это — стадия элонгации. Полимераза начинает синтез второй цепи от 3'-конца праймера, который связался с матрицей, и движется вдоль матрицы в направлении от 3' к 5'. Температура элонгации зависит от полимеразы. Часто используемые полимеразы Taq и Pfu наиболее активны при 72 °C. Время элонгации зависит как от типа ДНК-полимеразы, так и от длины амплифицируемого фрагмента. Обычно время элонгации принимают равным одной минуте на каждую тысячу пар оснований. После окончания всех циклов часто проводят дополнительную стадию финальной элонгации, чтобы достроить все одноцепочечные фрагменты. Эта стадия длится 7—10 мин.

Рис. 2: Схематическое изображение первого цикла ПЦР. (1) Денатурация при 94—96 °C. (2) Отжиг при 68 °C (например). (3) Элонгация при 72 °C (P=полимераза). (4) Закончен первый цикл. Две получившиеся ДНК-цепи служат матрицей для следующего цикла, поэтому количество матричной ДНК в ходе каждого цикла удваивается.

Количество специфического продукта реакции (ограниченного праймерами) теоретически возрастает пропорционально 2n, где n — число циклов реакции. На самом деле эффективность каждого цикла может быть меньше 100 %, поэтому в действительности P ~ (1+E)n, где P — количество продукта, Е — средняя эффективность цикла.

Число «длинных» копий ДНК тоже растет, но линейно, поэтому в продуктах реакции доминирует специфический фрагмент.

Рост требуемого продукта в геометрической прогрессии ограничен количеством реагентов, присутствием ингибиторов, образованием побочных продуктов. На последних циклах реакции рост замедляется, это называют «эффектом плато» [14].

Разновидности ПЦР[править | править код]

  • «Вложенная» ПЦР (Nested PCR(англ.)) — применяется для уменьшения числа побочных продуктов реакции. Используют две пары праймеров и проводят две последовательные реакции. Вторая пара праймеров амплифицирует участок ДНК внутри продукта первой реакции.
  • «Инвертированная» ПЦР (Inverse PCR(англ.)) — используется в том случае, если известен лишь небольшой участок внутри нужной последовательности. Этот метод особенно полезен, когда нужно определить соседние последовательности после вставки ДНК в геном. Для осуществления инвертированной ПЦР проводят ряд разрезаний ДНК рестриктазами с последующим соединением фрагментов (лигирование). В результате известные фрагменты оказываются на обоих концах неизвестного участка, после чего можно проводить ПЦР как обычно.
  • ПЦР с обратной транскрипцией (Reverse Transcription PCR, RT-PCR(англ.)) — используется для амплификации, выделения или идентификации известной последовательности из библиотеки РНК. Перед обычной ПЦР проводят на матрице мРНК синтез одноцепочечной молекулы ДНК с помощью ревертазы и получают одноцепочечную кДНК, которая используется в качестве матрицы для ПЦР. Этим методом часто определяют, где и когда экспрессируются данные гены.
  • Асимметричная ПЦР (англ. Asymmetric PCR) — проводится тогда, когда нужно амплифицировать преимущественно одну из цепей исходной ДНК. Используется в некоторых методиках секвенирования и гибридизационного анализа. ПЦР проводится как обычно, за исключением того, что один из праймеров берется в большом избытке.
  • Количественная ПЦР (Quantitative PCR, Q-PCR(англ.)) — используется для быстрого измерения количества определенной ДНК, кДНК или РНК в пробе.
  • Количественная ПЦР в реальном времени (Quantitative real-time PCR) — в этом методе используют флуоресцентно меченые реагенты для точного измерения количества продукта реакции по мере его накопления.
  • Touchdown (Stepdown) ПЦР (Touchdown PCR(англ.)) — с помощью этого метода уменьшают влияние неспецифического связывания праймеров на образование продукта. Первые циклы проводят при температуре выше температуры отжига, затем каждые несколько циклов температуру снижают. При определённой температуре система пройдёт через полосу оптимальной специфичности праймеров к ДНК.
  • Метод молекулярных колоний (ПЦР в геле, англ. Colony - PCR Colony) — акриламидный гель полимеризуют со всеми компонентами ПЦР на поверхности и проводят ПЦР. В точках, содержащих анализируемую ДНК, происходит амплификация с образованием молекулярных колоний.
  • ПЦР с быстрой амплификацией концов кДНК (англ. Rapid amplification of cDNA ends, RACE-PCR)
  • ПЦР длинных фрагментов (англ. Long-range PCR) — модификация ПЦР для амплификации протяженных участков ДНК (10 тысяч оснований и больше). Используют две полимеразы, одна из которых — Taq-полимераза с высокой процессивностью (то есть, способная за один проход синтезировать длинную цепь ДНК), а вторая — ДНК полимераза с 3'-5' экзонуклеазной активностью. Вторая полимераза необходима для того, чтобы корректировать ошибки, внесённые первой.
  • RAPD PCR (англ. Random Amplification of Polymorphic DNA PCR, ПЦР со случайной амплификацией полиморфной ДНК — используется тогда, когда нужно различить близкие по генетической последовательности организмы, например, разные сорта культурных растений, породы собак или близкородственные микроорганизмы. В этом методе обычно используют один праймер небольшого размера (около 10 п.н.). Этот праймер будет частично комплементарен случайным участкам ДНК исследуемых организмов. Подбирая условия (длину праймера, его состав, температуру и пр.), удаётся добиться удовлетворительного отличия картины ПЦР для двух организмов.
  • PCR с использованием горячего старта (англ. Hot-start PCR — модификация ПЦР с использованием парафина для разделения верхней (содержащей буферный раствор, полимеразу, матрицу и, если необходимо, деионизованную воду) и нижней (содержащей деионизованную воду, праймеры и дезоксирибонуклеотиды) смесей с целью недопущения раннего смешивания компонентов реакции. До начала реакции амплификатор необходимо прогреть до температуры плавления парафина (60—80 °C).

Если нуклеотидная последовательность матрицы известна частично или неизвестна вовсе, можно использовать вырожденные праймеры, последовательность которых содержит вырожденные позиции, в которых могут располагаться любые основания. Например, последовательность праймера может быть такой: …ATH…, где Н — А, Т или С.

Применение ПЦР[править | править код]

ПЦР используется во многих областях для проведения анализов и в научных экспериментах.

Криминалистика[править | править код]

ПЦР используют для сравнения так называемых «генетических отпечатков пальцев». Необходим образец генетического материала с места преступления — кровь, слюна, сперма, волосы и т. п. Его сравнивают с генетическим материалом подозреваемого. Достаточно совсем малого количества ДНК, теоретически — одной копии. ДНК расщепляют на фрагменты, затем амплифицируют с помощью ПЦР. Фрагменты разделяют с помощью электрофореза ДНК. Полученную картину расположения полос ДНК и называют генетическим отпечатком пальцев (англ. genetic fingerprint).

Установление отцовства[править | править код]

Рис. 3: Результаты электрофореза ДНК-фрагментов, амплифицированных с помощью ПЦР. (1) Отец. (2) Ребенок. (3) Мать. Ребенок унаследовал некоторые особенности генетического отпечатка обоих родителей, что дало новый, уникальный отпечаток.

Хотя «генетические отпечатки пальцев» уникальны (за исключением случая однояйцевых близнецов), родственные связи все же можно установить, сделав несколько таких отпечатков (рис. 3). Тот же метод можно применить, слегка модифицировав его, для установления эволюционного родства среди организмов.

Медицинская диагностика[править | править код]

ПЦР дает возможность существенно ускорить и облегчить диагностику наследственных и вирусных заболеваний. Нужный ген амплифицируют с помощью ПЦР с использованием соответствующих праймеров, а затем секвенируют для определения мутаций. Вирусные инфекции можно обнаруживать сразу после заражения, за недели или месяцы до того, как проявятся симптомы заболевания.

Персонализированная медицина[править | править код]

Иногда лекарства оказываются токсичными или аллергенными для некоторых пациентов. Причины этого — отчасти в индивидуальных различиях в восприимчивости и метаболизме лекарств и их производных. Эти различия детерминируются на генетическом уровне. Например, у одного пациента определенный цитохром (белок печени, отвечающий за метаболизм чужеродных веществ) может быть более активен, у другого — менее. Для того, чтобы определить, какой разновидностью цитохрома обладает данный пациент, предложено проводить ПЦР-анализ перед применением лекарства.[?] Такой анализ называют предварительным генотипированием (англ. prospective genotyping).

Клонирование генов[править | править код]

Клонирование генов (не путать с клонированием организмов) — это процесс выделения генов и, в результате генноинженерных манипуляций, получения большого количества продукта данного гена. ПЦР используется для того, чтобы амплифицировать ген, который затем вставляется в вектор — фрагмент ДНК, переносящий чужеродный ген в тот же самый или другой, удобный для выращивания, организм. В качестве векторов используют, например, плазмиды или вирусную ДНК. Вставку генов в чужеродный организм обычно используют для получения продукта этого гена — РНК или, чаще всего, белка. Таким образом в промышленных количествах получают многие белки для использования в сельском хозяйстве, медицине и др.

Рис. 4: Клонирование гена с использованием плазмиды.
(1) Хромосомная ДНК организма A. (2) ПЦР. (3) Множество копий гена организма А. (4) Вставка гена в плазмиду. (5) Плазмида с геном организма А. (6) Введение плазмиды в организм В. (7) Умножение количества копий гена организма А в организме В.

Секвенирование ДНК[править | править код]

Icons-mini-icon 2main.png Основная статья: Секвенирование

В методе секвенирования с использованием меченых флуоресцентной меткой или радиоактивным изотопом дидезоксинуклеотидов ПЦР является неотъемлемой частью, так как именно в ходе полимеризации в цепь ДНК встраиваются производные нуклеотидов, меченые флуоресцентной или радиоактивной меткой. Это останавливает реакцию, позволяя определить положения специфических нуклеотидов после разделения синтезированных цепочек в геле.

Мутагенез[править | править код]

Icons-mini-icon 2main.png Основная статья: Мутагенез

В настоящее время ПЦР стала основным методом проведения мутагенеза (внесения изменений в нуклеотидную последовательность ДНК). Использование ПЦР позволило упростить и ускорить процедуру проведения мутагенеза, а также сделать её более надёжной и воспроизводимой.

См. также[править | править код]

Примечания[править | править код]

  1. Kleppe, K. et al. (1971): Studies on polynucleotides. XCVI. Repair replications of short synthetic DNA’s as catalyzed by DNA polymerases. In: J. Mol. Biol. Bd. 56, S. 341—361. PMID 4927950
  2. Saiki R.K., Scharf S., Faloona F., Mullis K.B., Horn G.T., Erlich H.A., Arnheim N. Science 1985 Dec 20; 230 (4732): 1350-4; Enzymatic amplification of beta-globin genomic sequences and restriction site analysis for diagnosis of sickle cell anemia.
  3. Нобелевские лауреаты по химии, 1993 г.(англ.)
  4. R. K. Saiki, D. H. Gelfand, S. Stoffel, S. J. Scharf, R. Higuchi, G. T. Horn, K. B. Mullis, H. A. Erlich. Primer-Directed Enzymatic Amplification of DNA with a Thermostable DNA Polymerase. in: Science. 239.1988, 487—491. ISSN 0036-8075 PMID: 2448875
  5. Каледин А. С., Слюсаренко А. Г., Городецкий С. И. // Биохимия. — 1980. — T. 45. — C. 644—651.
  6. Alice Chien, David B.Edgar и John M. Trela. Deoxyribonucleic Acid Polymerase from Extreme Thermophilic Thermus aquaticus. Jourmal of Bacteriology, Sept. 1976, pp. 1550-1557.
  7. Roche — Roche announces settlement agreement with Promega
  8. 1 kbp (kilo base pair(англ.)) — 1 тысяча пар оснований, единица измерения длины ДНК
  9. Venter J, et al. (2001). «The sequence of the human genome». Science 291 (5507): 1304-51. PMID 11181995
  10. http://www.biofidal.com/biofidal2/cat/2/pyro.php
  11. Отжиг (англ. annealing) — гибридизация фрагментов ДНК
  12. Шпилька — внутримолекулярная самокомплементарная структура
  13. Димер — межмолекулярные структуры, образуемые праймерами друг с другом или сами с собой
  14. http://web.archive.org/web/20050526001155/http://www.dna-technology.ru/doc/DNA-Technology_PCR-base.pdf «Теоретические основы ПЦР» (PDF)

Литература[править | править код]

  1. Глик Б., Пастернак Дж. Молекулярная биотехнология. Принципы и применение. Пер. с англ. — М.: Мир, 2002. — 589 с., илл. — ISBN 5-03-003328-9
  2. Патрушев Л. И. Искусственные генетические системы. — М.: Наука, 2005. — В 2 т. — ISBN 5-02-033278-X
  3. Щелкунов С. Н. Генетическая инженерия. — Новосибирск: Сиб. унив. изд-во, 2004. — 496 с.; илл. — ISBN 5-94087-098-8

Ссылки[править | править код]