diff --git a/diagonalization/chase_diag.F90 b/diagonalization/chase_diag.F90 index 93081ba123ab1850b856a09cab9f9d98e77cd17f..a208d1f8d4263de5d792ddad4ac66c8d469eab10 100644 --- a/diagonalization/chase_diag.F90 +++ b/diagonalization/chase_diag.F90 @@ -38,7 +38,7 @@ IMPLICIT NONE CONTAINS - SUBROUTINE init_chase(mpi,dimension,input,atoms,kpts,noco,vacuum,banddos,l_real) + SUBROUTINE init_chase(mpi,dimension,atoms,kpts,noco,l_real) USE m_types USE m_types_mpi @@ -49,12 +49,9 @@ IMPLICIT NONE TYPE(t_mpi), INTENT(IN) :: mpi TYPE(t_dimension), INTENT(IN) :: dimension - TYPE(t_input), INTENT(IN) :: input TYPE(t_atoms), INTENT(IN) :: atoms TYPE(t_kpts), INTENT(IN) :: kpts TYPE(t_noco), INTENT(IN) :: noco - TYPE(t_vacuum), INTENT(IN) :: vacuum - TYPE(t_banddos), INTENT(IN) :: banddos LOGICAL, INTENT(IN) :: l_real @@ -63,11 +60,8 @@ IMPLICIT NONE IF (juDFT_was_argument("-diag:chase")) THEN nevd = min(dimension%neigd,dimension%nvd+atoms%nlotot) nexd = min(max(nevd/4, 45),dimension%nvd+atoms%nlotot-nevd) !dimensioning for workspace - chase_eig_id=open_eig(mpi%mpi_comm,DIMENSION%nbasfcn,nevd+nexd,kpts%nkpt,DIMENSION%jspd,atoms%lmaxd,& - atoms%nlod,atoms%ntype,atoms%nlotot,noco%l_noco,.TRUE.,l_real,noco%l_soc,.FALSE.,& - mpi%n_size,layers=vacuum%layers,nstars=vacuum%nstars,ncored=DIMENSION%nstd,& - nsld=atoms%nat,nat=atoms%nat,l_dos=banddos%dos.OR.input%cdinf,l_mcd=banddos%l_mcd,& - l_orb=banddos%l_orb) + chase_eig_id=open_eig(mpi%mpi_comm,DIMENSION%nbasfcn,nevd+nexd,kpts%nkpt,DIMENSION%jspd,& + noco%l_noco,.TRUE.,l_real,noco%l_soc,.FALSE.,mpi%n_size) END IF END SUBROUTINE init_chase diff --git a/eigen/eigen.F90 b/eigen/eigen.F90 index e648c6919cb9b51bcf2651cff57ea3a104453ead..6bc3b03641c9acf37e303847605a1eb51f472e6e 100644 --- a/eigen/eigen.F90 +++ b/eigen/eigen.F90 @@ -68,7 +68,7 @@ CONTAINS ! .. ! .. Scalar Arguments .. INTEGER,INTENT(IN) :: iter - INTEGER,INTENT(INOUT) :: eig_id + INTEGER,INTENT(IN) :: eig_id ! .. !-odim !+odim @@ -115,17 +115,10 @@ CONTAINS !IF (mpi%irank.EQ.0) CALL openXMLElementFormPoly('iteration',(/'numberForCurrentRun','overallNumber '/),(/iter,v%iter/),& ! RESHAPE((/19,13,5,5/),(/2,2/))) - eig_id=open_eig(& - mpi%mpi_comm,DIMENSION%nbasfcn,DIMENSION%neigd,kpts%nkpt,DIMENSION%jspd,atoms%lmaxd,& - atoms%nlod,atoms%ntype,atoms%nlotot,noco%l_noco,.TRUE.,l_real,noco%l_soc,.FALSE.,& - mpi%n_size,layers=vacuum%layers,nstars=vacuum%nstars,ncored=DIMENSION%nstd,& - nsld=atoms%nat,nat=atoms%nat,l_dos=banddos%dos.OR.input%cdinf,l_mcd=banddos%l_mcd,& - l_orb=banddos%l_orb) - - !---> set up and solve the eigenvalue problem - !---> loop over spins - !---> set up k-point independent t(l'm',lm) matrices - CALL mt_setup(atoms,sym,sphhar,input,noco,enpara,inden,v,mpi,results,DIMENSION,td,ud) + !---> set up and solve the eigenvalue problem + !---> loop over spins + !---> set up k-point independent t(l'm',lm) matrices + CALL mt_setup(atoms,sym,sphhar,input,noco,enpara,inden,v,mpi,results,DIMENSION,td,ud) neigBuffer = 0 results%neig = 0 diff --git a/force/geo.f90 b/force/geo.f90 index 086c072961d5d6a81330b9a84c3f4e405080ccc5..be66d194076bd9b6e25409017f453542d594c1cf 100644 --- a/force/geo.f90 +++ b/force/geo.f90 @@ -42,6 +42,7 @@ CONTAINS USE m_rinpXML USE m_winpXML USE m_init_wannier_defaults + USE m_xsf_io IMPLICIT NONE TYPE(t_oneD),INTENT(IN) :: oneD TYPE(t_cell),INTENT(IN) :: cell @@ -101,6 +102,7 @@ CONTAINS CHARACTER(LEN=20) :: filename REAL :: a1_temp(3),a2_temp(3),a3_temp(3) REAL :: scale_temp, dtild_temp + REAL :: forceAllAtoms(3,atoms%nat) CLASS(t_forcetheo),ALLOCATABLE:: forcetheo input=input_in atoms_new=atoms @@ -135,9 +137,33 @@ CONTAINS ENDDO istep = 1 - CALL bfgs(atoms%ntype,istep,istep0,forcetot,& - & zat,input%xa,input%thetad,input%epsdisp,input%epsforce,tote,& - & xold,y,h,tau0, lconv) + CALL bfgs(atoms%ntype,istep,istep0,forcetot,zat,input%xa,input%thetad,input%epsdisp,& + input%epsforce,tote,xold,y,h,tau0,lconv) + + !write out struct_force.xsf file + forceAllAtoms = 0.0 + na = 0 + DO itype=1,atoms%ntype + forcetot(:,itype)=MATMUL(cell%bmat,forcetot(:,itype))/tpi_const ! to inner coordinates + DO ieq = 1,atoms%neq(itype) + na = na + 1 + jop = sym%invtab(atoms%ngopr(na)) + IF (oneD%odi%d1) jop = oneD%ods%ngopr(na) + DO i = 1,3 + DO j = 1,3 + IF (.NOT.oneD%odi%d1) THEN + forceAllAtoms(i,na) = forceAllAtoms(i,na) + sym%mrot(i,j,jop) * forcetot(j,itype) + ELSE + forceAllAtoms(i,na) = forceAllAtoms(i,na) + oneD%ods%mrot(i,j,jop) * forcetot(j,itype) + END IF + END DO + END DO + forceAllAtoms(:,na) = MATMUL(cell%amat,forceAllAtoms(:,na)) ! to external coordinates + END DO + END DO + OPEN (55,file="struct_force.xsf",status='replace') + CALL xsf_WRITE_atoms(55,atoms,input%film,.false.,cell%amat,forceAllAtoms) + CLOSE (55) IF (lconv) THEN WRITE (6,'(a)') "Des woars!" diff --git a/global/constants.f90 b/global/constants.f90 index dabb7559fb51dd17a7690b519df669a402258de7..d1bedae9253307226d12f151a5ad492bf8ee5fae 100644 --- a/global/constants.f90 +++ b/global/constants.f90 @@ -24,6 +24,7 @@ MODULE m_constants INTEGER, PARAMETER :: POTDEN_TYPE_POTTOT = 1 ! 0 < POTDEN_TYPE <= 1000 ==> potential INTEGER, PARAMETER :: POTDEN_TYPE_POTCOUL = 2 INTEGER, PARAMETER :: POTDEN_TYPE_POTX = 3 + INTEGER, PARAMETER :: POTDEN_TYPE_POTYUK = 4 INTEGER, PARAMETER :: POTDEN_TYPE_DEN = 1001 ! 1000 < POTDEN_TYPE ==> density CHARACTER(2),DIMENSION(0:103),PARAMETER :: namat_const=(/& diff --git a/hybrid/hybrid.F90 b/hybrid/hybrid.F90 index d0736ea611e4fee9a7932e505d70733ef3205b6e..6aafc7a0a87b0d93841d8f864369c1723a513e67 100644 --- a/hybrid/hybrid.F90 +++ b/hybrid/hybrid.F90 @@ -1,7 +1,7 @@ MODULE m_calc_hybrid USE m_judft CONTAINS - SUBROUTINE calc_hybrid(hybrid,kpts,atoms,input,DIMENSION,mpi,noco,cell,vacuum,oneD,banddos,results,sym,xcpot,v,it ) + SUBROUTINE calc_hybrid(hybrid,kpts,atoms,input,DIMENSION,mpi,noco,cell,oneD,results,sym,xcpot,v,it ) USE m_types USE m_mixedbasis USE m_coulombmatrix @@ -17,9 +17,7 @@ CONTAINS TYPE(t_oneD),INTENT(IN) :: oneD TYPE(t_hybrid),INTENT(INOUT) :: hybrid TYPE(t_input),INTENT(IN) :: input - TYPE(t_vacuum),INTENT(IN) :: vacuum TYPE(t_noco),INTENT(IN) :: noco - TYPE(t_banddos),INTENT(IN) :: banddos TYPE(t_results),INTENT(INOUT):: results TYPE(t_sym),INTENT(IN) :: sym TYPE(t_cell),INTENT(IN) :: cell @@ -100,12 +98,8 @@ CONTAINS CALL timestart("Preparation for Hybrid functionals") CALL juDFT_WARN ("Hybrid functionals not working in this version") - eig_id=open_eig(& - mpi%mpi_comm,dimension%nbasfcn,dimension%neigd,kpts%nkpt,dimension%jspd,atoms%lmaxd,atoms%nlod,atoms%ntype,atoms%nlotot& - ,noco%l_noco,.FALSE.,sym%invs.AND..NOT.noco%l_noco,noco%l_soc,.FALSE.,& - mpi%n_size,layers=vacuum%layers,nstars=vacuum%nstars,ncored=DIMENSION%nstd,& - nsld=atoms%nat,nat=atoms%nat,l_dos=banddos%dos.OR.input%cdinf,l_mcd=banddos%l_mcd,& - l_orb=banddos%l_orb) + eig_id=open_eig(mpi%mpi_comm,dimension%nbasfcn,dimension%neigd,kpts%nkpt,dimension%jspd,& + noco%l_noco,.FALSE.,sym%invs.AND..NOT.noco%l_noco,noco%l_soc,.FALSE.,mpi%n_size) !construct the mixed-basis CALL timestart("generation of mixed basis") diff --git a/init/kptgen_hybrid.f b/init/kptgen_hybrid.f index ca96227a67b2f39bd385f47ab63d4e4c7b227dae..782008063fb95fe1d2018a5340d0ab2375169b74 100644 --- a/init/kptgen_hybrid.f +++ b/init/kptgen_hybrid.f @@ -118,8 +118,10 @@ pkpt( : ,kpts%nkpt3(2)+1, : ) = pkpt(:,1,:) pkpt( : , : ,kpts%nkpt3(3)+1) = pkpt(:,:,1) - IF(any(pkpt.eq.0)) - &STOP 'kptgen: Definition of pkpt-pointer failed.' + IF(any(pkpt.eq.0)) THEN + CALL juDFT_error('kptgen: Definition of pkpt-pointer failed.', + & calledby='kptgen_hybrid') + END IF iarr = 1 ldum = .false. DO i = 1,nkpt diff --git a/init/old_inp/fleur_init_old.F90 b/init/old_inp/fleur_init_old.F90 index 12917c219ef99747e7a464fa3345ad5df2828d38..cb999c7d230c17a9c3167dbc3a766b9c5f9c0af3 100644 --- a/init/old_inp/fleur_init_old.F90 +++ b/init/old_inp/fleur_init_old.F90 @@ -224,6 +224,7 @@ CONTAINS ALLOCATE(noel(atoms%ntype),atomTypeSpecies(atoms%ntype),speciesRepAtomType(atoms%ntype)) ALLOCATE(xmlElectronStates(29,atoms%ntype),xmlPrintCoreStates(29,atoms%ntype)) ALLOCATE(xmlCoreOccs(1,1,1),atoms%label(atoms%nat)) + ALLOCATE(hybrid%lcutm1(atoms%ntype),hybrid%lcutwf(atoms%ntype),hybrid%select1(4,atoms%ntype)) filename = 'inpConverted.xml' xmlElectronStates = noState_const xmlPrintCoreStates = .FALSE. @@ -234,7 +235,17 @@ CONTAINS noel(i) = namat_const(atoms%nz(i)) atomTypeSpecies(i) = i speciesRepAtomType(i) = i + + hybrid%lcutm1(iType) = 4 + hybrid%lcutwf(iType) = atoms%lmax(iType) - atoms%lmax(iType) / 10 + hybrid%select1(:,iType) = (/4, 0, 4, 2 /) END DO + hybrid%gcutm1 = input%rkmax - 0.5 + hybrid%tolerance1 = 1.0e-4 + hybrid%ewaldlambda = 3 + hybrid%lexp = 16 + hybrid%bands1 = max( nint(input%zelec)*10, 60 ) + numSpecies = SIZE(speciesRepAtomType) ALLOCATE(atoms%speciesName(numSpecies)) atoms%speciesName = '' diff --git a/inpgen/set_inp.f90 b/inpgen/set_inp.f90 index b1a2490d230cc91c2b80c364e78f3feace8b9a0f..822b548b7b442c5bf23cefd462fac80f7edf9d32 100644 --- a/inpgen/set_inp.f90 +++ b/inpgen/set_inp.f90 @@ -85,11 +85,8 @@ ! REAL, PARAMETER :: eps=0.00000001 ! .. !HF added for HF and hybrid functionals - REAL :: gcutm,tolerance REAL :: taual_hyb(3,atoms%nat) - INTEGER :: selct(4,atoms%ntype),lcutm(atoms%ntype) - INTEGER :: selct2(4,atoms%ntype) - INTEGER :: bands + INTEGER :: bands LOGICAL :: l_gamma INTEGER :: nkpt3(3) !HF @@ -149,7 +146,8 @@ input%pallst = .false. ; obsolete%lwb = .false. ; vacuum%starcoeff = .false. input%strho = .false. ; input%l_f = .false. ; atoms%l_geo(:) = .true. noco%l_noco = noco%l_ss ; input%jspins = 1 - input%itmax = 9 ; input%maxiter = 99 ; input%imix = 7 ; input%alpha = 0.05 ; input%minDistance = 0.0 + input%itmax = 9 ; input%maxiter = 99 ; input%imix = 7 ; input%alpha = 0.05 + input%preconditioning_param = 0.0 ; input%minDistance = 0.0 input%spinf = 2.0 ; obsolete%lepr = 0 ; input%coretail_lmax = 0 sliceplot%kk = 0 ; sliceplot%nnne = 0 ; vacuum%nstars = 0 ; vacuum%nstm = 0 input%isec1 = 99 ; nu = 5 ; vacuum%layerd = 1 ; iofile = 6 @@ -294,18 +292,9 @@ ENDIF !HF added for HF and hybrid functionals - gcutm = input%rkmax - 0.5 - tolerance = 1e-4 + hybrid%gcutm1 = input%rkmax - 0.5 + hybrid%tolerance1 = 1e-4 taual_hyb = atoms%taual - selct(1,:) = 4 - selct(2,:) = 0 - selct(3,:) = 4 - selct(4,:) = 2 - lcutm = 4 - selct2(1,:) = 4 - selct2(2,:) = 0 - selct2(3,:) = 4 - selct2(4,:) = 2 ALLOCATE(hybrid%lcutwf(atoms%ntype)) ALLOCATE(hybrid%lcutm1(atoms%ntype)) ALLOCATE(hybrid%select1(4,atoms%ntype)) @@ -318,25 +307,28 @@ hybrid%select1(3,:) = 4 hybrid%select1(4,:) = 2 bands = max( nint(input%zelec)*10, 60 ) - nkpt3 = (/ 4, 4, 4 /) l_gamma = .false. - IF ( l_hyb ) THEN - input%ellow = input%ellow - 2.0 - input%elup = input%elup + 10.0 - input%gw_neigd = bands - l_gamma = .true. + hybrid%l_hybrid = l_hyb + IF (l_hyb) THEN + input%ellow = input%ellow - 2.0 + input%elup = input%elup + 10.0 + input%gw_neigd = bands + l_gamma = .true. + IF(juDFT_was_argument("-old")) THEN + CALL juDFT_error('No hybrid functionals input for old input file implemented', calledby='set_inp') + END IF ELSE input%gw_neigd = 0 END IF !HF ! rounding - atoms%rmt(:) = real(NINT( atoms%rmt(:) * 100 ) / 100.) - atoms%dx(:) = real(NINT( atoms%dx(:) * 1000) / 1000.) - stars%gmax = real(NINT( stars%gmax * 10 ) / 10.) - input%rkmax = real(NINT( input%rkmax * 10 ) / 10.) - xcpot%gmaxxc = real(NINT( xcpot%gmaxxc * 10 ) / 10.) - gcutm = real(INT( gcutm * 10 ) / 10.) + atoms%rmt(:) = real(NINT(atoms%rmt(:) * 100 ) / 100.) + atoms%dx(:) = real(NINT(atoms%dx(:) * 1000) / 1000.) + stars%gmax = real(NINT(stars%gmax * 10 ) / 10.) + input%rkmax = real(NINT(input%rkmax * 10 ) / 10.) + xcpot%gmaxxc = real(NINT(xcpot%gmaxxc * 10 ) / 10.) + hybrid%gcutm1 = real(NINT(hybrid%gcutm1 * 10 ) / 10.) IF (input%film) THEN vacuum%dvac = real(NINT(vacuum%dvac*100)/100.) dtild = real(NINT(dtild*100)/100.) @@ -431,6 +423,17 @@ kpts%nkpt = kpts%nkpt3(1) * kpts%nkpt3(2) * kpts%nkpt3(3) END IF + IF (l_hyb) THEN + ! Changes for hybrid functionals + input%isec1 = 999 + namex = 'hse ' + input%frcor = .true. ; input%ctail = .false. ; atoms%l_geo = .false. + input%itmax = 15 ; input%maxiter = 25!; input%imix = 17 + IF (ANY(kpts%nkpt3(:).EQ.0)) kpts%nkpt3(:) = 4 + div(:) = kpts%nkpt3(:) + kpts%specificationType = 2 + END IF + IF(.NOT.juDFT_was_argument("-old")) THEN nkptOld = kpts%nkpt latnamTemp = cell%latnam @@ -444,12 +447,15 @@ IF(l_explicit) THEN ! kpts generation kpts%l_gamma = l_gamma - sym%symSpecType = 3 CALL kpoints(oneD,sym,cell,input,noco,banddos,kpts,l_kpts) kpts%specificationType = 3 + IF (l_hyb) kpts%specificationType = 2 + END IF + IF(l_explicit) THEN + sym%symSpecType = 3 !set latnam to any cell%latnam = 'any' @@ -506,26 +512,23 @@ CLOSE (6) - IF (atoms%ntype.GT.999) THEN - WRITE(*,*) 'More than 999 atom types -> no conventional inp file generated!' - WRITE(*,*) 'Use inp.xml file instead!' - ELSE IF (juDFT_was_argument("-old")) THEN + IF (juDFT_was_argument("-old")) THEN + IF (atoms%ntype.GT.999) THEN + CALL juDFT_error('More than 999 atom types only work with the inp.xml input file',calledby='set_inp') + END IF IF (kpts%specificationType.EQ.4) THEN CALL juDFT_error('No k point set specification by density supported for old inp file',& calledby = 'set_inp') END IF - CALL rw_inp(& - & ch_rw,atoms,obsolete,vacuum,input,stars,sliceplot,banddos,& - & cell,sym,xcpot,noco,oneD,hybrid,kpts,& - & noel,namex,relcor,a1,a2,a3,dtild,input%comment) + CALL rw_inp(ch_rw,atoms,obsolete,vacuum,input,stars,sliceplot,banddos,& + cell,sym,xcpot,noco,oneD,hybrid,kpts,& + noel,namex,relcor,a1,a2,a3,dtild,input%comment) iofile = 6 OPEN (iofile,file='inp',form='formatted',status='old',position='append') - IF( l_hyb ) THEN - WRITE (iofile,FMT=9999) product(nkpt3),nkpt3,l_gamma - ELSE IF( (div(1) == 0).OR.(div(2) == 0) ) THEN + IF((div(1) == 0).OR.(div(2) == 0)) THEN WRITE (iofile,'(a5,i5)') 'nkpt=',kpts%nkpt ELSE WRITE (iofile,'(a5,i5,3(a4,i2))') 'nkpt=',kpts%nkpt,',nx=',div(1),',ny=',div(2),',nz=',div(3) @@ -534,34 +537,6 @@ CLOSE (iofile) END IF - iofile = 6 - -!HF create hybrid functional input file - IF ( l_hyb ) THEN - OPEN (iofile,file='inp_hyb',form='formatted',status='new',& - & iostat=iostat) - IF (iostat /= 0) THEN - STOP & - & 'Cannot create new file "inp_hyb". Maybe it already exists?' - ENDIF - ! Changes for hybrid functionals - input%strho = .false. ; input%isec1 = 999 - namex = 'hse ' - input%frcor = .true. ; input%ctail = .false. ; atoms%l_geo = .false. - input%itmax = 15 ; input%maxiter = 25 ; input%imix = 17 - CALL rw_inp(& - & ch_rw,atoms,obsolete,vacuum,input,stars,sliceplot,banddos,& - & cell,sym,xcpot,noco,oneD,hybrid,kpts,& - & noel,namex,relcor,a1,a2,a3,dtild,input%comment) - - IF ( ALL(div /= 0) ) nkpt3 = div - WRITE (iofile,FMT=9999) product(nkpt3),nkpt3,l_gamma -9999 FORMAT ( 'nkpt=',i5,',nx=',i2,',ny=',i2,',nz=',i2,',gamma=',l1) - CLOSE (iofile) - END IF ! l_hyb - - DEALLOCATE(hybrid%lcutwf) -!HF END SUBROUTINE set_inp END MODULE m_setinp diff --git a/io/eig66_da.F90 b/io/eig66_da.F90 index c0a1eea1582bb65d8edc3d6197fa79beffa1bbec..93e6c6c4e8c88d52d3be06e10e4126634bd11eba 100644 --- a/io/eig66_da.F90 +++ b/io/eig66_da.F90 @@ -34,15 +34,13 @@ CONTAINS END SELECT END SUBROUTINE priv_find_data - SUBROUTINE open_eig(id,nmat,neig,nkpts,jspins,lmax,nlo,ntype,nlotot,create,l_real,l_soc,l_dos,l_mcd,l_orb,filename,layers,nstars,ncored,nsld,nat) - INTEGER, INTENT(IN) :: id,nmat,neig,nkpts,jspins,nlo,ntype,lmax,nlotot + SUBROUTINE open_eig(id,nmat,neig,nkpts,jspins,create,l_real,l_soc,filename) + INTEGER, INTENT(IN) :: id,nmat,neig,nkpts,jspins LOGICAL, INTENT(IN) :: create,l_real,l_soc - LOGICAL,INTENT(IN),OPTIONAL :: l_dos,l_mcd,l_orb CHARACTER(LEN=*),INTENT(IN),OPTIONAL :: filename - INTEGER,INTENT(IN),OPTIONAL :: layers,nstars,ncored,nsld,nat !locals LOGICAL :: l_file - INTEGER :: i1,recl_z,recl_eig,recl_dos + INTEGER :: i1,recl_z,recl_eig REAL :: r1,r3(3) COMPLEX :: c1 TYPE(t_data_DA),POINTER:: d @@ -50,7 +48,7 @@ CONTAINS CALL priv_find_data(id,d) IF (PRESENT(filename)) d%fname=filename - CALL eig66_data_storedefault(d,jspins,nkpts,nmat,neig,lmax,nlotot,nlo,ntype,l_real,l_soc,l_dos,l_mcd,l_orb) + CALL eig66_data_storedefault(d,jspins,nkpts,nmat,neig,l_real,l_soc) !Calculate the record length @@ -67,28 +65,6 @@ CONTAINS d%recl_vec=recl_eig+recl_z - IF (d%l_dos) THEN - IF (.NOT.(PRESENT(layers).AND.PRESENT(nstars).AND.PRESENT(ncored).AND.PRESENT(nsld).AND.PRESENT(nat))) & - CALL judft_error("BUG:Could not open file for DOS-data",calledby="eig66_da") - INQUIRE(IOLENGTH=i1) i1 - recl_dos=i1*2*neig !ksym&jsym - INQUIRE(IOLENGTH=i1) r1 - recl_dos=recl_dos+i1*3*neig !qvac&qis - recl_dos=recl_dos+i1*4*ntype*neig !qal - recl_dos=recl_dos+i1*neig*2*max(1,layers) !qvlay - IF (l_orb) THEN - recl_dos=recl_dos+i1*2*nsld*neig !qintsl,qmtsl - recl_dos=recl_dos+i1*24*neig*nat !qmtp,orbcomp - ENDIF - INQUIRE(IOLENGTH=i1) c1 - recl_dos=recl_dos+i1*nstars*neig*max(1,layers)*2 !qstars - IF (l_mcd) recl_dos=recl_dos+i1*3*ntype*ncored*neig !mcd - ELSE - recl_dos=-1 - ENDIF - d%recl_dos=recl_dos - - IF (create) THEN INQUIRE(file=TRIM(d%fname),opened=l_file) DO WHILE(l_file) @@ -100,20 +76,11 @@ CONTAINS OPEN(d%file_io_id_vec,FILE=TRIM(d%fname),ACCESS='direct',FORM='unformatted',RECL=d%recl_vec,STATUS='unknown') d%file_io_id_wiks=priv_free_uid() OPEN(d%file_io_id_wiks,FILE=TRIM(d%fname)//".wiks",ACCESS='direct',FORM='unformatted',RECL=d%recl_wiks,STATUS='unknown') - IF(d%recl_dos>0) THEN - d%file_io_id_dos=priv_free_uid() - OPEN(d%file_io_id_dos,FILE=TRIM(d%fname)//".dos",ACCESS='direct',FORM='unformatted',RECL=d%recl_dos,STATUS='unknown') - ENDIF - ELSE d%file_io_id_vec=priv_free_uid() OPEN(d%file_io_id_vec,FILE=TRIM(d%fname),ACCESS='direct',FORM='unformatted',RECL=d%recl_vec,STATUS='old') d%file_io_id_wiks=priv_free_uid() OPEN(d%file_io_id_wiks,FILE=TRIM(d%fname)//".wiks",ACCESS='direct',FORM='unformatted',RECL=d%recl_wiks,STATUS='old') - IF(d%recl_dos>0) THEN - d%file_io_id_dos=priv_free_uid() - OPEN(d%file_io_id_dos,FILE=TRIM(d%fname)//".dos",ACCESS='direct',FORM='unformatted',RECL=d%recl_dos,STATUS='old') - ENDIF ENDIF CONTAINS INTEGER FUNCTION priv_free_uid() RESULT(uid) diff --git a/io/eig66_data.F90 b/io/eig66_data.F90 index 322ad87d82db47145f2e08d7752e78bd6a00ac7a..707823f65e38488275d971e56d34980e73f75978 100644 --- a/io/eig66_data.F90 +++ b/io/eig66_data.F90 @@ -13,31 +13,25 @@ module m_eig66_data TYPE :: t_data INTEGER:: io_mode - INTEGER:: jspins,nkpts,nmat,neig,lmax,nlotot,nlo,ntype - LOGICAL:: l_dos,l_mcd,l_orb,l_real,l_soc + INTEGER:: jspins,nkpts,nmat,neig,nlo,ntype + LOGICAL:: l_real,l_soc END TYPE TYPE,EXTENDS(t_data):: t_data_DA - INTEGER :: recl_vec=0,recl_dos,recl_wiks + INTEGER :: recl_vec=0,recl_wiks CHARACTER(LEN=20) :: fname="eig" - INTEGER :: file_io_id_vec,file_io_id_dos,file_io_id_wiks + INTEGER :: file_io_id_vec,file_io_id_wiks END TYPE TYPE,extends(t_data):: t_data_MPI INTEGER :: n_size=1 - INTEGER :: size_k,size_el,size_ello,size_eig + INTEGER :: size_k,size_eig INTEGER :: eig_handle,zr_handle,zc_handle,neig_handle,w_iks_handle - INTEGER :: qal_handle,qvac_handle,qis_handle,qvlay_handle,qintsl_handle,qmtsl_handle - INTEGER :: qmtp_handle,orbcomp_handle,qstars_handle,mcd_handle,jsym_handle,ksym_handle INTEGER,ALLOCATABLE :: pe_basis(:,:),slot_basis(:,:) INTEGER,ALLOCATABLE :: pe_ev(:,:,:),slot_ev(:,:,:) INTEGER :: irank INTEGER,POINTER :: neig_data(:) REAL,POINTER :: eig_data(:),zr_data(:), w_iks_data(:) - REAL,POINTER :: qal_data(:),qvac_data(:),qis_data(:),qvlay_data(:) - REAL,POINTER :: qintsl_data(:),qmtsl_data(:),qmtp_data(:),orbcomp_data(:),mcd_data(:) - COMPLEX,POINTER :: qstars_data(:) - INTEGER,POINTER :: jsym_data(:),ksym_data(:) COMPLEX,POINTER :: zc_data(:) END TYPE TYPE,EXTENDS(t_data):: t_data_hdf @@ -45,9 +39,6 @@ module m_eig66_data INTEGER(HID_T) :: fid INTEGER(HID_T) :: neigsetid INTEGER(HID_T) :: energysetid,wikssetid,evsetid - INTEGER(HID_T) :: qalsetid,qvacsetid,qissetid,qvlaysetid - INTEGER(HID_T) :: qstarssetid,ksymsetid,jsymsetid,mcdsetid - INTEGER(HID_T) :: qintslsetid,qmtslsetid,qmtpsetid,orbcompsetid CHARACTER(LEN=20) :: fname="eig" #endif END TYPE @@ -57,18 +48,6 @@ module m_eig66_data REAL,ALLOCATABLE :: eig_eig(:,:,:) REAL,ALLOCATABLE :: eig_vecr(:,:) COMPLEX,ALLOCATABLE :: eig_vecc(:,:) - REAL,ALLOCATABLE :: qal(:,:,:,:) - REAL,ALLOCATABLE :: qvac(:,:,:) - REAL,ALLOCATABLE :: qis(:,:) - REAL,ALLOCATABLE :: qvlay(:,:,:,:) - COMPLEX,ALLOCATABLE :: qstars(:,:,:,:,:) - INTEGER,ALLOCATABLE :: ksym(:,:) - INTEGER,ALLOCATABLE :: jsym(:,:) - REAL,ALLOCATABLE :: mcd(:,:,:,:) - REAL,ALLOCATABLE :: qintsl(:,:,:) - REAL,ALLOCATABLE :: qmtsl(:,:,:) - REAL,ALLOCATABLE :: qmtp(:,:,:) - REAL,ALLOCATABLE :: orbcomp(:,:,:,:) END TYPE TYPE t_list @@ -85,30 +64,16 @@ module m_eig66_data contains - subroutine eig66_data_storedefault(d,jspins,nkpts,nmat,neig,lmax,nlotot,nlo,ntype,l_real,l_soc,l_dos,l_mcd,l_orb) + subroutine eig66_data_storedefault(d,jspins,nkpts,nmat,neig,l_real,l_soc) CLASS(t_data)::d - INTEGER,INTENT(IN)::jspins,nkpts,nmat,neig,lmax,nlotot,nlo,ntype + INTEGER,INTENT(IN)::jspins,nkpts,nmat,neig LOGICAL,INTENT(IN):: l_real,l_soc - LOGICAL,INTENT(IN),OPTIONAL::l_dos,l_mcd,l_orb d%jspins=jspins d%nkpts=nkpts d%nmat=nmat d%neig=neig - d%lmax=lmax - d%nlotot=nlotot - d%nlo=nlo - d%ntype=ntype d%l_real=l_real d%l_soc=l_soc - if (present(l_dos)) THEN - d%l_dos=l_dos - d%l_mcd=l_mcd - d%l_orb=l_orb - else - d%l_dos=.false. - d%l_mcd=.false. - d%l_orb=.false. - endif END SUBROUTINE subroutine eig66_find_data(d,id,io_mode) diff --git a/io/eig66_hdf.F90 b/io/eig66_hdf.F90 index 58c2886cbf87587be6a9dee7b98d5d359aa22b00..3289b7e9fc120988208d1d0cfc6f55a172343169 100644 --- a/io/eig66_hdf.F90 +++ b/io/eig66_hdf.F90 @@ -57,7 +57,7 @@ CONTAINS END SELECT END SUBROUTINE priv_find_data !---------------------------------------------------------------------- - SUBROUTINE open_eig(id,mpi_comm,nmat,neig,nkpts,jspins,lmax,nlo,ntype,create,l_real,l_soc,nlotot,readonly,l_dos,l_mcd,l_orb,filename,layers,nstars,ncored,nsld,nat) + SUBROUTINE open_eig(id,mpi_comm,nmat,neig,nkpts,jspins,create,l_real,l_soc,readonly,filename) !***************************************************************** ! opens hdf-file for eigenvectors+values @@ -65,11 +65,9 @@ CONTAINS IMPLICIT NONE INTEGER, INTENT(IN) :: id,mpi_comm - INTEGER, INTENT(IN) :: nmat,neig,nkpts,jspins,nlo,ntype,lmax,nlotot + INTEGER, INTENT(IN) :: nmat,neig,nkpts,jspins LOGICAL, INTENT(IN) :: create,readonly,l_real,l_soc - LOGICAL, INTENT(IN),OPTIONAL ::l_dos,l_mcd,l_orb CHARACTER(LEN=*),OPTIONAL :: filename - INTEGER,INTENT(IN),OPTIONAL :: layers,nstars,ncored,nsld,nat #ifdef CPP_HDF @@ -97,7 +95,7 @@ CONTAINS #endif CALL priv_find_data(id,d) IF (PRESENT(filename)) d%fname=filename - CALL eig66_data_storedefault(d,jspins,nkpts,nmat,neig,lmax,nlotot,nlo,ntype,l_real,l_soc,l_dos,l_mcd,l_orb) + CALL eig66_data_storedefault(d,jspins,nkpts,nmat,neig,l_real,l_soc) !set access_flags according IF (readonly) THEN access_mode=H5F_ACC_RDONLY_F @@ -131,61 +129,6 @@ CONTAINS CALL h5screate_simple_f(5,dims(:5),spaceid,hdferr) CALL h5dcreate_f(d%fid, "ev", H5T_NATIVE_DOUBLE, spaceid, d%evsetid, hdferr) CALL h5sclose_f(spaceid,hdferr) - !stuff for dos etc - IF (d%l_dos) THEN - dims(:5)=(/4,ntype,neig,nkpts,jspins/) - CALL h5screate_simple_f(5,dims(:5),spaceid,hdferr) - CALL h5dcreate_f(d%fid, "qal", H5T_NATIVE_DOUBLE, spaceid, d%qalsetid, hdferr) - CALL h5sclose_f(spaceid,hdferr) - dims(:4)=(/neig,2,nkpts,jspins/) - CALL h5screate_simple_f(4,dims(:4),spaceid,hdferr) - CALL h5dcreate_f(d%fid, "qvac", H5T_NATIVE_DOUBLE, spaceid, d%qvacsetid, hdferr) - CALL h5sclose_f(spaceid,hdferr) - dims(:3)=(/neig,nkpts,jspins/) - CALL h5screate_simple_f(3,dims(:3),spaceid,hdferr) - CALL h5dcreate_f(d%fid, "qis", H5T_NATIVE_DOUBLE, spaceid, d%qissetid, hdferr) - CALL h5sclose_f(spaceid,hdferr) - dims(:5)=(/neig,layers,2,nkpts,jspins/) - CALL h5screate_simple_f(5,dims(:5),spaceid,hdferr) - CALL h5dcreate_f(d%fid, "qvlay", H5T_NATIVE_DOUBLE, spaceid, d%qvlaysetid, hdferr) - CALL h5sclose_f(spaceid,hdferr) - dims(:7)=(/2,nstars,neig,layers,2,nkpts,jspins/) - CALL h5screate_simple_f(7,dims(:7),spaceid,hdferr) - CALL h5dcreate_f(d%fid, "qstars", H5T_NATIVE_DOUBLE, spaceid, d%qstarssetid, hdferr) - CALL h5sclose_f(spaceid,hdferr) - dims(:3)=(/neig,nkpts,jspins/) - CALL h5screate_simple_f(3,dims(:3),spaceid,hdferr) - CALL h5dcreate_f(d%fid, "ksym", H5T_NATIVE_DOUBLE, spaceid, d%ksymsetid, hdferr) - CALL h5sclose_f(spaceid,hdferr) - dims(:3)=(/neig,nkpts,jspins/) - CALL h5screate_simple_f(3,dims(:3),spaceid,hdferr) - CALL h5dcreate_f(d%fid, "jsym", H5T_NATIVE_DOUBLE, spaceid, d%jsymsetid, hdferr) - CALL h5sclose_f(spaceid,hdferr) - IF (d%l_mcd) THEN - dims(:5)=(/3*ntype,ncored,neig,nkpts,jspins/) - CALL h5screate_simple_f(5,dims(:5),spaceid,hdferr) - CALL h5dcreate_f(d%fid, "mcd", H5T_NATIVE_DOUBLE, spaceid, d%mcdsetid, hdferr) - CALL h5sclose_f(spaceid,hdferr) - ENDIF - IF (d%l_orb) THEN - dims(:4)=(/nsld,neig,nkpts,jspins/) - CALL h5screate_simple_f(4,dims(:4),spaceid,hdferr) - CALL h5dcreate_f(d%fid, "qintsl", H5T_NATIVE_DOUBLE, spaceid, d%qintslsetid, hdferr) - CALL h5sclose_f(spaceid,hdferr) - dims(:4)=(/nsld,neig,nkpts,jspins/) - CALL h5screate_simple_f(4,dims(:4),spaceid,hdferr) - CALL h5dcreate_f(d%fid, "qmtsl", H5T_NATIVE_DOUBLE, spaceid, d%qmtslsetid, hdferr) - CALL h5sclose_f(spaceid,hdferr) - dims(:4)=(/neig,nat,nkpts,jspins/) - CALL h5screate_simple_f(4,dims(:4),spaceid,hdferr) - CALL h5dcreate_f(d%fid, "qmtp", H5T_NATIVE_DOUBLE, spaceid, d%qmtpsetid, hdferr) - CALL h5sclose_f(spaceid,hdferr) - dims(:5)=(/neig,23,nat,nkpts,jspins/) - CALL h5screate_simple_f(5,dims(:5),spaceid,hdferr) - CALL h5dcreate_f(d%fid, "orbcomp", H5T_NATIVE_DOUBLE, spaceid, d%orbcompsetid, hdferr) - CALL h5sclose_f(spaceid,hdferr) - ENDIF - ENDIF ELSE CALL h5fopen_f (TRIM(d%fname)//'.hdf', access_Mode, d%fid, hdferr,access_prp) !get dataset-ids @@ -193,24 +136,6 @@ CONTAINS CALL h5dopen_f(d%fid, 'w_iks', d%wikssetid, hdferr) CALL h5dopen_f(d%fid, 'neig', d%neigsetid, hdferr) CALL h5dopen_f(d%fid, 'ev', d%evsetid, hdferr) - IF (d%l_dos) THEN - CALL h5dopen_f(d%fid, 'qal', d%qalsetid, hdferr) - CALL h5dopen_f(d%fid, 'qvac', d%qvacsetid, hdferr) - CALL h5dopen_f(d%fid, 'qis', d%qissetid, hdferr) - CALL h5dopen_f(d%fid, 'qvlay', d%qvlaysetid, hdferr) - CALL h5dopen_f(d%fid, 'qstars', d%qstarssetid, hdferr) - CALL h5dopen_f(d%fid, 'ksym', d%ksymsetid, hdferr) - CALL h5dopen_f(d%fid, 'jsym', d%jsymsetid, hdferr) - IF (d%l_mcd) THEN - CALL h5dopen_f(d%fid, 'mcd', d%mcdsetid, hdferr) - ENDIF - IF (d%l_orb) THEN - CALL h5dopen_f(d%fid, 'qintsl', d%qintslsetid, hdferr) - CALL h5dopen_f(d%fid, 'qmtsl', d%qmtslsetid, hdferr) - CALL h5dopen_f(d%fid, 'qmtp', d%qmtpsetid, hdferr) - CALL h5dopen_f(d%fid, 'orbcomp', d%orbcompsetid, hdferr) - ENDIF - ENDIF endif IF (.NOT.access_prp==H5P_DEFAULT_f) CALL H5Pclose_f(access_prp& & ,hdferr) @@ -238,24 +163,6 @@ CONTAINS CALL h5dclose_f(d%wikssetid,hdferr) CALL h5dclose_f(d%neigsetid,hdferr) CALL h5dclose_f(d%evsetid,hdferr) - IF (d%l_dos) THEN - CALL h5dclose_f(d%qalsetid, hdferr) - CALL h5dclose_f(d%qvacsetid, hdferr) - CALL h5dclose_f(d%qissetid, hdferr) - CALL h5dclose_f(d%qvlaysetid, hdferr) - CALL h5dclose_f(d%qstarssetid, hdferr) - CALL h5dclose_f(d%ksymsetid, hdferr) - CALL h5dclose_f(d%jsymsetid, hdferr) - IF (d%l_mcd) THEN - CALL h5dclose_f(d%mcdsetid, hdferr) - ENDIF - IF (d%l_orb) THEN - CALL h5dclose_f(d%qintslsetid, hdferr) - CALL h5dclose_f(d%qmtslsetid, hdferr) - CALL h5dclose_f(d%qmtpsetid, hdferr) - CALL h5dclose_f(d%orbcompsetid, hdferr) - ENDIF - ENDIF !close file CALL h5fclose_f(d%fid,hdferr) !If a filename was given and the name is not the current filename diff --git a/io/eig66_io.F90 b/io/eig66_io.F90 index f888fed59b38c4ac432a412f5bdc15304811246e..b66d430146c11fb59c2696d767fc7cfad5b42a82 100644 --- a/io/eig66_io.F90 +++ b/io/eig66_io.F90 @@ -15,21 +15,18 @@ MODULE m_eig66_io PUBLIC read_eig, write_eig CONTAINS - FUNCTION open_eig(mpi_comm,nmat,neig,nkpts,jspins,lmax,nlo,ntype,nlotot,& - l_noco,l_create,l_real,l_soc,l_readonly,n_size,mode_in,& - filename,layers,nstars,ncored,nsld,nat,l_dos,l_mcd,l_orb)& + FUNCTION open_eig(mpi_comm,nmat,neig,nkpts,jspins,& + l_noco,l_create,l_real,l_soc,l_readonly,n_size,mode_in,filename)& RESULT(id) USE m_eig66_hdf,ONLY:open_eig_hdf=>open_eig USE m_eig66_DA ,ONLY:open_eig_DA=>open_eig USE m_eig66_mem,ONLY:open_eig_mem=>open_eig USE m_eig66_MPI,ONLY:open_eig_mpi=>open_eig IMPLICIT NONE - INTEGER,INTENT(IN) :: nmat,neig,nkpts,jspins,lmax,nlo,ntype,nlotot,mpi_comm + INTEGER,INTENT(IN) :: nmat,neig,nkpts,jspins,mpi_comm LOGICAL,INTENT(IN) :: l_noco,l_readonly,l_create,l_real,l_soc INTEGER,INTENT(IN),OPTIONAL :: n_size,mode_in - LOGICAL,INTENT(IN),OPTIONAL :: l_dos,l_mcd,l_orb CHARACTER(LEN=*),INTENT(IN),OPTIONAL :: filename - INTEGER,INTENT(IN),OPTIONAL :: layers,nstars,ncored,nsld,nat INTEGER:: id,mode INTEGER:: neig_local,isize,err @@ -73,13 +70,13 @@ CONTAINS CALL timestart("Open file/memory for IO of eig66") SELECT CASE (eig66_data_mode(id)) CASE (DA_mode) - CALL open_eig_DA(id,nmat,neig_local,nkpts,jspins,lmax,nlo,ntype,nlotot,l_create,l_real,l_soc,l_dos,l_mcd,l_orb,filename,layers,nstars,ncored,nsld,nat) + CALL open_eig_DA(id,nmat,neig_local,nkpts,jspins,l_create,l_real,l_soc,filename) CASE (hdf_mode) - CALL open_eig_HDF(id,mpi_comm,nmat,neig_local,nkpts,jspins,lmax,nlo,ntype,l_create,l_real,l_soc,nlotot,l_readonly,l_dos,l_mcd,l_orb,filename,layers,nstars,ncored,nsld,nat) + CALL open_eig_HDF(id,mpi_comm,nmat,neig_local,nkpts,jspins,l_create,l_real,l_soc,l_readonly,filename) CASE (mem_mode) - CALL open_eig_MEM(id,nmat,neig_local,nkpts,jspins,lmax,nlo,ntype,l_create,l_real,l_soc,nlotot,l_noco,l_dos,l_mcd,l_orb,filename,layers,nstars,ncored,nsld,nat) + CALL open_eig_MEM(id,nmat,neig_local,nkpts,jspins,l_create,l_real,l_soc,l_noco,filename) CASE (mpi_mode) - CALL open_eig_MPI(id,mpi_comm,nmat,neig_local,nkpts,jspins,lmax,nlo,ntype,l_create,l_real,l_soc,nlotot,l_noco,n_size,l_dos,l_mcd,l_orb,filename,layers,nstars,ncored,nsld,nat) + CALL open_eig_MPI(id,mpi_comm,nmat,neig_local,nkpts,jspins,l_create,l_real,l_soc,l_noco,n_size,filename) CASE DEFAULT CALL juDFT_error("Invalid IO-mode in eig66_io") END SELECT diff --git a/io/eig66_mem.F90 b/io/eig66_mem.F90 index 117dca67efbff264e19862dc1cc2d9d927189110..8b067566e14146446575047af4ecc75480b85b62 100644 --- a/io/eig66_mem.F90 +++ b/io/eig66_mem.F90 @@ -25,12 +25,10 @@ CONTAINS END SELECT END SUBROUTINE priv_find_data - SUBROUTINE open_eig(id,nmat,neig,nkpts,jspins,lmax,nlo,ntype,l_create,l_real,l_soc,nlotot,l_noco,l_dos,l_mcd,l_orb,filename,layers,nstars,ncored,nsld,nat) - INTEGER, INTENT(IN) :: id,nmat,neig,nkpts,jspins,nlo,ntype,lmax,nlotot + SUBROUTINE open_eig(id,nmat,neig,nkpts,jspins,l_create,l_real,l_soc,l_noco,filename) + INTEGER, INTENT(IN) :: id,nmat,neig,nkpts,jspins LOGICAL, INTENT(IN) :: l_noco,l_create,l_real,l_soc - LOGICAL,INTENT(IN),OPTIONAL::l_dos,l_mcd,l_orb CHARACTER(LEN=*),INTENT(IN),OPTIONAL :: filename - INTEGER,INTENT(IN),OPTIONAL :: layers,nstars,ncored,nsld,nat !locals INTEGER:: length TYPE(t_data_mem),POINTER:: d @@ -45,7 +43,7 @@ CONTAINS ENDIF - CALL eig66_data_storedefault(d,jspins,nkpts,nmat,neig,lmax,nlotot,nlo,ntype,l_real,l_soc,l_dos,l_mcd,l_orb) + CALL eig66_data_storedefault(d,jspins,nkpts,nmat,neig,l_real,l_soc) !d%eig_int ALLOCATE(d%eig_int(jspins*nkpts)) @@ -61,29 +59,13 @@ CONTAINS ALLOCATE(d%eig_vecc(nmat*neig,length*nkpts)) endif length=length*nkpts - IF (d%l_dos) THEN - ALLOCATE(d%qal(0:3,ntype,neig,length)) - ALLOCATE(d%qvac(neig,2,length)) - ALLOCATE(d%qis(neig,length)) - ALLOCATE(d%qvlay(neig,max(layers,1),2,length)) - ALLOCATE(d%qstars(nstars,neig,max(layers,1),2,length)) - ALLOCATE(d%ksym(neig,length)) - ALLOCATE(d%jsym(neig,length)) - IF (l_mcd) ALLOCATE(d%mcd(3*ntype,ncored,neig,length)) - IF (l_orb) THEN - ALLOCATE(d%qintsl(nsld,neig,length)) - ALLOCATE(d%qmtsl(nsld,neig,length)) - ALLOCATE(d%qmtp(neig,nat,length)) - ALLOCATE(d%orbcomp(neig,23,nat,length)) - ENDIF - ENDIF IF (PRESENT(filename)) CALL priv_readfromfile() CONTAINS SUBROUTINE priv_readfromfile() USE m_eig66_da,ONLY:open_eig_IO=>open_eig,read_eig_IO=>read_eig,close_eig_IO=>close_eig INTEGER:: jspin,nk,i,ii,iii,nv,tmp_id REAL :: wk,bk3(3),evac(2) - REAL :: eig(neig),w_iks(neig),ello(d%nlo,d%ntype),el(d%lmax,d%ntype) + REAL :: eig(neig),w_iks(neig) TYPE(t_mat):: zmat zmat%l_real=l_real @@ -92,8 +74,7 @@ CONTAINS ALLOCATE(zmat%data_r(nmat,neig),zmat%data_c(nmat,neig)) tmp_id=eig66_data_newid(DA_mode) - IF (d%l_dos) CPP_error("Can not read DOS-data") - CALL open_eig_IO(tmp_id,nmat,neig,nkpts,jspins,d%lmax,d%nlo,d%ntype,nlotot,.FALSE.,.FALSE.,l_real,l_soc,.FALSE.,.FALSE.,filename) + CALL open_eig_IO(tmp_id,nmat,neig,nkpts,jspins,.FALSE.,l_real,l_soc,filename) DO jspin=1,jspins DO nk=1,nkpts CALL read_eig_IO(tmp_id,nk,jspin,i,eig,w_iks,zmat=zmat) @@ -127,17 +108,16 @@ CONTAINS USE m_eig66_DA,ONLY:open_eig_DA=>open_eig,write_eig_DA=>write_eig,close_eig_DA=>close_eig IMPLICIT NONE - INTEGER:: nlotot,nk,jspin,nv,i,ii,tmp_id + INTEGER:: nk,jspin,nv,i,ii,tmp_id REAL :: wk,bk3(3),evac(2) - REAL :: eig(SIZE(d%eig_eig,1)),w_iks(SIZE(d%eig_eig,1)),ello(d%nlo,d%ntype),el(d%lmax,d%ntype) + REAL :: eig(SIZE(d%eig_eig,1)),w_iks(SIZE(d%eig_eig,1)) TYPE(t_mat)::zmat zmat%l_real=d%l_real zmat%matsize1=d%nmat zmat%matsize2=SIZE(d%eig_eig,1) ALLOCATE(zmat%data_r(d%nmat,SIZE(d%eig_eig,1)),zmat%data_c(d%nmat,SIZE(d%eig_eig,1))) tmp_id=eig66_data_newid(DA_mode) - IF (d%l_dos) CPP_error("Could not write DOS data") - CALL open_eig_DA(tmp_id,d%nmat,d%neig,d%nkpts,d%jspins,d%lmax,d%nlo,d%ntype,d%nlotot,.FALSE.,.FALSE.,d%l_real,d%l_soc,.FALSE.,.FALSE.,filename) + CALL open_eig_DA(tmp_id,d%nmat,d%neig,d%nkpts,d%jspins,.FALSE.,d%l_real,d%l_soc,filename) DO jspin=1,d%jspins DO nk=1,d%nkpts !TODO this code is no longer working diff --git a/io/eig66_mpi.F90 b/io/eig66_mpi.F90 index ef4b570fbfb6119bf8f9af055cb6664a4dbd7a1e..769aef8606bc1ba1135e703e7562348caf23a142 100644 --- a/io/eig66_mpi.F90 +++ b/io/eig66_mpi.F90 @@ -25,22 +25,20 @@ CONTAINS END SUBROUTINE priv_find_data - SUBROUTINE open_eig(id,mpi_comm,nmat,neig,nkpts,jspins,lmax,nlo,ntype,create,l_real,l_soc,nlotot,l_noco,n_size_opt,l_dos,l_mcd,l_orb,filename,layers,nstars,ncored,nsld,nat) + SUBROUTINE open_eig(id,mpi_comm,nmat,neig,nkpts,jspins,create,l_real,l_soc,l_noco,n_size_opt,filename) USE,INTRINSIC::iso_c_binding IMPLICIT NONE - INTEGER, INTENT(IN) :: id,mpi_comm,nmat,neig,nkpts,jspins,nlo,ntype,lmax,nlotot + INTEGER, INTENT(IN) :: id,mpi_comm,nmat,neig,nkpts,jspins LOGICAL, INTENT(IN) :: l_noco,create,l_real,l_soc INTEGER,INTENT(IN),OPTIONAL:: n_size_opt - LOGICAL,INTENT(IN),OPTIONAL ::l_dos,l_mcd,l_orb CHARACTER(LEN=*),INTENT(IN),OPTIONAL :: filename - INTEGER,INTENT(IN),OPTIONAL :: layers,nstars,ncored,nsld,nat #ifdef CPP_MPI INTEGER:: isize,e,slot_size,local_slots INTEGER,PARAMETER::mcored=27 !there should not be more that 27 core states TYPE(t_data_MPI),POINTER :: d CALL priv_find_data(id,d) - CALL eig66_data_storedefault(d,jspins,nkpts,nmat,neig,lmax,nlotot,nlo,ntype,l_real.and..not.l_soc,l_soc,l_dos,l_mcd,l_orb) + CALL eig66_data_storedefault(d,jspins,nkpts,nmat,neig,l_real.and..not.l_soc,l_soc) IF (PRESENT(n_size_opt)) d%n_size=n_size_opt IF (ALLOCATED(d%pe_ev)) THEN @@ -53,17 +51,6 @@ CONTAINS else d%zc_data=0.0 endif - d%qal_data=0.0 - d%qvac_data=0.0 - d%qvlay_data=0.0 - d%qstars_data=0.0 - d%ksym_data=0.0 - d%jsym_data=0.0 - d%mcd_data=0.0 - d%qintsl_data=0.0 - d%qmtsl_data=0.0 - d%qmtp_data=0.0 - d%orbcomp_data=0.0 ENDIF IF (PRESENT(filename)) CALL priv_readfromfile() RETURN !everything already done! @@ -99,28 +86,6 @@ CONTAINS else CALL priv_create_memory(slot_size,local_slots,d%zc_handle,cmplx_data_ptr=d%zc_data) endif - !Data for DOS etc - IF (d%l_dos) THEN - local_slots=COUNT(d%pe_basis==d%irank) - CALL priv_create_memory(4*ntype*neig,local_slots,d%qal_handle,real_data_ptr=d%qal_data) - CALL priv_create_memory(neig*2,local_slots,d%qvac_handle,real_data_ptr=d%qvac_data) - CALL priv_create_memory(neig,local_slots,d%qis_handle,real_data_ptr=d%qis_data) - CALL priv_create_memory(neig*max(1,layers)*2,local_slots,d%qvlay_handle,real_data_ptr=d%qvlay_data) - CALL priv_create_memory(max(1,nstars)*neig*max(1,layers)*2,local_slots,d%qstars_handle,cmplx_data_ptr=d%qstars_data) - CALL priv_create_memory(neig,local_slots,d%jsym_handle,d%jsym_data) - CALL priv_create_memory(neig,local_slots,d%ksym_handle,d%ksym_data) - IF (l_mcd) CALL priv_create_memory(3*ntype*mcored*neig,local_slots,d%mcd_handle,real_data_ptr=d%mcd_data) - IF (l_orb) THEN - CALL priv_create_memory(nsld*neig,local_slots,d%qintsl_handle,real_data_ptr=d%qintsl_data) - CALL priv_create_memory(nsld*neig,local_slots,d%qmtsl_handle,real_data_ptr=d%qmtsl_data) - CALL priv_create_memory(nat*neig,local_slots,d%qmtp_handle,real_data_ptr=d%qmtp_data) - CALL priv_create_memory(23*nat*neig,local_slots,d%orbcomp_handle,real_data_ptr=d%orbcomp_data) - ENDIF - ELSE - ALLOCATE(d%qal_data(1),d%qvac_data(1),d%qis_data(1),d%qvlay_data(1),d%qstars_data(1),& - d%jsym_data(1),d%ksym_data(1),d%mcd_data(1),d%qintsl_data(1),d%qmtsl_data(1),& - d%qmtp_data(1),d%orbcomp_data(1)) - ENDIF IF (PRESENT(filename).AND..NOT.create) CALL priv_readfromfile() CALL MPI_BARRIER(MPI_COMM,e) CALL timestop("create data spaces in ei66_mpi") @@ -177,7 +142,7 @@ CONTAINS USE m_eig66_DA,ONLY:open_eig_DA=>open_eig,read_eig_DA=>read_eig,close_eig_da=>close_eig INTEGER:: jspin,nk,i,ii,iii,nv,tmp_id REAL :: wk,bk3(3),evac(2) - REAL :: eig(neig),w_iks(neig),ello(nlo,ntype),el(lmax,ntype) + REAL :: eig(neig),w_iks(neig) TYPE(t_zmat)::zmat zmat%l_real=d%l_real zmat%nbasfcn=nmat @@ -186,8 +151,7 @@ CONTAINS !only do this with PE=0 IF (d%irank==0) THEN tmp_id=eig66_data_newid(DA_mode) - IF (d%l_dos) CPP_error("Could not read DOS data") - CALL open_eig_DA(tmp_id,nmat,neig,nkpts,jspins,lmax,nlo,ntype,nlotot,.FALSE.,.FALSE.,d%l_real,l_soc,.FALSE.,.FALSE.,filename) + CALL open_eig_DA(tmp_id,nmat,neig,nkpts,jspins,.FALSE.,d%l_real,l_soc,filename) DO jspin=1,jspins DO nk=1,nkpts !CALL read_eig_DA(tmp_id,nk,jspin,nv,i,bk3,wk,ii,eig,w_iks,el,ello,evac,zmat=zmat) @@ -216,20 +180,18 @@ CONTAINS USE m_eig66_DA,ONLY:open_eig_DA=>open_eig,write_eig_DA=>write_eig,close_eig_DA=>close_eig IMPLICIT NONE - INTEGER:: nlotot,nk,jspin,nv,i,ii,tmp_id + INTEGER:: nk,jspin,nv,i,ii,tmp_id REAL :: wk,bk3(3),evac(2) - REAL :: eig(d%neig),w_iks(d%neig),ello(d%nlo,d%ntype),el(d%lmax,d%ntype) + REAL :: eig(d%neig),w_iks(d%neig) TYPE(t_zmat)::zmat zmat%l_real=d%l_real zmat%nbasfcn=d%nmat zmat%nbands=d%neig allocate(zmat%z_r(d%nmat,d%neig),zmat%z_c(d%nmat,d%neig)) - nlotot=d%nlotot IF (d%irank==0) THEN tmp_id=eig66_data_newid(DA_mode) - IF (d%l_dos) CPP_error("Could not write DOS data") - CALL open_eig_DA(tmp_id,d%nmat,d%neig,d%nkpts,d%jspins,d%lmax,d%nlo,d%ntype,d%nlotot,.FALSE.,.FALSE.,d%l_real,d%l_soc,.FALSE.,.FALSE.,filename) + CALL open_eig_DA(tmp_id,d%nmat,d%neig,d%nkpts,d%jspins,.FALSE.,d%l_real,d%l_soc,filename) DO jspin=1,d%jspins DO nk=1,d%nkpts !CALL read_eig(id,nk,jspin,nv,i,bk3,wk,ii,eig,w_iks,el,ello,evac,zmat=zmat) diff --git a/io/r_inpXML.F90 b/io/r_inpXML.F90 index 16098a4a3fc7483a7404f82aa2cab6d1f0e1836d..87ce6e7840489b94e2f5f3f3076e9d6c387a55a2 100644 --- a/io/r_inpXML.F90 +++ b/io/r_inpXML.F90 @@ -330,6 +330,7 @@ SUBROUTINE r_inpXML(& END SELECT input%alpha = evaluateFirstOnly(xmlGetAttributeValue('/fleurInput/calculationSetup/scfLoop/@alpha')) + input%preconditioning_param = evaluateFirstOnly(xmlGetAttributeValue('/fleurInput/calculationSetup/scfLoop/@preconditioning_param')) input%spinf = evaluateFirstOnly(xmlGetAttributeValue('/fleurInput/calculationSetup/scfLoop/@spinf')) ! Get parameters for core electrons @@ -1134,7 +1135,7 @@ SUBROUTINE r_inpXML(& END IF hybrid%l_hybrid=xcpot%is_hybrid() - IF (hybrid%l_hybrid) ALLOCATE(hybrid%lcutm1(atoms%ntype),hybrid%lcutwf(atoms%ntype),hybrid%select1(4,atoms%ntype)) + ALLOCATE(hybrid%lcutm1(atoms%ntype),hybrid%lcutwf(atoms%ntype),hybrid%select1(4,atoms%ntype)) obsolete%lwb=.FALSE. IF (xcpot%is_gga()) THEN @@ -1147,17 +1148,21 @@ SUBROUTINE r_inpXML(& END IF - !!! Hybrid stuff - numberNodes = xmlGetNumberOfNodes('/fleurInput/xcFunctional/hybridFunctional') + hybrid%gcutm1 = input%rkmax - 0.5 + hybrid%tolerance1 = 1.0e-4 + hybrid%ewaldlambda = 3 + hybrid%lexp = 16 + hybrid%bands1 = dimension%neigd + + numberNodes = xmlGetNumberOfNodes('/fleurInput/calculationSetup/prodBasis') IF (numberNodes==0) THEN - IF (hybrid%l_hybrid) CALL judft_error("Hybrid input missing in inp.xml") + IF (hybrid%l_hybrid) CALL judft_error("Mixed product basis input missing in inp.xml") ELSE - IF (.NOT.hybrid%l_hybrid) CALL judft_error("Hybrid parameters specified but no hybrid functional used") - hybrid%gcutm1=evaluateFirstOnly(xmlGetAttributeValue('/fleurInput/xcFunctional/hybridFunctional/@gcutm')) - hybrid%tolerance1=evaluateFirstOnly(xmlGetAttributeValue('/fleurInput/xcFunctional/hybridFunctional/@tolerance')) - hybrid%ewaldlambda=evaluateFirstOnly(xmlGetAttributeValue('/fleurInput/xcFunctional/hybridFunctional/@ewaldlambda')) - hybrid%lexp=evaluateFirstOnly(xmlGetAttributeValue('/fleurInput/xcFunctional/hybridFunctional/@lexp')) - hybrid%bands1=evaluateFirstOnly(xmlGetAttributeValue('/fleurInput/xcFunctional/hybridFunctional/@bands')) + hybrid%gcutm1=evaluateFirstOnly(xmlGetAttributeValue('/fleurInput/calculationSetup/prodBasis/@gcutm')) + hybrid%tolerance1=evaluateFirstOnly(xmlGetAttributeValue('/fleurInput/calculationSetup/prodBasis/@tolerance')) + hybrid%ewaldlambda=evaluateFirstIntOnly(xmlGetAttributeValue('/fleurInput/calculationSetup/prodBasis/@ewaldlambda')) + hybrid%lexp=evaluateFirstIntOnly(xmlGetAttributeValue('/fleurInput/calculationSetup/prodBasis/@lexp')) + hybrid%bands1=evaluateFirstIntOnly(xmlGetAttributeValue('/fleurInput/calculationSetup/prodBasis/@bands')) ENDIF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -1523,6 +1528,9 @@ SUBROUTINE r_inpXML(& END DO END DO !Hybrid functional stuff + hybrid%lcutm1(iType) = 4 + hybrid%lcutwf(iType) = atoms%lmax(iType) - atoms%lmax(iType) / 10 + hybrid%select1(:,iType) = (/4, 0, 4, 2 /) IF (hybrid%l_hybrid) THEN hybrid%lcutm1(iType)=lcutm hybrid%lcutwf(iType)=lcutwf diff --git a/io/rw_inp.f90 b/io/rw_inp.f90 index a46ca568420d53113b1fa1a7c8d30bed7b75d804..ec7f5c10a582e34c5f2cb4fe6d5fa192d050611d 100644 --- a/io/rw_inp.f90 +++ b/io/rw_inp.f90 @@ -563,17 +563,17 @@ IF( check .eq. ',' ) THEN READ (UNIT=5,FMT=8060,END=99,ERR=99) & - & input%itmax,input%maxiter,input%imix,input%alpha,input%spinf - WRITE (6,9180) input%itmax,input%maxiter,input%imix,input%alpha,input%spinf + & input%itmax,input%maxiter,input%imix,input%alpha,input%spinf + WRITE (6,9180) input%itmax,input%maxiter,input%imix,input%alpha,input%spinf 8060 FORMAT (6x,i2,9x,i3,6x,i2,7x,f6.2,7x,f6.2) ELSE READ (UNIT=5,FMT=8061,END=99,ERR=99) & - & input%itmax,input%maxiter,input%imix,input%alpha,input%spinf - WRITE (6,9180) input%itmax,input%maxiter,input%imix,input%alpha,input%spinf + & input%itmax,input%maxiter,input%imix,input%alpha,input%spinf + WRITE (6,9180) input%itmax,input%maxiter,input%imix,input%alpha,input%spinf 8061 FORMAT (6x,i3,9x,i3,6x,i2,7x,f6.2,7x,f6.2) END IF - + input%preconditioning_param = 0.0 chform = '(5x,l1,'//chntype//'f6.2)' ! chform = '(5x,l1,23f6.2)' diff --git a/io/w_inpXML.f90 b/io/w_inpXML.f90 index ad685f2e96b14c8f241e4b9797b8009215ad9b24..345bc593fd6b2b7988b33607cc361f7c4723e501 100644 --- a/io/w_inpXML.f90 +++ b/io/w_inpXML.f90 @@ -168,8 +168,8 @@ SUBROUTINE w_inpXML(& 110 FORMAT(' ') WRITE (fileNum,110) input%rkmax,stars%gmaxInit,xcpot%gmaxxc,input%gw_neigd -! - 120 FORMAT(' ') +! + 120 FORMAT(' ') SELECT CASE (input%imix) CASE (1) mixingScheme='straight' @@ -182,7 +182,7 @@ SUBROUTINE w_inpXML(& CASE DEFAULT mixingScheme='errorUnknownMixing' END SELECT - WRITE (fileNum,120) input%itmax,input%minDistance,input%maxiter,TRIM(mixingScheme),input%alpha,input%spinf + WRITE (fileNum,120) input%itmax,input%minDistance,input%maxiter,TRIM(mixingScheme),input%alpha,input%preconditioning_param,input%spinf ! 130 FORMAT(' ') @@ -196,6 +196,10 @@ SUBROUTINE w_inpXML(& 150 FORMAT(' ') WRITE (fileNum,150) noco%theta,noco%phi,noco%l_soc,noco%l_spav + IF (l_explicit.OR.hybrid%l_hybrid) THEN + 155 FORMAT(' ') + WRITE (fileNum,155) hybrid%gcutm1,hybrid%tolerance1,hybrid%ewaldlambda,hybrid%lexp,hybrid%bands1 + END IF IF (l_nocoOpt.OR.l_explicit) THEN 160 FORMAT(' ') + line = '' + WRITE(line,'(i0,1x,i0,1x,i0,1x,i0)') hybrid%select1(1:4,iAtomType) + WRITE (fileNum,315) hybrid%lcutm1(iAtomType), hybrid%lcutwf(iAtomType), TRIM(ADJUSTL(line)) + END IF + IF(ANY(xmlElectronStates(:,iAtomType).NE.noState_const)) THEN endCoreStates = 1 startCoreStates = 1 diff --git a/io/xml/FleurInputSchema.xsd b/io/xml/FleurInputSchema.xsd index 90c053ba75c8ef16878a58e166bd490de63d7377..b72a571bb5c75865196da51cb6449d2ed12524dc 100644 --- a/io/xml/FleurInputSchema.xsd +++ b/io/xml/FleurInputSchema.xsd @@ -44,6 +44,7 @@ + @@ -268,22 +269,19 @@ - - - - + + - @@ -335,7 +333,7 @@ - + @@ -360,7 +358,7 @@ - + @@ -539,6 +537,7 @@ + diff --git a/io/xml/FleurOutputSchema.xsd b/io/xml/FleurOutputSchema.xsd old mode 100644 new mode 100755 index 760fa784eb726c670521ed92ec12367f2717b561..d9f299a5bf4507ef98e935fcfaf79d0ded243784 --- a/io/xml/FleurOutputSchema.xsd +++ b/io/xml/FleurOutputSchema.xsd @@ -799,10 +799,11 @@ - - - - + + + + + diff --git a/io/xml/inputSchema.h.backup b/io/xml/inputSchema.h.backup deleted file mode 100644 index fc42d4db9c76df4de26797936666a4f0143c64de..0000000000000000000000000000000000000000 --- a/io/xml/inputSchema.h.backup +++ /dev/null @@ -1,3493 +0,0 @@ -unsigned char FleurInputSchema_xsd[] = { - 0x3c, 0x3f, 0x78, 0x6d, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x3d, 0x22, 0x31, 0x2e, 0x30, 0x22, 0x20, 0x65, 0x6e, 0x63, 0x6f, - 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x55, 0x54, 0x46, 0x2d, 0x38, 0x22, - 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x3d, - 0x22, 0x6e, 0x6f, 0x22, 0x3f, 0x3e, 0x0a, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x78, 0x6d, 0x6c, 0x6e, 0x73, - 0x3a, 0x78, 0x73, 0x64, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, - 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, - 0x32, 0x30, 0x30, 0x31, 0x2f, 0x58, 0x4d, 0x4c, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x22, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, - 0x22, 0x30, 0x2e, 0x32, 0x38, 0x22, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x6c, 0x65, 0x75, 0x72, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x6c, 0x6c, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, - 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, - 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, - 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x44, 0x65, 0x66, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x75, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x65, 0x6c, 0x6c, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x43, 0x65, 0x6c, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x78, 0x63, 0x46, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x58, 0x43, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x74, 0x6f, 0x6d, 0x53, 0x70, 0x65, - 0x63, 0x69, 0x65, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x41, 0x74, 0x6f, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, - 0x74, 0x6f, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x41, 0x74, 0x6f, 0x6d, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, - 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, - 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x09, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, - 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, - 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x66, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x68, 0x65, 0x6f, 0x72, 0x65, 0x6d, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6f, 0x72, 0x63, - 0x65, 0x74, 0x68, 0x65, 0x6f, 0x72, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x6c, 0x6c, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x66, 0x6c, 0x65, 0x75, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x46, 0x6c, 0x65, 0x75, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x30, 0x2e, - 0x32, 0x37, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3d, 0x22, 0x30, 0x2e, 0x32, 0x38, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x30, 0x2e, 0x32, 0x39, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x44, 0x65, - 0x66, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x75, 0x6e, 0x62, 0x6f, 0x75, - 0x6e, 0x64, 0x65, 0x64, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, - 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x43, 0x6f, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x43, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x6c, 0x6c, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x75, 0x74, 0x6f, 0x66, 0x66, - 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x43, 0x75, 0x74, - 0x6f, 0x66, 0x66, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x63, 0x66, 0x4c, 0x6f, 0x6f, 0x70, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x53, 0x43, 0x46, 0x4c, 0x6f, - 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, - 0x6f, 0x6e, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x43, - 0x6f, 0x72, 0x65, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x69, 0x73, 0x6d, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x69, - 0x73, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x62, 0x7a, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x42, - 0x5a, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, - 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x6f, 0x63, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x53, 0x4f, 0x43, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, - 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, - 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6e, 0x6f, - 0x63, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x4e, 0x6f, 0x63, 0x6f, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, - 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6f, 0x6e, 0x65, 0x44, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x4f, 0x6e, 0x65, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, - 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, - 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x65, 0x78, 0x70, 0x65, 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x73, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x45, 0x78, 0x70, 0x65, - 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, - 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, - 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x67, 0x65, - 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x47, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4f, 0x70, - 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, - 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, - 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, - 0x64, 0x61, 0x55, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4c, - 0x64, 0x61, 0x55, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, - 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, - 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x53, 0x70, 0x69, 0x72, 0x61, 0x6c, - 0x51, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x68, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x53, 0x70, 0x69, 0x6e, 0x53, 0x70, - 0x69, 0x72, 0x61, 0x6c, 0x51, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x65, - 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, - 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x45, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, - 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x45, - 0x6e, 0x65, 0x72, 0x67, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x6c, 0x6c, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x45, 0x6e, - 0x65, 0x72, 0x67, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, - 0x6c, 0x75, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x45, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x31, 0x30, 0x2e, - 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x7a, 0x73, 0x69, - 0x67, 0x6d, 0x61, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x30, 0x2e, - 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x69, 0x67, - 0x5f, 0x62, 0x5f, 0x31, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x30, - 0x2e, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x69, - 0x67, 0x5f, 0x62, 0x5f, 0x32, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, - 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x6c, 0x6f, - 0x74, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, - 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, - 0x6c, 0x6f, 0x74, 0x5f, 0x72, 0x68, 0x6f, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, - 0x22, 0x54, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x75, - 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, - 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, 0x69, 0x72, - 0x69, 0x63, 0x68, 0x6c, 0x65, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, - 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x56, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, - 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x4e, 0x6f, 0x63, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x71, 0x73, 0x73, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x33, - 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, - 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, - 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x71, 0x73, 0x63, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x44, 0x6f, 0x75, 0x62, 0x6c, - 0x65, 0x33, 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6c, 0x5f, 0x73, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x5f, 0x6d, 0x70, 0x65, - 0x72, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, - 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, - 0x6f, 0x6f, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, - 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x5f, - 0x64, 0x69, 0x73, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x73, 0x6f, 0x5f, 0x6f, - 0x70, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x54, 0x72, - 0x69, 0x70, 0x6c, 0x65, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, - 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x69, 0x78, 0x5f, - 0x62, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x30, 0x2e, 0x30, 0x22, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x68, 0x65, 0x74, 0x61, 0x4a, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6e, 0x73, 0x68, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4f, 0x6e, 0x65, 0x44, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x64, 0x31, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x4d, 0x4d, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x4d, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6d, 0x5f, 0x63, 0x79, 0x6c, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x68, 0x69, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x72, 0x6f, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x6e, 0x76, 0x73, 0x31, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, - 0x6f, 0x6f, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x7a, 0x72, - 0x66, 0x73, 0x31, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, - 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x43, 0x6f, 0x72, 0x65, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, - 0x6e, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x63, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x72, 0x63, 0x6f, - 0x72, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, - 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6b, 0x63, 0x72, 0x65, 0x6c, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x63, 0x6f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x6c, - 0x6d, 0x61, 0x78, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x43, 0x65, 0x6c, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x79, - 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x46, 0x69, 0x6c, - 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x53, 0x79, 0x6d, - 0x6d, 0x65, 0x74, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x73, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x62, 0x75, 0x6c, 0x6b, - 0x4c, 0x61, 0x74, 0x74, 0x69, 0x63, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x42, 0x75, 0x6c, 0x6b, 0x4c, 0x61, 0x74, 0x74, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x6d, 0x4c, 0x61, 0x74, - 0x74, 0x69, 0x63, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x46, 0x69, 0x6c, 0x6d, 0x4c, 0x61, 0x74, 0x74, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, - 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, - 0x70, 0x67, 0x72, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x53, 0x70, 0x67, 0x72, 0x70, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x6e, 0x76, 0x73, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, - 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x7a, 0x72, 0x66, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x53, 0x79, 0x6d, 0x6d, 0x65, - 0x74, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, - 0x72, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, - 0x22, 0x34, 0x38, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, - 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x73, 0x79, 0x6d, 0x4f, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x53, 0x79, 0x6d, 0x4f, 0x70, 0x4d, 0x61, 0x74, 0x72, 0x69, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4d, 0x61, 0x67, 0x6e, - 0x65, 0x74, 0x69, 0x73, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6a, 0x73, 0x70, 0x69, 0x6e, 0x73, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x53, 0x70, 0x69, 0x6e, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x5f, 0x6e, 0x6f, 0x63, 0x6f, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, - 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6c, 0x5f, 0x4a, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x77, 0x73, 0x70, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, - 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6c, 0x66, 0x6c, 0x69, 0x70, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, - 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, - 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x53, 0x70, 0x69, 0x6e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x6d, 0x69, - 0x6e, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x31, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, - 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x32, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, - 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x42, 0x75, 0x6c, 0x6b, 0x4c, 0x61, 0x74, 0x74, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x31, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x4c, 0x61, 0x74, 0x74, 0x69, 0x63, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, - 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x61, 0x32, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x4c, 0x61, 0x74, 0x74, 0x69, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4c, 0x61, 0x74, 0x74, - 0x69, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x72, 0x6f, 0x77, 0x2d, 0x31, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x32, 0x44, 0x56, 0x65, - 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x6f, 0x77, 0x2d, 0x32, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x32, 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4c, 0x61, - 0x74, 0x74, 0x69, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x62, 0x72, 0x61, - 0x76, 0x61, 0x69, 0x73, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x42, 0x72, 0x61, 0x76, 0x61, 0x69, - 0x73, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6c, 0x61, 0x74, 0x6e, 0x61, 0x6d, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x4c, 0x61, 0x74, 0x6e, 0x61, 0x6d, 0x45, 0x6e, 0x75, 0x6d, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x46, 0x69, 0x6c, 0x6d, - 0x4c, 0x61, 0x74, 0x74, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x31, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4c, 0x61, 0x74, 0x74, - 0x69, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x32, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4c, 0x61, 0x74, 0x74, 0x69, 0x63, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, - 0x6f, 0x77, 0x2d, 0x31, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x32, 0x44, 0x56, 0x65, 0x63, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x6f, 0x77, 0x2d, 0x32, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x32, 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x62, 0x72, 0x61, 0x76, 0x61, 0x69, 0x73, 0x4d, 0x61, 0x74, 0x72, 0x69, - 0x78, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x42, 0x72, 0x61, - 0x76, 0x61, 0x69, 0x73, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, - 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, - 0x72, 0x73, 0x3d, 0x22, 0x32, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x76, 0x61, 0x63, 0x75, 0x75, 0x6d, 0x45, 0x6e, 0x65, 0x72, 0x67, - 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x56, 0x61, 0x63, 0x75, 0x75, - 0x6d, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, - 0x74, 0x6e, 0x61, 0x6d, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x4c, 0x61, 0x74, 0x6e, 0x61, 0x6d, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, 0x56, 0x61, 0x63, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x64, 0x54, 0x69, 0x6c, 0x64, 0x61, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x4c, 0x61, 0x74, 0x74, 0x69, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, - 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x31, 0x2e, 0x30, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x56, 0x61, 0x63, 0x75, 0x75, - 0x6d, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x76, 0x61, 0x63, 0x75, 0x75, 0x6d, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x73, 0x70, 0x69, 0x6e, 0x55, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, - 0x70, 0x69, 0x6e, 0x44, 0x6f, 0x77, 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, - 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x42, 0x72, 0x61, - 0x76, 0x61, 0x69, 0x73, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x6f, 0x77, 0x2d, 0x31, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x33, 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x6f, 0x77, 0x2d, 0x32, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x33, 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x6f, 0x77, 0x2d, 0x33, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x33, 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x69, 0x74, 0x65, 0x6d, - 0x54, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x32, 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3d, 0x22, 0x32, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x33, 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3d, 0x22, 0x33, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x54, 0x72, 0x69, 0x70, 0x6c, - 0x65, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x70, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x5b, 0x46, 0x66, 0x54, 0x74, 0x5d, 0x5b, 0x46, 0x66, 0x54, 0x74, 0x5d, - 0x5b, 0x46, 0x66, 0x54, 0x74, 0x5d, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, - 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x44, 0x6f, - 0x75, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x64, 0x6f, 0x75, 0x62, - 0x6c, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x33, - 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, - 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x3d, 0x22, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x65, - 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x33, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x44, 0x6f, 0x75, 0x62, 0x6c, - 0x65, 0x34, 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, - 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3d, 0x22, 0x34, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x49, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x6c, - 0x69, 0x73, 0x74, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x53, 0x79, 0x6d, 0x4f, 0x70, 0x4d, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x72, 0x6f, 0x77, 0x2d, 0x31, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x34, 0x44, 0x56, 0x65, 0x63, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x72, 0x6f, 0x77, 0x2d, 0x32, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x34, 0x44, 0x56, 0x65, 0x63, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x72, 0x6f, 0x77, 0x2d, 0x33, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x34, 0x44, 0x56, 0x65, 0x63, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x58, 0x43, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, - 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x69, 0x62, 0x58, 0x43, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x58, 0x43, 0x4c, 0x69, 0x62, - 0x58, 0x43, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, - 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x78, 0x63, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x58, 0x43, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, - 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, - 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x67, 0x67, - 0x61, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x47, 0x47, 0x41, 0x50, 0x72, 0x69, 0x6e, - 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, - 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, - 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x79, 0x62, 0x72, - 0x69, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x48, 0x79, 0x62, 0x46, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x58, 0x43, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x76, 0x69, 0x73, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x72, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x48, 0x79, 0x62, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x67, 0x63, 0x75, 0x74, 0x6d, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x62, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x64, 0x6f, - 0x75, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x30, 0x2e, 0x30, 0x30, 0x30, 0x30, - 0x31, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x78, 0x70, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x31, 0x36, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x77, 0x61, 0x6c, 0x64, 0x6c, 0x61, 0x6d, - 0x62, 0x64, 0x61, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x22, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, - 0x33, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x58, 0x43, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x78, 0x2d, - 0x61, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3d, 0x22, 0x6d, 0x6a, 0x77, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x70, 0x7a, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x62, 0x68, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x77, 0x69, 0x67, 0x6e, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x68, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x76, 0x77, 0x6e, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x78, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x6c, 0x39, 0x31, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x70, 0x77, 0x39, 0x31, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, - 0x22, 0x70, 0x62, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x72, 0x70, 0x62, 0x65, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x52, 0x70, - 0x62, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3d, 0x22, 0x77, 0x63, 0x22, 0x2f, 0x3e, 0x0a, 0x09, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x50, - 0x42, 0x45, 0x73, 0x22, 0x2f, 0x3e, 0x0a, 0x09, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x70, 0x62, 0x65, - 0x30, 0x22, 0x2f, 0x3e, 0x0a, 0x09, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x68, 0x73, 0x65, 0x22, 0x2f, - 0x3e, 0x0a, 0x09, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x76, 0x68, 0x73, 0x65, 0x22, 0x2f, 0x3e, 0x0a, - 0x09, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3d, 0x22, 0x6c, 0x68, 0x73, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x09, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x68, 0x66, 0x22, 0x2f, 0x3e, 0x0a, 0x09, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x6c, 0x69, 0x62, 0x78, - 0x63, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x58, 0x43, 0x4c, 0x69, 0x62, 0x58, 0x43, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, - 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x58, 0x43, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x67, 0x72, 0x64, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6c, 0x77, 0x62, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6e, 0x64, 0x76, - 0x67, 0x72, 0x64, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x64, 0x73, 0x70, - 0x72, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, - 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x68, 0x6e, 0x67, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x64, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x47, 0x47, 0x41, 0x50, 0x72, 0x69, 0x6e, 0x74, - 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x69, 0x67, 0x67, 0x61, 0x63, 0x68, 0x6b, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x69, 0x64, 0x73, 0x70, 0x72, 0x73, 0x30, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x69, 0x64, 0x73, 0x70, 0x72, 0x73, 0x6c, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x69, 0x64, 0x73, 0x70, 0x72, 0x73, 0x69, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x69, 0x64, 0x73, 0x70, 0x72, 0x73, 0x76, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x64, 0x6f, 0x75, 0x62, - 0x6c, 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x41, 0x74, - 0x6f, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, - 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x75, 0x6e, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x53, 0x70, 0x65, 0x63, 0x69, 0x65, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x50, 0x72, 0x6f, 0x64, - 0x42, 0x61, 0x73, 0x69, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6c, 0x63, 0x75, 0x74, 0x6d, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, - 0x63, 0x75, 0x74, 0x77, 0x66, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x34, - 0x20, 0x30, 0x20, 0x34, 0x20, 0x32, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x5a, 0x65, - 0x72, 0x6f, 0x54, 0x6f, 0x4f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x3d, - 0x22, 0x78, 0x73, 0x64, 0x3a, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x22, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x63, 0x6c, 0x75, - 0x73, 0x69, 0x76, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x30, 0x2e, 0x30, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x6d, 0x61, 0x78, - 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x31, 0x2e, 0x30, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, - 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, - 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x64, 0x61, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, - 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x3d, 0x22, 0x46, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x6f, - 0x63, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x5a, 0x65, 0x72, 0x6f, 0x54, 0x6f, 0x4f, 0x6e, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x31, - 0x2e, 0x30, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6d, 0x74, 0x53, 0x70, 0x68, 0x65, 0x72, 0x65, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4d, 0x54, 0x53, 0x70, 0x68, - 0x65, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x43, 0x75, 0x74, - 0x6f, 0x66, 0x66, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x43, 0x75, 0x74, 0x6f, 0x66, 0x66, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, - 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, - 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x09, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, - 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x72, 0x6f, 0x64, 0x42, 0x61, - 0x73, 0x69, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x50, - 0x72, 0x6f, 0x64, 0x42, 0x61, 0x73, 0x69, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, - 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, - 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, - 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, - 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, - 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, - 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x45, 0x6c, - 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, - 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6e, 0x6f, 0x63, 0x6f, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x41, 0x74, - 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x6f, 0x63, 0x6f, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x34, 0x22, 0x20, 0x6d, 0x69, - 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x64, 0x61, 0x55, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4c, 0x64, 0x61, 0x55, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, - 0x73, 0x3d, 0x22, 0x75, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, - 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, - 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x6f, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4c, 0x4f, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, - 0x64, 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, - 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x30, - 0x2e, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x61, - 0x67, 0x4d, 0x6f, 0x6d, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x6c, 0x69, 0x70, - 0x53, 0x70, 0x69, 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x67, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x63, 0x61, 0x41, 0x64, - 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x64, 0x6f, 0x75, 0x62, 0x6c, - 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, - 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x41, 0x74, 0x6f, - 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, - 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x75, 0x6e, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x61, 0x74, 0x6f, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x41, 0x74, 0x6f, 0x6d, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x41, 0x74, - 0x6f, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x75, 0x6e, 0x62, 0x6f, 0x75, - 0x6e, 0x64, 0x65, 0x64, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x6c, 0x50, 0x6f, 0x73, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x41, 0x74, 0x6f, 0x6d, 0x50, 0x6f, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x61, 0x62, 0x73, 0x50, 0x6f, 0x73, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x41, 0x74, 0x6f, 0x6d, 0x50, 0x6f, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x6d, 0x50, 0x6f, 0x73, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x41, 0x74, 0x6f, 0x6d, 0x50, 0x6f, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, - 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, - 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6d, 0x74, 0x53, 0x70, 0x68, 0x65, 0x72, 0x65, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4d, 0x54, 0x53, 0x70, 0x68, - 0x65, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, - 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, - 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x74, 0x6f, 0x6d, 0x69, - 0x63, 0x43, 0x75, 0x74, 0x6f, 0x66, 0x66, 0x73, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x43, 0x75, - 0x74, 0x6f, 0x66, 0x66, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, - 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, - 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, - 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x6e, 0x65, - 0x72, 0x67, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x45, 0x6e, 0x65, - 0x72, 0x67, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, - 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, - 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, - 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, - 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6e, 0x6f, 0x63, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x41, 0x74, 0x6f, - 0x6d, 0x69, 0x63, 0x4e, 0x6f, 0x63, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, - 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x34, 0x22, 0x20, 0x6d, 0x69, 0x6e, - 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x64, 0x61, 0x55, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4c, 0x64, 0x61, 0x55, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, - 0x3d, 0x22, 0x75, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, - 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, - 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x6f, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4c, 0x4f, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, - 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, - 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6f, 0x72, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x6f, 0x74, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x44, 0x6f, 0x75, 0x62, 0x6c, - 0x65, 0x33, 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6d, 0x61, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x64, 0x6f, - 0x75, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x76, 0x63, 0x61, 0x41, 0x64, 0x64, 0x43, 0x68, 0x61, 0x72, - 0x67, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, - 0x64, 0x3a, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x75, 0x73, - 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, - 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x41, 0x74, 0x6f, 0x6d, 0x50, 0x6f, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x3d, 0x22, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x33, 0x44, 0x56, 0x65, - 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x61, 0x6e, 0x6e, - 0x69, 0x65, 0x72, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, - 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, - 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6f, 0x72, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, - 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x6f, 0x63, 0x6f, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x78, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, - 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x5f, 0x6d, 0x61, 0x67, 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, - 0x22, 0x30, 0x2e, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x4d, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x62, 0x65, 0x74, 0x61, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x62, 0x5f, - 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x78, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x62, 0x5f, - 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x79, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4d, 0x54, 0x53, 0x70, - 0x68, 0x65, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x67, 0x72, 0x69, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, - 0x6f, 0x67, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x43, 0x75, 0x74, 0x6f, 0x66, - 0x66, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6c, 0x6d, 0x61, 0x78, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x6e, 0x6f, 0x6e, - 0x73, 0x70, 0x68, 0x72, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x6d, 0x61, 0x78, - 0x41, 0x50, 0x57, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, - 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, - 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x6e, - 0x6f, 0x6e, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x4c, 0x64, 0x61, 0x55, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6c, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x55, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x4a, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, - 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x5f, 0x61, 0x6d, 0x66, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, - 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, - 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x72, 0x65, 0x6c, 0x61, 0x78, 0x58, 0x59, 0x5a, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x54, 0x72, 0x69, 0x70, 0x6c, - 0x65, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, - 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x3d, 0x22, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x33, - 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4c, 0x4f, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x79, 0x70, 0x65, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x45, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, - 0x6e, 0x75, 0x6d, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x41, 0x6e, - 0x67, 0x75, 0x6c, 0x61, 0x72, 0x4d, 0x6f, 0x6d, 0x65, 0x6e, 0x74, 0x75, - 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6e, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4d, 0x61, 0x69, 0x6e, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x75, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x65, 0x44, 0x65, 0x72, 0x69, 0x76, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, - 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x41, 0x6e, 0x67, - 0x75, 0x6c, 0x61, 0x72, 0x4d, 0x6f, 0x6d, 0x65, 0x6e, 0x74, 0x75, 0x6d, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x70, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x28, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x5b, 0x30, 0x2d, 0x39, - 0x5d, 0x28, 0x28, 0x28, 0x2d, 0x28, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x29, - 0x3f, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x29, 0x7c, 0x28, 0x2c, - 0x28, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x5b, 0x30, 0x2d, 0x39, - 0x5d, 0x29, 0x2b, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x3e, 0x20, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4d, 0x61, - 0x69, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x75, 0x6d, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x5b, 0x31, 0x2d, - 0x39, 0x5d, 0x28, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x28, 0x2c, - 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x28, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x29, - 0x3f, 0x29, 0x2a, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x45, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x53, 0x43, 0x4c, 0x4f, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x48, 0x45, 0x4c, 0x4f, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, - 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x43, 0x75, 0x74, 0x6f, 0x66, 0x66, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4b, 0x6d, - 0x61, 0x78, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, - 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x47, 0x6d, 0x61, 0x78, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x47, 0x6d, 0x61, 0x78, 0x58, 0x43, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6e, 0x75, 0x6d, 0x62, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x4e, 0x75, 0x6d, 0x42, 0x61, 0x6e, 0x64, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x4e, 0x75, 0x6d, 0x42, 0x61, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, - 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x6e, - 0x6f, 0x6e, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x61, 0x6c, - 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, - 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x42, 0x5a, 0x49, 0x6e, - 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x4d, 0x65, 0x73, 0x68, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x4b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x68, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4b, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6b, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x4b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x44, - 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x4b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x65, 0x6e, 0x73, - 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, - 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, - 0x6f, 0x6e, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x68, 0x69, - 0x73, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x6f, - 0x64, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x42, 0x5a, - 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, - 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x65, 0x72, 0x6d, 0x69, 0x53, 0x6d, - 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x65, 0x72, 0x6d, 0x69, 0x53, 0x6d, 0x65, - 0x61, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x53, - 0x4f, 0x43, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x74, 0x68, 0x65, 0x74, 0x61, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x68, 0x69, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x5f, 0x73, 0x6f, 0x63, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, - 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x73, 0x70, 0x61, 0x76, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6f, 0x66, 0x66, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, - 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x3d, 0x22, 0x54, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x73, 0x6f, 0x63, 0x36, 0x36, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x53, 0x43, - 0x46, 0x4c, 0x6f, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x69, 0x74, 0x6d, 0x61, 0x78, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, - 0x39, 0x39, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x61, - 0x78, 0x49, 0x74, 0x65, 0x72, 0x42, 0x72, 0x6f, 0x79, 0x64, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, - 0x6e, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x69, 0x6d, 0x69, 0x78, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x4d, 0x69, 0x78, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x75, 0x6d, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x32, 0x2e, - 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x70, 0x69, - 0x6e, 0x66, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, - 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x30, 0x2e, 0x30, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x69, 0x6e, 0x44, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, - 0x61, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x49, 0x74, 0x65, 0x72, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x56, 0x61, 0x63, 0x44, 0x4f, - 0x53, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, - 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, - 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x74, 0x61, 0x72, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, - 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6e, 0x73, 0x74, 0x61, 0x72, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6c, 0x6f, 0x63, 0x78, 0x31, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x6f, 0x63, - 0x79, 0x31, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, - 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x6f, 0x63, 0x78, 0x32, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6c, 0x6f, 0x63, 0x79, 0x32, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6e, 0x73, 0x74, 0x6d, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, - 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x50, 0x6c, 0x6f, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, - 0x70, 0x6c, 0x6f, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, - 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x70, 0x6c, 0x70, 0x6c, 0x6f, 0x74, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, - 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x43, 0x68, - 0x61, 0x72, 0x67, 0x65, 0x44, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x53, - 0x6c, 0x69, 0x63, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6e, 0x75, 0x6d, 0x6b, 0x70, 0x74, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, - 0x6e, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6d, 0x69, 0x6e, 0x45, 0x69, 0x67, 0x65, 0x6e, 0x76, 0x61, - 0x6c, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x78, 0x45, 0x69, 0x67, 0x65, - 0x6e, 0x76, 0x61, 0x6c, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6e, 0x6e, 0x6e, 0x65, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x61, 0x6c, 0x6c, 0x73, 0x74, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, - 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x47, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4f, - 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x5f, 0x66, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, - 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x78, 0x61, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, - 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x68, 0x65, 0x74, 0x61, 0x64, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x70, 0x73, 0x64, 0x69, 0x73, 0x70, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x65, 0x70, 0x73, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x71, 0x66, 0x69, 0x78, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4c, 0x64, 0x61, 0x55, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x5f, 0x6c, 0x69, 0x6e, 0x4d, 0x69, - 0x78, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, - 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x30, 0x2e, 0x30, 0x35, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x69, 0x78, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x31, 0x2e, - 0x30, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x70, - 0x69, 0x6e, 0x66, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, - 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x44, 0x4f, 0x53, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6e, 0x64, 0x69, 0x72, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x69, 0x6e, - 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x61, - 0x78, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, - 0x69, 0x67, 0x6d, 0x61, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4b, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6e, 0x78, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6e, 0x79, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6e, - 0x7a, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, - 0x3a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x67, 0x61, 0x6d, 0x6d, 0x61, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4b, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, - 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x75, 0x6e, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, - 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, - 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x67, 0x61, 0x6d, 0x6d, 0x61, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, - 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4b, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, - 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x75, 0x6e, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x20, 0x6d, 0x69, 0x6e, - 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4b, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x6f, - 0x73, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4b, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x44, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, 0x65, 0x6e, 0x58, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x64, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x64, 0x65, 0x6e, 0x59, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x64, 0x6f, 0x75, 0x62, 0x6c, - 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, - 0x65, 0x6e, 0x5a, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x67, 0x61, 0x6d, 0x6d, 0x61, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, - 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x3d, 0x22, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x33, 0x44, - 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, - 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x4b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, 0x44, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x33, 0x44, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x53, 0x70, - 0x69, 0x6e, 0x53, 0x70, 0x69, 0x72, 0x61, 0x6c, 0x51, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x71, 0x78, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x71, 0x79, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, - 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x71, 0x7a, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, 0x6e, 0x4e, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x45, 0x78, 0x70, 0x65, - 0x72, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x67, 0x77, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, - 0x6f, 0x74, 0x38, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, - 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, - 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x69, 0x67, 0x36, 0x36, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, - 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6c, 0x70, 0x72, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, - 0x22, 0x39, 0x39, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, - 0x73, 0x65, 0x63, 0x31, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, - 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x65, 0x63, - 0x76, 0x61, 0x72, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, - 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, - 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, - 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x63, 0x68, 0x6b, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, - 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x63, 0x64, 0x69, 0x6e, 0x66, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, - 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, - 0x69, 0x73, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, - 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, - 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, - 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x66, 0x6f, 0x72, 0x6d, 0x36, 0x36, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, - 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x65, 0x6f, 0x6e, 0x6c, 0x79, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x62, 0x6d, 0x74, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, - 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x43, 0x6f, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x64, - 0x67, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x65, 0x4b, 0x69, 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x74, 0x6f, 0x6d, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x6d, 0x61, 0x78, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x6e, 0x6f, 0x6e, - 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x65, 0x64, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x43, 0x6f, 0x72, 0x65, 0x53, 0x70, 0x65, - 0x63, 0x45, 0x64, 0x67, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x4d, 0x69, 0x6e, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x64, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x65, 0x4d, 0x61, 0x78, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x64, 0x6f, 0x75, 0x62, 0x6c, - 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6e, - 0x75, 0x6d, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, - 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x65, 0x72, - 0x62, 0x6f, 0x73, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, - 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x69, - 0x63, 0x43, 0x69, 0x72, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x69, 0x63, - 0x68, 0x72, 0x6f, 0x69, 0x73, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x6f, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, - 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x55, 0x70, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, - 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x57, 0x61, 0x6e, 0x6e, 0x69, 0x65, 0x72, 0x42, 0x61, 0x6e, - 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x69, 0x6e, 0x53, - 0x70, 0x69, 0x6e, 0x55, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x78, 0x73, 0x64, 0x3a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, - 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x78, 0x53, 0x70, 0x69, - 0x6e, 0x55, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x69, 0x6e, 0x53, 0x70, 0x69, 0x6e, 0x44, - 0x6f, 0x77, 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x78, 0x53, 0x70, 0x69, 0x6e, 0x44, - 0x6f, 0x77, 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, - 0x73, 0x64, 0x3a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x57, 0x61, 0x6e, 0x6e, 0x69, 0x65, 0x72, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x6c, 0x6c, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, - 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, - 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x62, 0x61, - 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x57, 0x61, 0x6e, 0x6e, 0x69, - 0x65, 0x72, 0x42, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, - 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, - 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6a, 0x6f, 0x62, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x6c, 0x6c, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, - 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, - 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x67, 0x77, 0x66, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, - 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, - 0x6f, 0x63, 0x67, 0x77, 0x66, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x62, 0x73, 0x43, 0x6f, - 0x6d, 0x66, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, - 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x74, 0x6f, 0x6d, 0x4c, 0x69, 0x73, - 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, - 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, - 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x74, 0x68, 0x65, 0x6f, 0x72, - 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4d, 0x41, 0x45, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x4d, 0x41, 0x45, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x53, 0x70, 0x69, - 0x72, 0x61, 0x6c, 0x44, 0x69, 0x73, 0x70, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x51, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x44, 0x4d, 0x49, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x44, - 0x4d, 0x49, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x4a, 0x69, 0x6a, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4a, - 0x69, 0x6a, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4d, 0x41, 0x45, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x68, 0x65, 0x74, 0x61, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x70, 0x68, 0x69, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, - 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x44, 0x4d, 0x49, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x6c, 0x6c, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, - 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, - 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x71, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x51, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x6c, 0x6c, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x74, 0x68, 0x65, 0x74, 0x61, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x68, - 0x69, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, - 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x4a, 0x69, 0x6a, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x6c, 0x6c, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, - 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, - 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x71, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x51, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x6c, 0x6c, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x68, - 0x65, 0x74, 0x61, 0x6a, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, - 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x51, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, - 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x75, 0x6e, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x71, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, - 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x61, 0x6c, 0x6c, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, - 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, - 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, - 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, - 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x4f, 0x66, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x44, 0x4f, 0x53, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, - 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, - 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x76, 0x61, 0x63, 0x75, 0x75, 0x6d, 0x44, 0x4f, 0x53, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x56, 0x61, 0x63, 0x44, 0x4f, 0x53, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, - 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x6c, 0x6f, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x50, 0x6c, 0x6f, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, - 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, - 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x68, 0x61, 0x72, - 0x67, 0x65, 0x44, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x53, 0x6c, 0x69, - 0x63, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x44, 0x65, 0x6e, 0x73, 0x69, 0x74, - 0x79, 0x53, 0x6c, 0x69, 0x63, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, - 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, - 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x53, 0x70, 0x65, - 0x63, 0x69, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, - 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, - 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, - 0x75, 0x6d, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x43, 0x6f, - 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, - 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x61, 0x6e, 0x6e, 0x69, 0x65, 0x72, 0x22, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x57, 0x61, 0x6e, 0x6e, 0x69, - 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, - 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, - 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x69, 0x63, 0x43, 0x69, 0x72, 0x63, - 0x75, 0x6c, 0x61, 0x72, 0x44, 0x69, 0x63, 0x68, 0x72, 0x6f, 0x69, 0x73, - 0x6d, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x4d, 0x61, 0x67, - 0x6e, 0x65, 0x74, 0x69, 0x63, 0x43, 0x69, 0x72, 0x63, 0x75, 0x6c, 0x61, - 0x72, 0x44, 0x69, 0x63, 0x68, 0x72, 0x6f, 0x69, 0x73, 0x6d, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x6c, 0x6c, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x64, 0x6f, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x62, 0x61, 0x6e, 0x64, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, - 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x76, 0x61, 0x63, 0x64, 0x6f, 0x73, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, - 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x73, 0x6c, 0x69, 0x63, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, - 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, - 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x72, 0x65, - 0x53, 0x70, 0x65, 0x63, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, - 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x61, 0x6e, 0x6e, 0x69, - 0x65, 0x72, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, - 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, - 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3d, 0x22, 0x46, 0x22, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x63, 0x64, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, 0x75, 0x72, 0x42, 0x6f, 0x6f, - 0x6c, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, - 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x45, 0x6c, 0x65, - 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x72, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x43, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x4f, - 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x69, - 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x56, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6d, 0x61, 0x78, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, - 0x75, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x20, 0x6d, - 0x69, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x73, 0x3d, 0x22, 0x30, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, - 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x63, 0x63, 0x75, 0x70, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x56, - 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x6c, 0x69, 0x73, - 0x74, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x43, 0x6f, 0x72, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x69, 0x74, 0x65, 0x6d, - 0x54, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x43, 0x6f, 0x72, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, - 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x45, 0x6c, - 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, - 0x6e, 0x75, 0x6d, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x73, 0x70, 0x69, 0x6e, 0x55, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, - 0x70, 0x69, 0x6e, 0x44, 0x6f, 0x77, 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, - 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x43, 0x6f, 0x72, 0x65, - 0x53, 0x70, 0x65, 0x63, 0x45, 0x64, 0x67, 0x65, 0x45, 0x6e, 0x75, 0x6d, - 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x4b, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x4c, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x4d, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x4e, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3d, 0x22, 0x4f, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x50, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4c, 0x61, 0x74, - 0x6e, 0x61, 0x6d, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, - 0x22, 0x61, 0x6e, 0x79, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x73, 0x71, 0x75, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x63, 0x2d, 0x62, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, - 0x22, 0x66, 0x63, 0x63, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x78, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x68, 0x78, 0x33, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, - 0x22, 0x62, 0x63, 0x63, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x63, 0x2d, 0x72, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x70, 0x2d, 0x72, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, - 0x22, 0x6f, 0x62, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x53, 0x70, 0x67, 0x72, - 0x70, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x3d, - 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x61, - 0x6e, 0x79, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3d, 0x22, 0x70, 0x31, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x70, 0x32, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x70, 0x6d, 0x79, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, - 0x22, 0x70, 0x67, 0x79, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x63, 0x6d, 0x79, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x70, 0x6d, 0x6d, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, - 0x22, 0x70, 0x6d, 0x67, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x70, 0x67, 0x67, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x63, 0x6d, 0x6d, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, - 0x22, 0x70, 0x34, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x70, 0x34, 0x6d, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x70, 0x34, 0x67, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x70, 0x33, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3d, 0x22, 0x70, 0x33, 0x6d, 0x31, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x70, 0x33, 0x31, 0x6d, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, - 0x22, 0x70, 0x36, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x70, 0x36, 0x6d, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x70, 0x6d, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x70, - 0x67, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3d, 0x22, 0x63, 0x6d, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4d, 0x69, 0x78, 0x69, - 0x6e, 0x67, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x67, 0x68, 0x74, 0x22, 0x2f, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x42, 0x72, 0x6f, - 0x79, 0x64, 0x65, 0x6e, 0x31, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x42, 0x72, 0x6f, 0x79, 0x64, 0x65, - 0x6e, 0x32, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3d, 0x22, 0x41, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, - 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, - 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, - 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x42, 0x5a, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x75, 0x6d, - 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x68, 0x69, 0x73, 0x74, 0x22, 0x2f, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x67, - 0x61, 0x75, 0x73, 0x73, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x74, 0x72, 0x69, 0x61, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, - 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x28, 0x31, 0x73, 0x31, 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x28, 0x32, 0x73, 0x31, - 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x28, 0x32, 0x70, 0x31, 0x2f, 0x32, 0x29, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x28, 0x32, 0x70, 0x33, 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x28, 0x33, 0x73, 0x31, - 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x28, 0x33, 0x70, 0x31, 0x2f, 0x32, 0x29, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x28, 0x33, 0x70, 0x33, 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x28, 0x33, 0x64, 0x33, - 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x28, 0x33, 0x64, 0x35, 0x2f, 0x32, 0x29, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x28, 0x34, 0x73, 0x31, 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x28, 0x34, 0x70, 0x31, - 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x28, 0x34, 0x70, 0x33, 0x2f, 0x32, 0x29, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x28, 0x34, 0x64, 0x33, 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x28, 0x34, 0x64, 0x35, - 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x28, 0x34, 0x66, 0x35, 0x2f, 0x32, 0x29, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x28, 0x34, 0x66, 0x37, 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x28, 0x35, 0x73, 0x31, - 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x28, 0x35, 0x70, 0x31, 0x2f, 0x32, 0x29, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x28, 0x35, 0x70, 0x33, 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x28, 0x35, 0x64, 0x33, - 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x28, 0x35, 0x64, 0x35, 0x2f, 0x32, 0x29, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x28, 0x35, 0x66, 0x35, 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x28, 0x35, 0x66, 0x37, - 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x28, 0x36, 0x73, 0x31, 0x2f, 0x32, 0x29, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x28, 0x36, 0x70, 0x31, 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x28, 0x36, 0x70, 0x33, - 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x28, 0x36, 0x64, 0x33, 0x2f, 0x32, 0x29, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x28, 0x36, 0x64, 0x35, 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x28, 0x37, 0x73, 0x31, - 0x2f, 0x32, 0x29, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4e, 0x6f, 0x62, 0x6c, 0x65, - 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x75, - 0x6d, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, - 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, - 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x5b, 0x48, 0x65, 0x5d, 0x22, - 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x5b, 0x4e, 0x65, 0x5d, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x5b, 0x41, 0x72, 0x5d, 0x22, 0x2f, 0x3e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, - 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x5b, 0x4b, - 0x72, 0x5d, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3d, 0x22, 0x5b, 0x58, 0x65, 0x5d, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, - 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x5b, 0x52, 0x6e, 0x5d, - 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, - 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x73, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x43, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x75, 0x6e, 0x69, 0x6f, - 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x73, 0x3d, 0x22, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x20, 0x4e, 0x6f, 0x62, - 0x6c, 0x65, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, - 0x6e, 0x75, 0x6d, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x3c, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x46, 0x6c, 0x65, - 0x75, 0x72, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x72, 0x65, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x46, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3d, 0x22, 0x66, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, 0x6e, 0x75, - 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x54, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x65, - 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x74, 0x22, 0x2f, 0x3e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x72, - 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, - 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x69, 0x6d, - 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x0a, 0x3c, 0x2f, - 0x78, 0x73, 0x64, 0x3a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3e, 0x0a -}; -unsigned int FleurInputSchema_xsd_len = 41880; diff --git a/io/xsf_io.f90 b/io/xsf_io.f90 index c8b8be93f74f319ca9640293eeb41ea3f70df4bd..cb1600840c768e9ef4c017a757dcd20b9cb3a612 100644 --- a/io/xsf_io.f90 +++ b/io/xsf_io.f90 @@ -15,7 +15,7 @@ MODULE m_xsf_io CONTAINS !<-- S:S: xsf_WRITE_atoms(fileno,film,amat,neq(:ntype),zatom(:ntype),pos) - SUBROUTINE xsf_WRITE_atoms(fileno,atoms,film,od,amat) + SUBROUTINE xsf_WRITE_atoms(fileno,atoms,film,od,amat,forceAllAtoms) !----------------------------------------------- ! Writes the crystal dimensions&atomic positions ! (last modified: 2004-00-00) D. Wortmann @@ -27,6 +27,7 @@ CONTAINS LOGICAL,INTENT(IN) :: film LOGICAL,INTENT(IN) :: od REAL,INTENT(IN) :: amat(3,3) + REAL, OPTIONAL, INTENT(IN) :: forceAllAtoms(3,atoms%nat) !> !<-- Locals INTEGER :: n,nn,na @@ -52,8 +53,11 @@ CONTAINS na = 1 DO n = 1,SIZE(atoms%neq) DO nn = 1,atoms%neq(n) - WRITE(fileno,'(i4,2x,3(f0.7,1x))') NINT(atoms%zatom(n)),& - & atoms%pos(:,na)*a0 + IF (PRESENT(forceAllAtoms)) THEN + WRITE(fileno,'(i4,2x,6(f0.7,1x))') NINT(atoms%zatom(n)),atoms%pos(:,na)*a0,forceAllAtoms(:,na)/a0 + ELSE + WRITE(fileno,'(i4,2x,3(f0.7,1x))') NINT(atoms%zatom(n)),atoms%pos(:,na)*a0 + END IF na=na+1 ENDDO ENDDO diff --git a/main/fleur.F90 b/main/fleur.F90 index 44a9e8e92ae522547aa8aae98fd71d0c7c5e44f5..ebc5a1a1fbed57ebe26ae53c6165b6193bc83c3f 100644 --- a/main/fleur.F90 +++ b/main/fleur.F90 @@ -76,7 +76,7 @@ CONTAINS ! Types, these variables contain a lot of data! TYPE(t_input) :: input - TYPE(t_field) :: field + TYPE(t_field) :: field, field2 TYPE(t_dimension):: DIMENSION TYPE(t_atoms) :: atoms TYPE(t_sphhar) :: sphhar @@ -104,7 +104,7 @@ CONTAINS ! .. Local Scalars .. INTEGER:: eig_id, archiveType INTEGER:: n,it,ithf - LOGICAL:: l_opti,l_cont,l_qfix, l_wann_inp + LOGICAL:: l_opti,l_cont,l_qfix, l_wann_inp, l_real REAL :: fermiEnergyTemp, fix #ifdef CPP_MPI INCLUDE 'mpif.h' @@ -112,13 +112,15 @@ CONTAINS #endif mpi%mpi_comm = mpi_comm - + CALL timestart("Initialization") CALL fleur_init(mpi,input,field,DIMENSION,atoms,sphhar,cell,stars,sym,noco,vacuum,forcetheo,& sliceplot,banddos,obsolete,enpara,xcpot,results,kpts,hybrid,& oneD,coreSpecInput,wann,l_opti) CALL timestop("Initialization") + if( input%preconditioning_param /= 0 .and. input%film ) call juDFT_error('Currently no preconditioner for films', calledby = 'fleur' ) + IF (l_opti) CALL optional(mpi,atoms,sphhar,vacuum,dimension,& stars,input,sym,cell,sliceplot,obsolete,xcpot,noco,oneD) @@ -134,10 +136,6 @@ CONTAINS !-Wannier -#ifdef CPP_CHASE - CALL init_chase(mpi,dimension,input,atoms,kpts,noco,vacuum,banddos,sym%invs.AND..NOT.noco%l_noco) -#endif - it = 0 ithf = 0 l_cont = ( it < input%itmax ) @@ -168,6 +166,14 @@ CONTAINS CALL vTemp%init(stars,atoms,sphhar,vacuum,DIMENSION%jspd,noco%l_noco,POTDEN_TYPE_POTTOT) ! Initialize potentials (end) + l_real=sym%invs.AND..NOT.noco%l_noco + eig_id=open_eig(mpi%mpi_comm,DIMENSION%nbasfcn,DIMENSION%neigd,kpts%nkpt,DIMENSION%jspd,& + noco%l_noco,.TRUE.,l_real,noco%l_soc,.FALSE.,mpi%n_size) + +#ifdef CPP_CHASE + CALL init_chase(mpi,dimension,atoms,kpts,noco,sym%invs.AND..NOT.noco%l_noco) +#endif + scfloop:DO WHILE (l_cont) it = it + 1 @@ -214,8 +220,8 @@ CONTAINS IF (hybrid%l_hybrid) THEN SELECT TYPE(xcpot) TYPE IS(t_xcpot_inbuild) - CALL calc_hybrid(hybrid,kpts,atoms,input,DIMENSION,mpi,noco,& - cell,vacuum,oneD,banddos,results,sym,xcpot,vTot,it) + CALL calc_hybrid(hybrid,kpts,atoms,input,DIMENSION,mpi,noco,& + cell,oneD,results,sym,xcpot,vTot,it) END SELECT ENDIF !#endif @@ -232,13 +238,13 @@ CONTAINS !---< gwf CALL timestart("generation of potential") - CALL vgen(hybrid,field,input,xcpot,DIMENSION, atoms,sphhar,stars,vacuum,& - sym,obsolete,cell, oneD,sliceplot,mpi ,results,noco,inDen,vTot,vx,vCoul) + CALL vgen( hybrid, field, input, xcpot, DIMENSION, atoms, sphhar, stars, vacuum, & + sym, obsolete, cell, oneD, sliceplot, mpi, results, noco, inDen, vTot, vx, & + vCoul ) CALL timestop("generation of potential") - #ifdef CPP_MPI CALL MPI_BARRIER(mpi%mpi_comm,ierr) #endif @@ -247,7 +253,6 @@ CONTAINS forcetheoloop:DO WHILE(forcetheo%next_job(it==input%itmax,noco)) - CALL timestart("generation of hamiltonian and diagonalization (total)") CALL timestart("eigen") vTemp = vTot @@ -414,19 +419,21 @@ CONTAINS CALL forcetheo%postprocess() CALL enpara%mix(mpi,atoms,vacuum,input,vTot%mt(:,0,:,:),vtot%vacz) - IF (mpi%irank.EQ.0) THEN - ! ----> mix input and output densities - CALL timestart("mixing") - CALL mix(stars,atoms,sphhar,vacuum,input,sym,cell,noco,oneD,hybrid,archiveType,inDen,outDen,results) - CALL timestop("mixing") - - WRITE (6,FMT=8130) it - WRITE (16,FMT=8130) it -8130 FORMAT (/,5x,'******* it=',i3,' is completed********',/,/) - WRITE(*,*) "Iteration:",it," Distance:",results%last_distance - CALL timestop("Iteration") - !+t3e - ENDIF ! mpi%irank.EQ.0 + field2 = field + ! ----> mix input and output densities + CALL timestart("mixing") + CALL mix( field2, xcpot, dimension, obsolete, sliceplot, mpi, & + stars, atoms, sphhar, vacuum, input, sym, cell, noco, & + oneD, hybrid, archiveType, inDen, outDen, results ) + CALL timestop("mixing") + + if( mpi%irank == 0 ) then + WRITE (6,FMT=8130) it + WRITE (16,FMT=8130) it +8130 FORMAT (/,5x,'******* it=',i3,' is completed********',/,/) + WRITE(*,*) "Iteration:",it," Distance:",results%last_distance + CALL timestop("Iteration") + end if ! mpi%irank.EQ.0 #ifdef CPP_MPI @@ -455,6 +462,9 @@ CONTAINS END DO scfloop ! DO WHILE (l_cont) IF (mpi%irank.EQ.0) CALL closeXMLElement('scfLoop') + + CALL close_eig(eig_id) + CALL juDFT_end("all done",mpi%irank) CONTAINS diff --git a/main/fleur_init.F90 b/main/fleur_init.F90 index eb7389272559d4202673a525bd70ece97fd5c607..5d4c18b1e74aebb48647a96699fd6a61deaf736c 100644 --- a/main/fleur_init.F90 +++ b/main/fleur_init.F90 @@ -250,6 +250,7 @@ CALL MPI_BCAST(input%jspins,1,MPI_INTEGER,0,mpi%mpi_comm,ierr) CALL MPI_BCAST(atoms%n_u,1,MPI_INTEGER,0,mpi%mpi_comm,ierr) CALL MPI_BCAST(atoms%lmaxd,1,MPI_INTEGER,0,mpi%mpi_comm,ierr) + call MPI_BCAST( input%preconditioning_param, 1, MPI_DOUBLE_PRECISION, 0, mpi%mpi_comm, ierr ) #endif CALL ylmnorm_init(atoms%lmaxd) ! diff --git a/main/mix.F90 b/main/mix.F90 index 96ac20d569a1dd9dbd60a076cadafb59d9b915eb..f54854ee15deb3e7603032dfd3e46eb3fb75d81f 100644 --- a/main/mix.F90 +++ b/main/mix.F90 @@ -3,285 +3,331 @@ ! This file is part of FLEUR and available as free software under the conditions ! of the MIT license as expressed in the LICENSE file in more detail. !-------------------------------------------------------------------------------- -MODULE m_mix +module m_mix - !************************************************************************* + !------------------------------------------------------------------------ ! mixing of charge densities or potentials: - ! IMIX= 0 : linear mixing - ! IMIX = 3 : BROYDEN'S FIRST METHOD - ! IMIX = 5 : BROYDEN'S SECOND METHOD - ! IMIX = 7 : GENERALIZED ANDERSEN METHOD - !************************************************************************ + ! IMIX = 0 : linear mixing + ! IMIX = 3 : Broyden's First method + ! IMIX = 5 : Broyden's Second method + ! IMIX = 7 : Generalized Anderson method + !------------------------------------------------------------------------ -CONTAINS +contains -SUBROUTINE mix(stars,atoms,sphhar,vacuum,input,sym,cell,noco,oneD,& - hybrid,archiveType,inDen,outDen,results) + subroutine mix( field, xcpot, dimension, obsolete, sliceplot, mpi, & + stars, atoms, sphhar, vacuum, input, sym, cell, noco, & + oneD, hybrid, archiveType, inDen, outDen, results ) #include"cpp_double.h" - USE m_juDFT - USE m_constants - USE m_cdn_io - USE m_broyd_io - USE m_brysh1 - USE m_stmix - USE m_broyden - USE m_broyden2 - USE m_brysh2 - USE m_metric - USE m_qfix - USE m_types - USE m_xmlOutput - USE m_umix - - IMPLICIT NONE - - TYPE(t_oneD),INTENT(IN) :: oneD - TYPE(t_hybrid),INTENT(IN) :: hybrid - TYPE(t_input),INTENT(IN) :: input - TYPE(t_vacuum),INTENT(IN) :: vacuum - TYPE(t_noco),INTENT(IN) :: noco - TYPE(t_sym),INTENT(IN) :: sym - TYPE(t_stars),INTENT(IN) :: stars - TYPE(t_cell),INTENT(IN) :: cell - TYPE(t_sphhar),INTENT(IN) :: sphhar - TYPE(t_atoms),INTENT(INOUT) :: atoms !n_u is modified temporarily - TYPE(t_potden),INTENT(INOUT) :: outDen - TYPE(t_results),INTENT(INOUT) :: results - TYPE(t_potden),INTENT(INOUT) :: inDen - INTEGER, INTENT(IN) :: archiveType - - !Local Scalars - REAL fix,intfac,vacfac - INTEGER i,imap,js - INTEGER mmap,mmaph,nmaph,nmap,mapmt,mapvac,mapvac2 - INTEGER iofl,n_u_keep - LOGICAL l_exist,l_ldaU, l_densityMatrixPresent, l_pot - - !Local Arrays - REAL dist(6) - REAL, ALLOCATABLE :: sm(:), fsm(:), fmMet(:), smMet(:) - CHARACTER(LEN=20) :: attributes(2) - COMPLEX :: n_mmpTemp(-3:3,-3:3,MAX(1,atoms%n_u),input%jspins) - - !External functions - REAL CPP_BLAS_sdot - EXTERNAL CPP_BLAS_sdot - - ! YM: I have exported 'vol' from outside, be aware - ! IF (film) THEN - ! vol = 2.0 * z1 * area - ! ELSE - ! vol = omtil - ! ENDIF - - l_densityMatrixPresent = ANY(inDen%mmpMat(:,:,:,:).NE.0.0) - - !In systems without inversions symmetry the interstitial star- - !coefficients are complex. Thus twice as many numbers have to be - !stored. - intfac = 2.0 - IF (sym%invs) intfac = 1.0 - - !The corresponding is true for the coeff. of the warping vacuum - !density depending on the two dimensional inversion. - vacfac = 2.0 - IF (sym%invs2) vacfac = 1.0 - - mmaph = intfac*stars%ng3 + atoms%ntype*(sphhar%nlhd+1)*atoms%jmtd +& - vacfac*vacuum%nmzxyd*(oneD%odi%n2d-1)*vacuum%nvac + vacuum%nmzd*vacuum%nvac - mmap = mmaph*input%jspins - !in a non-collinear calculations extra space is needed for the - !off-diag. part of the density matrix. these coeff. are generally - !complex independ of invs and invs2. - IF (noco%l_noco) THEN - mmap = mmap + 2*stars%ng3 + 2*vacuum%nmzxyd*(oneD%odi%n2d-1)*vacuum%nvac + & - 2*vacuum%nmzd*vacuum%nvac - END IF - - ! LDA+U (start) - n_mmpTemp = inDen%mmpMat - n_u_keep=atoms%n_u - IF (atoms%n_u.GT.0) CALL u_mix(input,atoms,inDen%mmpMat,outDen%mmpMat) - IF (l_densityMatrixPresent) THEN - !In an LDA+U caclulation, also the density matrix is included in the - !supervectors (sm,fsm) if no linear mixing is performed on it. - IF (input%ldauLinMix) THEN - atoms%n_u = 0 + use m_juDFT + use m_constants + use m_cdn_io + use m_broyd_io + use m_brysh1 + use m_stmix + use m_broyden + use m_broyden2 + use m_brysh2 + use m_metric + use m_qfix + use m_types + use m_xmlOutput + use m_umix + use m_vgen_coulomb +#ifdef CPP_MPI + use m_mpi_bc_potden +#endif + implicit none + + type(t_oneD), intent(in) :: oneD + type(t_hybrid), intent(in) :: hybrid + type(t_input), intent(in) :: input + type(t_vacuum), intent(in) :: vacuum + type(t_noco), intent(in) :: noco + type(t_sym), intent(in) :: sym + type(t_stars), intent(in) :: stars + type(t_cell), intent(in) :: cell + type(t_sphhar), intent(in) :: sphhar + type(t_field), intent(inout) :: field + class(t_xcpot), intent(in) :: xcpot + type(t_dimension), intent(in) :: dimension + type(t_obsolete), intent(in) :: obsolete + type(t_sliceplot), intent(in) :: sliceplot + type(t_mpi), intent(in) :: mpi + type(t_atoms), intent(inout) :: atoms !n_u is modified temporarily + type(t_potden), intent(inout) :: outDen + type(t_results), intent(inout) :: results + type(t_potden), intent(inout) :: inDen + integer, intent(in) :: archiveType + + real :: fix, intfac, vacfac + integer :: i, imap, js, n, lh + integer :: mmap, mmaph, nmaph, nmap, mapmt, mapvac, mapvac2 + integer :: iofl, n_u_keep + logical :: l_exist, l_ldaU, l_densityMatrixPresent, l_pot + real :: dist(6) + real, allocatable :: sm(:), fsm(:), fmMet(:), smMet(:) + character(len=20) :: attributes(2) + complex :: n_mmpTemp(-3:3,-3:3,max(1,atoms%n_u),input%jspins) + type(t_potden) :: resDen, vYukawa + integer :: ierr(2) + + !External functions + real :: CPP_BLAS_sdot + external :: CPP_BLAS_sdot + + ! YM: I have exported 'vol' from outside, be aware + ! IF (film) THEN + ! vol = 2.0 * z1 * area + ! ELSE + ! vol = omtil + ! ENDIF + + MPI0_a: if( mpi%irank == 0 ) then + + l_densityMatrixPresent = any( inDen%mmpMat(:,:,:,:) /= 0.0 ) + + !In systems without inversions symmetry the interstitial star- + !coefficients are complex. Thus twice as many numbers have to be + !stored. + intfac = 2.0 + if ( sym%invs ) intfac = 1.0 + + !The corresponding is true for the coeff. of the warping vacuum + !density depending on the two dimensional inversion. + vacfac = 2.0 + if ( sym%invs2 ) vacfac = 1.0 + + mmaph = intfac * stars%ng3 + atoms%ntype * ( sphhar%nlhd + 1 ) * atoms%jmtd + & + vacfac * vacuum%nmzxyd * ( oneD%odi%n2d - 1 ) * vacuum%nvac + vacuum%nmzd * vacuum%nvac + mmap = mmaph * input%jspins + !in a non-collinear calculations extra space is needed for the + !off-diag. part of the density matrix. these coeff. are generally + !complex independ of invs and invs2. + if ( noco%l_noco ) then + mmap = mmap + 2 * stars%ng3 + 2 * vacuum%nmzxyd * ( oneD%odi%n2d - 1 ) * vacuum%nvac + & + 2 * vacuum%nmzd * vacuum%nvac + end if + + ! LDA+U (start) + n_mmpTemp = inDen%mmpMat + n_u_keep = atoms%n_u + if ( atoms%n_u > 0 ) call u_mix( input, atoms, inDen%mmpMat, outDen%mmpMat ) + if ( l_densityMatrixPresent ) then + !In an LDA+U caclulation, also the density matrix is included in the + !supervectors (sm,fsm) if no linear mixing is performed on it. + if ( input%ldauLinMix ) then + atoms%n_u = 0 + else + mmap = mmap + 7 * 7 * 2 * atoms%n_u * input%jspins ! add 7*7 complex numbers per atoms%n_u and spin + end if + else + atoms%n_u = 0 + end if + ! LDA+U (end) + + allocate( sm(mmap), fsm(mmap) ) + allocate( smMet(mmap), fmMet(mmap) ) + dist(:) = 0.0 + + !determine type of mixing: + !imix=0:straight, imix=o broyden first, imix=5:broyden second + !imix=:generalozed anderson mixing + select case( input%imix ) + case( 0 ) + write( 16, fmt='(a,2f10.5)' ) 'STRAIGHT MIXING',input%alpha + case( 3 ) + write( 16, fmt='(a,f10.5)' ) 'BROYDEN FIRST MIXING',input%alpha + case( 5 ) + write( 16, fmt='(a,f10.5)' ) 'BROYDEN SECOND MIXING',input%alpha + case( 7 ) + write( 16, fmt='(a,f10.5)' ) 'ANDERSON GENERALIZED',input%alpha + case default + call juDFT_error( "mix: input%imix =/= 0,3,5,7 ", calledby ="mix" ) + end select + + if ( input%jspins == 2 .and. input%imix /= 0 ) then + write( 6, '(''WARNING : for QUASI-NEWTON METHODS SPINF=1'')' ) + end if + + !put input charge density into array sm + !(in the spin polarized case the arrays sm and fsm consist of spin up and spin down densities) + call brysh1( input, stars, atoms, sphhar, noco, vacuum, sym, oneD, & + intfac, vacfac, inDen, nmap, nmaph, mapmt, mapvac, mapvac2, sm ) + + !put output charge density into array fsm + call brysh1( input, stars, atoms, sphhar, noco, vacuum, sym, oneD, & + intfac, vacfac, outDen, nmap, nmaph, mapmt, mapvac, mapvac2, fsm ) + + !store the difference fsm - sm in fsm + fsm(:nmap) = fsm(:nmap) - sm(:nmap) + + l_pot = .false. + ! Apply metric w to fsm and store in fmMet: w |fsm> + call metric( cell, atoms, vacuum, sphhar, input, noco, stars, sym, oneD, & + mmap, nmaph, mapmt, mapvac2, fsm, fmMet, l_pot ) + + end if MPI0_a + + ! KERKER PRECONDITIONER + if( input%preconditioning_param /= 0 ) then + call resDen%init( stars, atoms, sphhar, vacuum, input%jspins, noco%l_noco, 1001 ) + call vYukawa%init( stars, atoms, sphhar, vacuum, input%jspins, noco%l_noco, 4 ) + MPI0_b: if( mpi%irank == 0 ) then + call resDen%Residual( outDen, inDen ) + if( input%jspins == 2 ) call resDen%SpinsToChargeAndMagnetisation() + end if MPI0_b +#ifdef CPP_MPI + call mpi_bc_potden( mpi, stars, sphhar, atoms, input, vacuum, oneD, noco, resDen ) +#endif + call vgen_coulomb( 1, mpi, dimension, oneD, input, field, vacuum, sym, stars, cell, & + sphhar, atoms, resDen, vYukawa ) + end if + MPI0_c: if( mpi%irank == 0 ) then + if( input%preconditioning_param /= 0 ) then + resDen%pw(1:stars%ng3,1) = resDen%pw(1:stars%ng3,1) - input%preconditioning_param ** 2 / fpi_const * vYukawa%pw(1:stars%ng3,1) + do n = 1, atoms%ntype + do lh = 0, sphhar%nlhd + resDen%mt(1:atoms%jri(n),lh,n,1) = resDen%mt(1:atoms%jri(n),lh,n,1) & + - input%preconditioning_param ** 2 / fpi_const & + * vYukawa%mt(1:atoms%jri(n),lh,n,1) * atoms%rmsh(1:atoms%jri(n),n) ** 2 + end do + end do + if( input%jspins == 2 ) call resDen%ChargeAndMagnetisationToSpins() + call brysh1( input, stars, atoms, sphhar, noco, vacuum, sym, oneD, & + intfac, vacfac, resDen, nmap, nmaph, mapmt, mapvac, mapvac2, fsm ) + end if + ! end of preconditioner + + + !mixing of the densities + IF (input%imix.EQ.0) THEN + CALL stmix(atoms,input,noco, nmap,nmaph,fsm, sm) ELSE - mmap = mmap + 7 * 7 * 2 * atoms%n_u * input%jspins ! add 7*7 complex numbers per atoms%n_u and spin + CALL broyden(cell,stars,atoms,vacuum,sphhar,input,noco,oneD,sym,& + hybrid,mmap,nmaph,mapmt,mapvac2,nmap,fsm,sm) + +! Replace the broyden call above by the commented metric and broyden2 calls +! below to switch on the continuous restart of the Broyden method. + ! Apply metric w to sm and store in smMet: w |sm> +! CALL metric(cell,atoms,vacuum,sphhar,input,noco,stars,sym,oneD,& +! mmap,nmaph,mapmt,mapvac2,sm,smMet,l_pot) +! +! CALL broyden2(cell,stars,atoms,vacuum,sphhar,input,noco,oneD,sym,& +! hybrid,mmap,nmaph,mapmt,mapvac2,nmap,fsm,sm,fmMet,smMet) END IF - ELSE - atoms%n_u = 0 - END IF - ! LDA+U (end) - - ALLOCATE (sm(mmap),fsm(mmap)) - ALLOCATE (smMet(mmap),fmMet(mmap)) - dist(:) = 0.0 - - !determine type of mixing: - !imix=0:straight, imix=o broyden first, imix=5:broyden second - !imix=:generalozed anderson mixing - IF (input%imix.EQ.0) THEN - WRITE (16,FMT='(a,2f10.5)') 'STRAIGHT MIXING',input%alpha - ELSE IF (input%imix.EQ.3) THEN - WRITE (16,FMT='(a,f10.5)') 'BROYDEN FIRST MIXING',input%alpha - ELSE IF (input%imix.EQ.5) THEN - WRITE (16,FMT='(a,f10.5)') 'BROYDEN SECOND MIXING',input%alpha - ELSE IF (input%imix.EQ.7) THEN - WRITE (16,FMT='(a,f10.5)') 'ANDERSON GENERALIZED',input%alpha - ELSE - CALL juDFT_error("mix: input%imix =/= 0,3,5,7 ",calledby ="mix") - END IF - - IF (input%jspins.EQ.2.AND.input%imix.NE.0) THEN - WRITE(6,'(''WARNING : for QUASI-NEWTON METHODS SPINF=1'')') - END IF - - !put input charge density into array sm - - !(in the spin polarized case the arrays sm and fsm consist of spin up and spin down densities) - CALL brysh1(input,stars,atoms,sphhar,noco,vacuum,sym,oneD,& - intfac,vacfac,inDen,nmap,nmaph,mapmt,mapvac,mapvac2,sm) - - !put output charge density into array fsm - CALL brysh1(input,stars,atoms,sphhar,noco,vacuum,sym,oneD,& - intfac,vacfac,outDen,nmap,nmaph,mapmt,mapvac,mapvac2,fsm) - - !store the difference fsm - sm in fsm - fsm(:nmap) = fsm(:nmap) - sm(:nmap) - - l_pot = .FALSE. - ! Apply metric w to fsm and store in fmMet: w |fsm> - CALL metric(cell,atoms,vacuum,sphhar,input,noco,stars,sym,oneD,& - mmap,nmaph,mapmt,mapvac2,fsm,fmMet,l_pot) - - !mixing of the densities - IF (input%imix.EQ.0) THEN - CALL stmix(atoms,input,noco, nmap,nmaph,fsm, sm) - ELSE - CALL broyden(cell,stars,atoms,vacuum,sphhar,input,noco,oneD,sym,& - hybrid,mmap,nmaph,mapmt,mapvac2,nmap,fsm,sm) - -! Replace the broyden call above by the commented metric and broyden2 calls -! below to switch on the continuous restart of the Broyden method. - ! Apply metric w to sm and store in smMet: w |sm> + + !initiatlize mixed density and extract it with brysh2 call + inDen%mmpMat = CMPLX(0.0,0.0) + + CALL brysh2(input,stars,atoms,sphhar,noco,vacuum,sym,sm,oneD,inDen) + + !calculate the distance of charge densities... + + !induce metric in fsm use sm as an output array: |sm> = w |fsm> ! CALL metric(cell,atoms,vacuum,sphhar,input,noco,stars,sym,oneD,& -! mmap,nmaph,mapmt,mapvac2,sm,smMet,l_pot) -! -! CALL broyden2(cell,stars,atoms,vacuum,sphhar,input,noco,oneD,sym,& -! hybrid,mmap,nmaph,mapmt,mapvac2,nmap,fsm,sm,fmMet,smMet) - END IF - - !initiatlize mixed density and extract it with brysh2 call - inDen%mmpMat = CMPLX(0.0,0.0) - - CALL brysh2(input,stars,atoms,sphhar,noco,vacuum,sym,sm,oneD,inDen) - - !calculate the distance of charge densities... - - !induce metric in fsm use sm as an output array: |sm> = w |fsm> -! CALL metric(cell,atoms,vacuum,sphhar,input,noco,stars,sym,oneD,& -! mmap,nmaph,mapmt,mapvac2,fsm, sm) - - !calculate the charge density distance for each spin - IF(hybrid%l_calhf) THEN - CALL openXMLElement('densityConvergence',(/'units ','comment'/),(/'me/bohr^3','HF '/)) - ELSE - CALL openXMLElement('densityConvergence',(/'units'/),(/'me/bohr^3'/)) - END IF - - DO js = 1,input%jspins - dist(js) = CPP_BLAS_sdot(nmaph,fsm(nmaph*(js-1)+1),1, fmMet(nmaph*(js-1)+1),1) - - attributes = '' - WRITE(attributes(1),'(i0)') js - WRITE(attributes(2),'(f20.10)') 1000*SQRT(ABS(dist(js)/cell%vol)) - CALL writeXMLElementForm('chargeDensity',(/'spin ','distance'/),attributes,reshape((/4,8,1,20/),(/2,2/))) - IF( hybrid%l_calhf ) THEN - WRITE (16,FMT=7901) js,inDen%iter,1000*SQRT(ABS(dist(js)/cell%vol)) - WRITE ( 6,FMT=7901) js,inDen%iter,1000*SQRT(ABS(dist(js)/cell%vol)) - ELSE - WRITE (16,FMT=7900) js,inDen%iter,1000*SQRT(ABS(dist(js)/cell%vol)) - WRITE ( 6,FMT=7900) js,inDen%iter,1000*SQRT(ABS(dist(js)/cell%vol)) - END IF - END DO - IF (noco%l_noco) dist(6) = CPP_BLAS_sdot((nmap-2*nmaph), fsm(nmaph*2+1),1,fmMet(nmaph*2+1),1) - IF (noco%l_noco) WRITE (6,FMT=7900) 3,inDen%iter,1000*SQRT(ABS(dist(6)/cell%vol)) - - !calculate the distance of total charge and spin density - !|rho/m(o) - rho/m(i)| = |rh1(o) -rh1(i)|+ |rh2(o) -rh2(i)| +/_ - ! +/_2 - IF (input%jspins.EQ.2) THEN - dist(3) = CPP_BLAS_sdot(nmaph,fsm,1,fmMet(nmaph+1),1) - dist(4) = dist(1) + dist(2) + 2.0e0*dist(3) - dist(5) = dist(1) + dist(2) - 2.0e0*dist(3) - CALL writeXMLElementFormPoly('overallChargeDensity',(/'distance'/),& - (/1000*SQRT(ABS(dist(4)/cell%vol))/),reshape((/10,20/),(/1,2/))) - CALL writeXMLElementFormPoly('spinDensity',(/'distance'/),& - (/1000*SQRT(ABS(dist(5)/cell%vol))/),reshape((/19,20/),(/1,2/))) - IF( hybrid%l_calhf ) THEN - WRITE (16,FMT=8001) inDen%iter,1000*SQRT(ABS(dist(4)/cell%vol)) - WRITE (16,FMT=8011) inDen%iter,1000*SQRT(ABS(dist(5)/cell%vol)) - WRITE ( 6,FMT=8001) inDen%iter,1000*SQRT(ABS(dist(4)/cell%vol)) - WRITE ( 6,FMT=8011) inDen%iter,1000*SQRT(ABS(dist(5)/cell%vol)) +! mmap,nmaph,mapmt,mapvac2,fsm, sm) + + !calculate the charge density distance for each spin + IF(hybrid%l_calhf) THEN + CALL openXMLElement('densityConvergence',(/'units ','comment'/),(/'me/bohr^3','HF '/)) ELSE - WRITE (16,FMT=8000) inDen%iter,1000*SQRT(ABS(dist(4)/cell%vol)) - WRITE (16,FMT=8010) inDen%iter,1000*SQRT(ABS(dist(5)/cell%vol)) - WRITE ( 6,FMT=8000) inDen%iter,1000*SQRT(ABS(dist(4)/cell%vol)) - WRITE ( 6,FMT=8010) inDen%iter,1000*SQRT(ABS(dist(5)/cell%vol)) + CALL openXMLElement('densityConvergence',(/'units'/),(/'me/bohr^3'/)) END IF - !dist/vol should always be >= 0 , - !but for dist=0 numerically you might obtain dist/vol < 0 - !(e.g. when calculating non-magnetic systems with jspins=2). - END IF - results%last_distance=maxval(1000*SQRT(ABS(dist/cell%vol))) - DEALLOCATE (sm,fsm,smMet,fmMet) - CALL closeXMLElement('densityConvergence') + DO js = 1,input%jspins + dist(js) = CPP_BLAS_sdot(nmaph,fsm(nmaph*(js-1)+1),1, fmMet(nmaph*(js-1)+1),1) + + attributes = '' + WRITE(attributes(1),'(i0)') js + WRITE(attributes(2),'(f20.10)') 1000*SQRT(ABS(dist(js)/cell%vol)) + CALL writeXMLElementForm('chargeDensity',(/'spin ','distance'/),attributes,reshape((/4,8,1,20/),(/2,2/))) + IF( hybrid%l_calhf ) THEN + WRITE (16,FMT=7901) js,inDen%iter,1000*SQRT(ABS(dist(js)/cell%vol)) + WRITE ( 6,FMT=7901) js,inDen%iter,1000*SQRT(ABS(dist(js)/cell%vol)) + ELSE + WRITE (16,FMT=7900) js,inDen%iter,1000*SQRT(ABS(dist(js)/cell%vol)) + WRITE ( 6,FMT=7900) js,inDen%iter,1000*SQRT(ABS(dist(js)/cell%vol)) + END IF + END DO + IF (noco%l_noco) dist(6) = CPP_BLAS_sdot((nmap-2*nmaph), fsm(nmaph*2+1),1,fmMet(nmaph*2+1),1) + IF (noco%l_noco) WRITE (6,FMT=7900) 3,inDen%iter,1000*SQRT(ABS(dist(6)/cell%vol)) + + !calculate the distance of total charge and spin density + !|rho/m(o) - rho/m(i)| = |rh1(o) -rh1(i)|+ |rh2(o) -rh2(i)| +/_ + ! +/_2 + IF (input%jspins.EQ.2) THEN + dist(3) = CPP_BLAS_sdot(nmaph,fsm,1,fmMet(nmaph+1),1) + dist(4) = dist(1) + dist(2) + 2.0e0*dist(3) + dist(5) = dist(1) + dist(2) - 2.0e0*dist(3) + CALL writeXMLElementFormPoly('overallChargeDensity',(/'distance'/),& + (/1000*SQRT(ABS(dist(4)/cell%vol))/),reshape((/10,20/),(/1,2/))) + CALL writeXMLElementFormPoly('spinDensity',(/'distance'/),& + (/1000*SQRT(ABS(dist(5)/cell%vol))/),reshape((/19,20/),(/1,2/))) + IF( hybrid%l_calhf ) THEN + WRITE (16,FMT=8001) inDen%iter,1000*SQRT(ABS(dist(4)/cell%vol)) + WRITE (16,FMT=8011) inDen%iter,1000*SQRT(ABS(dist(5)/cell%vol)) + WRITE ( 6,FMT=8001) inDen%iter,1000*SQRT(ABS(dist(4)/cell%vol)) + WRITE ( 6,FMT=8011) inDen%iter,1000*SQRT(ABS(dist(5)/cell%vol)) + ELSE + WRITE (16,FMT=8000) inDen%iter,1000*SQRT(ABS(dist(4)/cell%vol)) + WRITE (16,FMT=8010) inDen%iter,1000*SQRT(ABS(dist(5)/cell%vol)) + WRITE ( 6,FMT=8000) inDen%iter,1000*SQRT(ABS(dist(4)/cell%vol)) + WRITE ( 6,FMT=8010) inDen%iter,1000*SQRT(ABS(dist(5)/cell%vol)) + END IF + + !dist/vol should always be >= 0 , + !but for dist=0 numerically you might obtain dist/vol < 0 + !(e.g. when calculating non-magnetic systems with jspins=2). + END IF + results%last_distance=maxval(1000*SQRT(ABS(dist/cell%vol))) + DEALLOCATE (sm,fsm,smMet,fmMet) + CALL closeXMLElement('densityConvergence') - !fix charge of the new density - CALL qfix(stars,atoms,sym,vacuum, sphhar,input,cell,oneD,inDen,noco%l_noco,.FALSE.,.false., fix) + !fix charge of the new density + CALL qfix(stars,atoms,sym,vacuum, sphhar,input,cell,oneD,inDen,noco%l_noco,.FALSE.,.false., fix) - IF(atoms%n_u.NE.n_u_keep) THEN - inDen%mmpMat = n_mmpTemp - END IF + IF(atoms%n_u.NE.n_u_keep) THEN + inDen%mmpMat = n_mmpTemp + END IF - atoms%n_u=n_u_keep + atoms%n_u=n_u_keep - IF(vacuum%nvac.EQ.1) THEN - inDen%vacz(:,2,:) = inDen%vacz(:,1,:) - IF (sym%invs) THEN - inDen%vacxy(:,:,2,:) = CONJG(inDen%vacxy(:,:,1,:)) - ELSE - inDen%vacxy(:,:,2,:) = inDen%vacxy(:,:,1,:) + IF(vacuum%nvac.EQ.1) THEN + inDen%vacz(:,2,:) = inDen%vacz(:,1,:) + IF (sym%invs) THEN + inDen%vacxy(:,:,2,:) = CONJG(inDen%vacxy(:,:,1,:)) + ELSE + inDen%vacxy(:,:,2,:) = inDen%vacxy(:,:,1,:) + END IF END IF - END IF - IF (atoms%n_u > 0) THEN - IF (.NOT.l_densityMatrixPresent) THEN - inDen%mmpMat(:,:,:,:) = outDen%mmpMat(:,:,:,:) - CALL resetBroydenHistory() - END IF - ENDIF + IF (atoms%n_u > 0) THEN + IF (.NOT.l_densityMatrixPresent) THEN + inDen%mmpMat(:,:,:,:) = outDen%mmpMat(:,:,:,:) + CALL resetBroydenHistory() + END IF + ENDIF + + !write out mixed density + CALL writeDensity(stars,vacuum,atoms,cell,sphhar,input,sym,oneD,archiveType,CDN_INPUT_DEN_const,& + 1,results%last_distance,results%ef,.TRUE.,inDen) - !write out mixed density - CALL writeDensity(stars,vacuum,atoms,cell,sphhar,input,sym,oneD,archiveType,CDN_INPUT_DEN_const,& - 1,results%last_distance,results%ef,.TRUE.,inDen) + inDen%iter = inDen%iter + 1 - inDen%iter = inDen%iter + 1 + 7900 FORMAT (/,'----> distance of charge densities for spin ',i2,' it=',i5,':',f13.6,' me/bohr**3') + 7901 FORMAT (/,'----> HF distance of charge densities for spin ',i2,' it=',i5,':',f13.6,' me/bohr**3') + 8000 FORMAT (/,'----> distance of charge densities for it=',i5,':', f13.6,' me/bohr**3') + 8001 FORMAT (/,'----> HF distance of charge densities for it=',i5,':', f13.6,' me/bohr**3') + 8010 FORMAT (/,'----> distance of spin densities for it=',i5,':', f13.6,' me/bohr**3') + 8011 FORMAT (/,'----> HF distance of spin densities for it=',i5,':', f13.6,' me/bohr**3') + 8020 FORMAT (4d25.14) + 8030 FORMAT (10i10) - 7900 FORMAT (/,'----> distance of charge densities for spin ',i2,' it=',i5,':',f13.6,' me/bohr**3') - 7901 FORMAT (/,'----> HF distance of charge densities for spin ',i2,' it=',i5,':',f13.6,' me/bohr**3') - 8000 FORMAT (/,'----> distance of charge densities for it=',i5,':', f13.6,' me/bohr**3') - 8001 FORMAT (/,'----> HF distance of charge densities for it=',i5,':', f13.6,' me/bohr**3') - 8010 FORMAT (/,'----> distance of spin densities for it=',i5,':', f13.6,' me/bohr**3') - 8011 FORMAT (/,'----> HF distance of spin densities for it=',i5,':', f13.6,' me/bohr**3') - 8020 FORMAT (4d25.14) - 8030 FORMAT (10i10) + end if MPI0_c -END SUBROUTINE mix + end subroutine mix -END MODULE m_mix +end module m_mix diff --git a/main/vgen.F90 b/main/vgen.F90 index 7d38d9134beae13cb9104f5e4151c8a02e3e8e6d..9c043116ec00b27a64bd32459911d2bd3abcd2b6 100644 --- a/main/vgen.F90 +++ b/main/vgen.F90 @@ -4,7 +4,9 @@ ! of the MIT license as expressed in the LICENSE file in more detail. !-------------------------------------------------------------------------------- MODULE m_vgen + USE m_juDFT + CONTAINS !> FLAPW potential generator !! The full potential is generated by the following main steps: @@ -16,8 +18,11 @@ CONTAINS !! TE_VCOUL : charge density-coulomb potential integral !! TE_VEFF: charge density-effective potential integral !! TE_EXC : charge density-ex-corr.energy density integral - SUBROUTINE vgen(hybrid,field,input,xcpot,DIMENSION, atoms,sphhar,stars,& - vacuum,sym,obsolete,cell,oneD,sliceplot,mpi, results,noco,den,vTot,vx,vCoul) + + SUBROUTINE vgen( hybrid, field, input, xcpot, DIMENSION, atoms, sphhar, stars, & + vacuum, sym, obsolete, cell, oneD, sliceplot, mpi, results, noco, & + den, vTot, vx, vCoul ) + USE m_rotate_int_den_to_local USE m_bfield USE m_vgen_coulomb @@ -28,71 +33,72 @@ CONTAINS USE m_mpi_bc_potden #endif IMPLICIT NONE - TYPE(t_results),INTENT(INOUT) :: results - CLASS(t_xcpot),INTENT(IN) :: xcpot - TYPE(t_hybrid),INTENT(IN) :: hybrid - TYPE(t_mpi),INTENT(IN) :: mpi - TYPE(t_dimension),INTENT(IN) :: dimension - TYPE(t_oneD),INTENT(IN) :: oneD - TYPE(t_obsolete),INTENT(IN) :: obsolete - TYPE(t_sliceplot),INTENT(IN) :: sliceplot - TYPE(t_input),INTENT(IN) :: input - TYPE(t_field),INTENT(INOUT) :: field !efield can be modified - TYPE(t_vacuum),INTENT(IN) :: vacuum - TYPE(t_noco),INTENT(IN) :: noco - TYPE(t_sym),INTENT(IN) :: sym - TYPE(t_stars),INTENT(IN) :: stars - TYPE(t_cell),INTENT(IN) :: cell - TYPE(t_sphhar),INTENT(IN) :: sphhar - TYPE(t_atoms),INTENT(IN) :: atoms - TYPE(t_potden), INTENT(INOUT) :: den - TYPE(t_potden),INTENT(INOUT) :: vTot,vx,vCoul - ! .. - - TYPE(t_potden) :: workden,denRot + + TYPE(t_results), INTENT(INOUT) :: results + CLASS(t_xcpot), INTENT(IN) :: xcpot + TYPE(t_hybrid), INTENT(IN) :: hybrid + TYPE(t_mpi), INTENT(IN) :: mpi + TYPE(t_dimension), INTENT(IN) :: dimension + TYPE(t_oneD), INTENT(IN) :: oneD + TYPE(t_obsolete), INTENT(IN) :: obsolete + TYPE(t_sliceplot), INTENT(IN) :: sliceplot + TYPE(t_input), INTENT(IN) :: input + TYPE(t_field), INTENT(INOUT) :: field !efield can be modified + TYPE(t_vacuum), INTENT(IN) :: vacuum + TYPE(t_noco), INTENT(IN) :: noco + TYPE(t_sym), INTENT(IN) :: sym + TYPE(t_stars), INTENT(IN) :: stars + TYPE(t_cell), INTENT(IN) :: cell + TYPE(t_sphhar), INTENT(IN) :: sphhar + TYPE(t_atoms), INTENT(IN) :: atoms + TYPE(t_potden), INTENT(INOUT) :: den + TYPE(t_potden), INTENT(INOUT) :: vTot,vx,vCoul + + TYPE(t_potden) :: workden,denRot if (mpi%irank==0) WRITE (6,FMT=8000) 8000 FORMAT (/,/,t10,' p o t e n t i a l g e n e r a t o r',/) - CALL vTot%resetPotDen() CALL vCoul%resetPotDen() CALL vx%resetPotDen() - ALLOCATE(vx%pw_w,vTot%pw_w,mold=vTot%pw) - ALLOCATE(vCoul%pw_w(SIZE(den%pw,1),1)) + ALLOCATE( vx%pw_w, vTot%pw_w, mold=vTot%pw ) + ALLOCATE( vCoul%pw_w(SIZE(den%pw,1),1) ) - CALL workDen%init(stars,atoms,sphhar,vacuum,input%jspins,noco%l_noco,0) + CALL workDen%init( stars, atoms, sphhar, vacuum, input%jspins, noco%l_noco, 0 ) !sum up both spins in den into workden - CALL den%sum_both_spin(workden) - - CALL vgen_coulomb(1,mpi,DIMENSION,oneD,input,field,vacuum,sym,stars,cell,sphhar,atoms,workden,vCoul,results) + CALL den%sum_both_spin( workden ) + + CALL vgen_coulomb( 1, mpi, DIMENSION, oneD, input, field, vacuum, sym, stars, cell, & + sphhar, atoms, workden, vCoul, results ) - CALL vCoul%copy_both_spin(vTot) + CALL vCoul%copy_both_spin( vTot ) IF (noco%l_noco) THEN - CALL denRot%init(stars,atoms,sphhar,vacuum,input%jspins,noco%l_noco,0) + CALL denRot%init( stars, atoms, sphhar, vacuum, input%jspins, noco%l_noco, 0 ) denRot=den - CALL rotate_int_den_to_local(DIMENSION,sym,stars,atoms,sphhar,vacuum,cell,input,& - noco,oneD,denRot) + CALL rotate_int_den_to_local( DIMENSION, sym, stars, atoms, sphhar, vacuum, cell, input, & + noco, oneD, denRot ) ENDIF - call vgen_xcpot(hybrid,input,xcpot,DIMENSION, atoms,sphhar,stars,& - vacuum,sym, obsolete,cell,oneD,sliceplot,mpi,noco,den,denRot,vTot,vx,results) + call vgen_xcpot( hybrid, input, xcpot, DIMENSION, atoms, sphhar, stars, & + vacuum, sym, obsolete, cell, oneD, sliceplot, mpi, noco, den, denRot, vTot, vx, results ) !ToDo, check if this is needed for more potentials as well... - CALL vgen_finalize(atoms,stars,vacuum,sym,noco,input,vTot,denRot) - DEALLOCATE(vcoul%pw_w,vx%pw_w) + CALL vgen_finalize( atoms, stars, vacuum, sym, noco, input, vTot, denRot ) + DEALLOCATE( vcoul%pw_w, vx%pw_w ) - CALL bfield(input,noco,atoms,field,vTot) + CALL bfield( input, noco, atoms, field, vTot ) ! broadcast potentials #ifdef CPP_MPI - CALL mpi_bc_potden(mpi,stars,sphhar,atoms,input,vacuum,oneD,noco,vTot) - CALL mpi_bc_potden(mpi,stars,sphhar,atoms,input,vacuum,oneD,noco,vCoul) - CALL mpi_bc_potden(mpi,stars,sphhar,atoms,input,vacuum,oneD,noco,vx) + CALL mpi_bc_potden( mpi, stars, sphhar, atoms, input, vacuum, oneD, noco, vTot ) + CALL mpi_bc_potden( mpi, stars, sphhar, atoms, input, vacuum, oneD, noco, vCoul ) + CALL mpi_bc_potden( mpi, stars, sphhar, atoms, input, vacuum, oneD, noco, vx ) #endif END SUBROUTINE vgen + END MODULE m_vgen diff --git a/math/CMakeLists.txt b/math/CMakeLists.txt index 630b2b66028c6ec0112c3ede4d1738cf69be7340..b73bab558219efcdd53528d66cf73a6c20d89c77 100644 --- a/math/CMakeLists.txt +++ b/math/CMakeLists.txt @@ -29,6 +29,8 @@ math/differentiate.f90 math/fft2d.F90 math/fft3d.f90 math/fft_interface.F90 +math/SphBessel.f90 +math/DoubleFactorial.f90 ) if (FLEUR_USE_FFTMKL) set(fleur_F90 ${fleur_F90} math/mkl_dfti.f90) diff --git a/math/DoubleFactorial.f90 b/math/DoubleFactorial.f90 new file mode 100644 index 0000000000000000000000000000000000000000..de463e36bcc5a028116cf13fadf9743c1e04d67e --- /dev/null +++ b/math/DoubleFactorial.f90 @@ -0,0 +1,27 @@ +module m_DoubleFactorial + +implicit none + + +contains + + +real(kind=8) function DoubleFactorial( n_upper, n_lower ) +! calculates ( 2 * n_upper + 1 ) !! / ( 2 * n_lower + 1 ) !! or just ( 2 * n_upper + 1 ) !!, if n_lower is not present + + integer :: n_upper + integer, optional :: n_lower + integer :: i, i_lower + + i_lower = 1 + if( present(n_lower) ) i_lower = n_lower + 1 + + DoubleFactorial = 1. + do i = i_lower, n_upper + DoubleFactorial = DoubleFactorial * ( 2 * i + 1 ) + end do + +end function DoubleFactorial + + +end module m_DoubleFactorial diff --git a/math/SphBessel.f90 b/math/SphBessel.f90 new file mode 100644 index 0000000000000000000000000000000000000000..2f24db182935e84e23a3e8b6fed9805d7f4d08ca --- /dev/null +++ b/math/SphBessel.f90 @@ -0,0 +1,220 @@ +!-------------------------------------------------------------------------------- +! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany +! This file is part of FLEUR and available as free software under the conditions +! of the MIT license as expressed in the LICENSE file in more detail. +!-------------------------------------------------------------------------------- + +module m_SphBessel + + !------------------------------------------------------------------------- + ! SphBessel calculates spherical Bessel functions of the first, + ! second and third kind (Bessel, Neumann and Hankel functions). + ! ModSphBessel calculates modified spherical Bessel functions + ! of the first and second kind. + ! + ! jl : spherical Bessel function of the first kind (Bessel) + ! nl : spherical Bessel function of the second kind (Neumann) + ! hl : spherical Bessel function of the third kind (Hankel) + ! il : modified spherical Bessel function of the first kind + ! kl : modified spherical Bessel function of the second kind + ! + ! z : Bessel functions are calculated for this value + ! lmax: Bessel functions are calculated for all the indices l + ! from 0 to lmax + ! + ! intent(in): + ! z : complex or real scalar + ! lmax: integer + ! + ! intent(out): + ! * SphBessel( jl, nl, hl, z, lmax ) + ! jl: complex or real, dimension(0:lmax) + ! nl: complex or real, dimension(0:lmax) + ! hl: complex, dimension(0:lmax) + ! * ModSphBessel( il, kl, z, lmax ) + ! il: complex or real, dimension(0:lmax) + ! kl: complex or real, dimension(0:lmax) + ! + ! All subroutines are pure and therefore can be called for a range of + ! z-values concurrently, f.e. this way: + ! allocate( il(0:lmax, size(z)), kl(0:lmax, size(z)) ) + ! do concurrent (i = 1: size(z)) + ! call ModSphBessel( il(:,i), kl(:,i), z(i), lmax ) + ! end do + ! + ! details on implementation: + ! For |z| <= 1 the taylor expansions of jl and nl are used. + ! For |z| > 1 the explicit expressions for hl(+), hl(-) are used. + ! For modified spherical Bessel functions il and kl the relations + ! il(z) = I^{-l} * jl(I*z) + ! kl(z) = -I^{l} * hl(I*z) + ! are used. + ! + ! authors: + ! originally written by R. Zeller (1990) + ! modernised and extended by M. Hinzen (2016) + !------------------------------------------------------------------------- + + implicit none + + complex, parameter :: CI = (0.0, 1.0) + + + interface SphBessel + module procedure :: SphBesselComplex, SphBesselReal + end interface + + interface ModSphBessel + ! variant Complex2 takes workspace as an argument. + ! this is not possible for the subroutine working on reals. + module procedure :: ModSphBesselComplex, ModSphBesselReal, ModSphBesselComplex2 + end interface + + +contains + + + pure subroutine SphBesselComplex ( jl, nl, hl, z, lmax ) + + complex, intent(in) :: z + integer, intent(in) :: lmax + complex, dimension(0:lmax), intent(out) :: jl, nl, hl + + complex :: termj, termn, z2, zj, zn + real :: rl, rn + real, dimension(0:lmax) :: rnm + integer :: l, m, n + + + zj = 1.0 + zn = 1.0 / z + z2 = z * z + jl(:) = 1.0 + nl(:) = 1.0 + if ( abs( z ) < lmax + 1.0 ) then + SERIAL_L_LOOP: do l = 0, lmax + rl = l + l + termj = 1.0 + termn = 1.0 + EXPANSION: do n = 1, 25 + rn = n + n + termj = -termj / ( rl + rn + 1.0 ) / rn * z2 + termn = termn / ( rl - rn + 1.0 ) / rn * z2 + jl(l) = jl(l) + termj + nl(l) = nl(l) + termn + end do EXPANSION + jl(l) = jl(l) * zj + nl(l) = -nl(l) * zn + hl(l) = jl(l) + nl(l) * CI + zj = zj * z / ( rl + 3.0 ) + zn = zn / z * ( rl + 1.0 ) + end do SERIAL_L_LOOP + end if + + rnm(:) = 1.0 + PARALLEL_L_LOOP: do concurrent (l = 0: lmax) + if ( abs( z ) >= l + 1.0 ) then + hl(l) = 0.0 + nl(l) = 0.0 + SERIAL_M_LOOP: do m = 0, l + hl(l) = hl(l) + (-1) ** m * rnm(l) + nl(l) = nl(l) + rnm(l) + rnm(l) = rnm(l) / ( m + 1.0 ) * ( l * ( l + 1 ) - m * ( m + 1 ) ) / ( CI * ( z + z ) ) + end do SERIAL_M_LOOP + hl(l) = hl(l) * (-CI) ** l * exp( CI * z ) / ( CI * z ) + nl(l) = nl(l) * CI ** l * exp( -CI * z ) / ( -CI * z ) + jl(l) = ( hl(l) + nl(l) ) / 2.0 + nl(l) = ( hl(l) - jl(l) ) * (-CI) + end if + end do PARALLEL_L_LOOP + + end subroutine SphBesselComplex + + + + pure subroutine SphBesselReal ( jl, nl, hl, x, lmax ) + + real, intent(in) :: x + integer, intent(in) :: lmax + real, dimension(0:lmax), intent(out) :: jl, nl + complex, dimension(0:lmax), intent(out) :: hl + + complex, dimension(0:lmax) :: jl_complex, nl_complex + complex :: z + + + z = x ! internal conversion from real to complex + + call SphBesselComplex( jl_complex, nl_complex, hl, z, lmax ) + + jl = jl_complex ! internal conversion from complex to real + nl = nl_complex ! internal conversion from complex to real + + end subroutine SphBesselReal + + + + pure subroutine ModSphBesselComplex ( il, kl, z, lmax ) + + complex, intent(in) :: z + integer, intent(in) :: lmax + complex, dimension(0:lmax), intent(out) :: il, kl + + complex, dimension(0:lmax) :: nl + integer :: l + + + call SphBesselComplex( il, nl, kl, CI * z, lmax ) + + do l = 0, lmax + il(l) = (-CI) ** l * il(l) + kl(l) = - CI ** l * kl(l) + end do + + end subroutine ModSphBesselComplex + + + !another implementation of ModSphBesselComplex, where nl is allocated outside for performance reasons + pure subroutine ModSphBesselComplex2 ( il, kl, nl, z, lmax ) + + complex, intent(in) :: z + integer, intent(in) :: lmax + complex, dimension(0:lmax), intent(out) :: il, kl, nl + + integer :: l + + + call SphBesselComplex( il, nl, kl, CI * z, lmax ) + + do l = 0, lmax + il(l) = (-CI) ** l * il(l) + kl(l) = - CI ** l * kl(l) + end do + + end subroutine ModSphBesselComplex2 + + + + pure subroutine ModSphBesselReal ( il, kl, x, lmax ) + + real, intent(in) :: x + integer, intent(in) :: lmax + real, dimension(0:lmax), intent(out) :: il, kl + + complex, dimension(0:lmax) :: jl, nl, hl + integer :: l + complex :: z + + + z = CI * x + call SphBesselComplex( jl, nl, hl, z, lmax ) + + do l = 0, lmax + il(l) = (-CI) ** l * jl(l) + kl(l) = - CI ** l * hl(l) + end do + + end subroutine ModSphBesselReal + + +end module m_SphBessel diff --git a/mpi/CMakeLists.txt b/mpi/CMakeLists.txt index fff52398395bf55c734e55aeee9bb921d7f991da..0adec8ff692422d7419d36a4f48e8e6cfe1e4e36 100644 --- a/mpi/CMakeLists.txt +++ b/mpi/CMakeLists.txt @@ -11,6 +11,7 @@ if (${FLEUR_USE_MPI}) mpi/mpi_bc_st.F90 mpi/mpi_bc_pot.F90 mpi/mpi_col_den.F90 + mpi/mpi_reduce_potden.F90 mpi/mpi_make_groups.F90 mpi/mpi_dist_forcetheorem.F90 ) diff --git a/mpi/mpi_bc_potden.F90 b/mpi/mpi_bc_potden.F90 index c512eecaf665b25a93bc68d9f783bb18ad032427..07ca8a0d520e73271250ec62d222b352d1df33c6 100644 --- a/mpi/mpi_bc_potden.F90 +++ b/mpi/mpi_bc_potden.F90 @@ -27,6 +27,7 @@ CONTAINS LOGICAL :: l_nocoAlloc, l_denMatAlloc, l_vaczAlloc, l_pw_wAlloc CALL MPI_BCAST(potden%iter,1,MPI_INTEGER,0,mpi%mpi_comm,ierr) + CALL MPI_BCAST(potden%potdenType,1,MPI_INTEGER,0,mpi%mpi_comm,ierr) l_nocoAlloc = .FALSE. l_denMatAlloc = .FALSE. @@ -51,7 +52,7 @@ CONTAINS CALL MPI_BCAST(potden%pw,n,MPI_DOUBLE_COMPLEX,0,mpi%mpi_comm,ierr) n = atoms%jmtd * (sphhar%nlhd+1) * atoms%ntype * input%jspins - CALL MPI_BCAST(potden%mt,n,MPI_DOUBLE,0,mpi%mpi_comm,ierr) + CALL MPI_BCAST(potden%mt,n,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) IF (l_pw_wAlloc) THEN n = stars%ng3 * SIZE(potden%pw_w,2) @@ -60,7 +61,7 @@ CONTAINS IF (l_vaczAlloc) THEN n = vacuum%nmzd * 2 * SIZE(potden%vacz,3) - CALL MPI_BCAST(potden%vacz,n,MPI_DOUBLE,0,mpi%mpi_comm,ierr) + CALL MPI_BCAST(potden%vacz,n,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) n = vacuum%nmzxyd * (stars%ng2-1) * 2 * SIZE(potden%vacxy,4) CALL MPI_BCAST(potden%vacxy,n,MPI_DOUBLE_COMPLEX,0,mpi%mpi_comm,ierr) diff --git a/mpi/mpi_reduce_potden.F90 b/mpi/mpi_reduce_potden.F90 new file mode 100644 index 0000000000000000000000000000000000000000..61b862e5c995012d9ed201ff7bcdfb32306598f0 --- /dev/null +++ b/mpi/mpi_reduce_potden.F90 @@ -0,0 +1,90 @@ +!-------------------------------------------------------------------------------- +! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany +! This file is part of FLEUR and available as free software under the conditions +! of the MIT license as expressed in the LICENSE file in more detail. +!-------------------------------------------------------------------------------- + +MODULE m_mpi_reduce_potden + +CONTAINS + + SUBROUTINE mpi_reduce_potden( mpi, stars, sphhar, atoms, input, vacuum, oneD, noco, potden ) + + ! It is assumed that, if some quantity is allocated for some mpi rank, that it is also allocated on mpi rank 0. + +#include"cpp_double.h" + USE m_types + USE m_constants + USE m_juDFT + IMPLICIT NONE + + TYPE(t_mpi), INTENT(IN) :: mpi + TYPE(t_oneD), INTENT(IN) :: oneD + TYPE(t_input), INTENT(IN) :: input + TYPE(t_vacuum), INTENT(IN) :: vacuum + TYPE(t_noco), INTENT(IN) :: noco + TYPE(t_stars), INTENT(IN) :: stars + TYPE(t_sphhar), INTENT(IN) :: sphhar + TYPE(t_atoms), INTENT(IN) :: atoms + TYPE(t_potden), INTENT(INOUT) :: potden + INCLUDE 'mpif.h' + + INTEGER :: n + INTEGER :: ierr(3) + REAL, ALLOCATABLE :: r_b(:) + + EXTERNAL CPP_BLAS_scopy,CPP_BLAS_ccopy,MPI_REDUCE + + ! reduce pw + n = stars%ng3 * size( potden%pw, 2 ) + allocate( r_b(n) ) + call MPI_REDUCE( potden%pw, r_b, n, MPI_DOUBLE_COMPLEX, MPI_SUM, 0, mpi%mpi_comm, ierr ) + if( mpi%irank == 0 ) call CPP_BLAS_ccopy( n, r_b, 1, potden%pw, 1 ) + deallocate( r_b ) + + ! reduce mt + n = atoms%jmtd * ( sphhar%nlhd + 1 ) * atoms%ntype * input%jspins + allocate( r_b(n) ) + call MPI_REDUCE( potden%mt, r_b, n, MPI_DOUBLE_PRECISION, MPI_SUM, 0, mpi%mpi_comm, ierr ) + if( mpi%irank == 0 ) call CPP_BLAS_scopy( n, r_b, 1, potden%mt, 1 ) + deallocate( r_b ) + + ! reduce pw_w + if( allocated( potden%pw_w ) ) then + n = stars%ng3 * size( potden%pw_w, 2 ) + allocate( r_b(n) ) + call MPI_REDUCE( potden%pw_w, r_b, n, MPI_DOUBLE_COMPLEX, MPI_SUM, 0, mpi%mpi_comm, ierr ) + if( mpi%irank == 0 ) call CPP_BLAS_ccopy( n, r_b, 1, potden%pw_w, 1 ) + deallocate( r_b ) + end if + + ! reduce vacz + if( allocated( potden%vacz ) ) then + n = vacuum%nmzd * 2 * size( potden%vacz, 3 ) + allocate( r_b(n) ) + call MPI_REDUCE( potden%vacz, r_b, n, MPI_DOUBLE_PRECISION, MPI_SUM, 0, mpi%mpi_comm, ierr ) + if( mpi%irank == 0 ) call CPP_BLAS_scopy( n, r_b, 1, potden%vacz, 1 ) + deallocate( r_b ) + end if + + ! reduce vacxy + if( allocated( potden%vacxy ) ) then + n = vacuum%nmzxyd * ( stars%ng2 - 1 ) * 2 * size( potden%vacxy, 4 ) + allocate( r_b(n) ) + call MPI_REDUCE( potden%vacxy, r_b, n, MPI_DOUBLE_COMPLEX, MPI_SUM, 0, mpi%mpi_comm, ierr ) + if( mpi%irank == 0 ) call CPP_BLAS_ccopy( n, r_b, 1, potden%vacxy, 1 ) + deallocate( r_b ) + end if + + ! reduce mmpMat + if( allocated( potden%mmpMat ) ) then + n = size( potden%mmpMat, 1 ) * size( potden%mmpMat, 2 ) * size( potden%mmpMat, 3 ) * size( potden%mmpMat, 4 ) + allocate( r_b(n) ) + call MPI_REDUCE( potden%mmpMat, r_b, n, MPI_DOUBLE_COMPLEX, MPI_SUM, 0, mpi%mpi_comm, ierr ) + if( mpi%irank == 0 ) call CPP_BLAS_ccopy( n, r_b, 1, potden%mmpMat, 1 ) + deallocate( r_b ) + end if + + END SUBROUTINE mpi_reduce_potden + +END MODULE m_mpi_reduce_potden diff --git a/rdmft/rdmft.F90 b/rdmft/rdmft.F90 index d5c9c682cd9280cd135ac827f0bf0db45ebc6bfc..ceb4d9c605cf52fabb4ed879582293bef2369a75 100644 --- a/rdmft/rdmft.F90 +++ b/rdmft/rdmft.F90 @@ -160,7 +160,8 @@ SUBROUTINE rdmft(eig_id,mpi,input,kpts,banddos,cell,atoms,enpara,stars,vacuum,di ! Calculate Coulomb potential for overall density (+including external potential) CALL overallDen%sum_both_spin()!workden) CALL overallVCoul%resetPotDen() - CALL vgen_coulomb(1,mpi,DIMENSION,oneD,input,field,vacuum,sym,stars,cell,sphhar,atoms,overallDen,overallVCoul) + CALL vgen_coulomb( 1, mpi, DIMENSION, oneD, input, field, vacuum, sym, stars, cell, & + sphhar, atoms, overallDen, overallVCoul ) CALL convol(stars, overallVCoul%pw_w(:,1), overallVCoul%pw(:,1), stars%ufft) ! Is there a problem with a second spin?! #ifdef CPP_MPI CALL mpi_bc_potden(mpi,stars,sphhar,atoms,input,vacuum,oneD,noco,overallVCoul) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f3fcaedab9affade79f90d8538ba9f1c82af83f2..468a4f1feab02e7012a8536c516e4241c854ae00 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -2,7 +2,7 @@ enable_testing() set(SerialParallelTests CuBulk CuBulkXML SiLOXML Fe_1l Fe_1lXML Fe-Atom CuBand CuBandXML CuDOS CuDOSXML Fe_bct Fe_bctXML PTO PTOXML Fe_1l_SOC Fe_1l_SOCXML PTO-SOC PTO-SOCXML Fe_bct_SOC Fe_bct_SOCXML Fe_fccXML -GaAsMultiUForceXML SiFilmPlotXML SiFilmSlicePlotXML CoMCDXML) +GaAsMultiUForceXML SiFilmPlotXML SiFilmSlicePlotXML CoMCDXML Fe_Kerker) set(SerialOnlyTests Fe_bct_LO Fe_bct_LOXML Fe_fcc TiO2eels TiO2eelsXML) set(InpgenTests Si_plain Si_plain_explicit Si_full_para)# Si_kpt Si_kden Si_round_trip) diff --git a/tests/tests/Fe_Kerker/files/inp.xml b/tests/tests/Fe_Kerker/files/inp.xml new file mode 100644 index 0000000000000000000000000000000000000000..719c2de8202da550aee2d93afb197790afad1459 --- /dev/null +++ b/tests/tests/Fe_Kerker/files/inp.xml @@ -0,0 +1,72 @@ + + + + Fe preconditioning testcase + + + + + + + + + + + + + + + + + + + 5.4200000000 + 27.0458000000 + + + + + + + + + + + + + + + .0000000000 .0000000000 .0000000000 + + + + 1.000/2.000 1.000/2.000 1.000/10.000 + 1.000/2.000 1.000/2.000 -1.000/10.000 + + + + .0000000000 .0000000000 1.000/5.000 + .0000000000 .0000000000 -1.000/5.000 + + + + 1.000/2.000 1.000/2.000 3.000/10.000 + 1.000/2.000 1.000/2.000 -3.000/10.000 + + + + .0000000000 .0000000000 2.000/5.000 + .0000000000 .0000000000 -2.000/5.000 + + + + + + + + + + + + + diff --git a/tests/tests/Fe_Kerker/files/sym.out b/tests/tests/Fe_Kerker/files/sym.out new file mode 100644 index 0000000000000000000000000000000000000000..fdc627cc5ea1c3a532ed6a0d5fdcec682015a320 --- /dev/null +++ b/tests/tests/Fe_Kerker/files/sym.out @@ -0,0 +1,65 @@ + 16 16 T ! nop,nop2,symor +! 1 + 1 0 0 0.00000 + 0 1 0 0.00000 + 0 0 1 0.00000 +! 2 + -1 0 0 0.00000 + 0 1 0 0.00000 + 0 0 1 0.00000 +! 3 + 1 0 0 0.00000 + 0 -1 0 0.00000 + 0 0 1 0.00000 +! 4 + -1 0 0 0.00000 + 0 -1 0 0.00000 + 0 0 1 0.00000 +! 5 + 0 -1 0 0.00000 + -1 0 0 0.00000 + 0 0 1 0.00000 +! 6 + 0 -1 0 0.00000 + 1 0 0 0.00000 + 0 0 1 0.00000 +! 7 + 0 1 0 0.00000 + -1 0 0 0.00000 + 0 0 1 0.00000 +! 8 + 0 1 0 0.00000 + 1 0 0 0.00000 + 0 0 1 0.00000 +! 9 + 1 0 0 0.00000 + 0 1 0 0.00000 + 0 0 -1 0.00000 +! 10 + -1 0 0 0.00000 + 0 1 0 0.00000 + 0 0 -1 0.00000 +! 11 + 1 0 0 0.00000 + 0 -1 0 0.00000 + 0 0 -1 0.00000 +! 12 + -1 0 0 0.00000 + 0 -1 0 0.00000 + 0 0 -1 0.00000 +! 13 + 0 -1 0 0.00000 + -1 0 0 0.00000 + 0 0 -1 0.00000 +! 14 + 0 -1 0 0.00000 + 1 0 0 0.00000 + 0 0 -1 0.00000 +! 15 + 0 1 0 0.00000 + -1 0 0 0.00000 + 0 0 -1 0.00000 +! 16 + 0 1 0 0.00000 + 1 0 0 0.00000 + 0 0 -1 0.00000 diff --git a/tests/tests/Fe_Kerker/test.desc b/tests/tests/Fe_Kerker/test.desc new file mode 100644 index 0000000000000000000000000000000000000000..91796d438293c44c01d654577f06cfb979be3ad8 --- /dev/null +++ b/tests/tests/Fe_Kerker/test.desc @@ -0,0 +1,9 @@ +$test_name="Fleur Fe Kerker XML"; +$test_code="Fleur"; +%test_requirements=("SOC",0); +$test_stages=1; +$test_desc=<init_potden_types,init_potden_simple PROCEDURE :: copy_both_spin PROCEDURE :: sum_both_spin + procedure :: SpinsToChargeAndMagnetisation + procedure :: ChargeAndMagnetisationToSpins + procedure :: Residual END TYPE t_potden CONTAINS @@ -88,7 +91,71 @@ CONTAINS IF (ALLOCATED(that%pw_w).AND.ALLOCATED(this%pw_w)) that%pw_w(:,2)=this%pw_w(:,1) END IF END SUBROUTINE copy_both_spin - + + subroutine SpinsToChargeAndMagnetisation( den ) + implicit none + class(t_potden), intent(inout) :: den + !type(t_potden), intent(inout) :: charge_magn + + type(t_potden) :: copy + + copy = den + + den%mt(:,0:,:, 1) = copy%mt(:,0:,:, 1) + copy%mt(:,0:,:, 2) + den%mt(:,0:,:, 2) = copy%mt(:,0:,:, 1) - copy%mt(:,0:,:, 2) + den%pw(:, 1) = copy%pw(:, 1) + copy%pw(:, 2) + den%pw(:, 2) = copy%pw(:, 1) - copy%pw(:, 2) + den%vacz(:,:, 1) = copy%vacz(:,:, 1) + copy%vacz(:,:, 2) + den%vacz(:,:, 2) = copy%vacz(:,:, 1) - copy%vacz(:,:, 2) + den%vacxy(:,:,:,1) = copy%vacxy(:,:,:,1) + copy%vacxy(:,:,:,2) + den%vacxy(:,:,:,2) = copy%vacxy(:,:,:,1) - copy%vacxy(:,:,:,2) + + end subroutine + + subroutine ChargeAndMagnetisationToSpins( den ) + implicit none + class(t_potden), intent(inout) :: den + !type(t_potden), intent(inout) :: spins + + type(t_potden) :: copy + + copy = den + + den%mt(:,0:,:, 1) = ( copy%mt(:,0:,:, 1) + copy%mt(:,0:,:, 2) ) / 2 + den%mt(:,0:,:, 2) = ( copy%mt(:,0:,:, 1) - copy%mt(:,0:,:, 2) ) / 2 + den%pw(:, 1) = ( copy%pw(:, 1) + copy%pw(:, 2) ) / 2 + den%pw(:, 2) = ( copy%pw(:, 1) - copy%pw(:, 2) ) / 2 + den%vacz(:,:, 1) = ( copy%vacz(:,:, 1) + copy%vacz(:,:, 2) ) / 2 + den%vacz(:,:, 2) = ( copy%vacz(:,:, 1) - copy%vacz(:,:, 2) ) / 2 + den%vacxy(:,:,:,1) = ( copy%vacxy(:,:,:,1) + copy%vacxy(:,:,:,2) ) / 2 + den%vacxy(:,:,:,2) = ( copy%vacxy(:,:,:,1) - copy%vacxy(:,:,:,2) ) / 2 + + end subroutine + + subroutine Residual( resDen, outDen, inDen ) + implicit none + class(t_potden), intent(in) :: outDen + class(t_potden), intent(in) :: inDen + class(t_potden), intent(inout) :: resDen + + resDen%iter = outDen%iter + resDen%potdenType = outDen%potdenType + resDen%mt = outDen%mt - inDen%mt + resDen%pw = outDen%pw - inDen%pw + resDen%vacz = outDen%vacz - inDen%vacz + resDen%vacxy = outDen%vacxy - inDen%vacxy + if( allocated( outDen%pw_w ) .and. allocated( inDen%pw_w ) .and. allocated( resDen%pw_w ) ) then + resDen%pw_w = outDen%pw_w - inDen%pw_w + end if + !if( allocated( outDen%theta_pw ) .and. allocated( inDen%theta_pw ) ) resDen%theta_pw = outDen%theta_pw - inDen%theta_pw + !if( allocated( outDen%theta_vacz ) .and. allocated( inDen%theta_vacz ) ) resDen%theta_vacz = outDen%theta_vacz - inDen%theta_vacz + !if( allocated( outDen%theta_vacxy ) .and. allocated( inDen%theta_vacxy ) ) resDen%theta_vacxy = outDen%theta_vacxy - inDen%theta_vacxy + !if( allocated( outDen%phi_pw ) .and. allocated( inDen%phi_pw ) ) resDen%phi_pw = outDen%phi_pw - inDen%phi_pw + !if( allocated( outDen%phi_vacz ) .and. allocated( inDen%phi_vacz ) ) resDen%phi_vacz = outDen%phi_vacz - inDen%phi_vacz + !if( allocated( outDen%phi_vacxy ) .and. allocated( inDen%phi_vacxy ) ) resDen%phi_vacxy = outDen%phi_vacxy - inDen%phi_vacxy + + end subroutine + SUBROUTINE init_potden_types(pd,stars,atoms,sphhar,vacuum,jspins,nocoExtraDim,potden_type) USE m_judft USE m_types_setup @@ -153,4 +220,5 @@ CONTAINS pd%mmpMat = CMPLX(0.0,0.0) IF (ALLOCATED(pd%pw_w)) DEALLOCATE(pd%pw_w) END SUBROUTINE resetPotDen + END MODULE m_types_potden diff --git a/types/types_setup.F90 b/types/types_setup.F90 index eff092289a5c6736d0bf222e06511d51b2bb6964..af595e7fbf309bd62edc9b268f0acfb7519ae7bb 100644 --- a/types/types_setup.F90 +++ b/types/types_setup.F90 @@ -383,6 +383,7 @@ MODULE m_types_setup INTEGER :: isec1 REAL :: delgau REAL :: alpha + REAL :: preconditioning_param REAL :: spinf REAL :: tkb LOGICAL :: gauss diff --git a/vgen/fleur_vdW.F90 b/vgen/fleur_vdW.F90 index 54dd671c39276c86f9a2380e1e46a2e8b18b5b08..d95ce56bf57ce3958744996592b93d9bc00650a8 100644 --- a/vgen/fleur_vdW.F90 +++ b/vgen/fleur_vdW.F90 @@ -71,7 +71,7 @@ CONTAINS CALL psqpw(mpi,& atoms_tmp,sphhar,stars,vacuum,& DIMENSION,cell,input,sym,oneD,& - qpw,rho,(/0.,0./),.TRUE.,psq) + qpw,rho,(/0.,0./),.TRUE.,2,psq) !put pseudo charge on real-space grid !use v_pot for imaginary part diff --git a/vgen/mpmom.F90 b/vgen/mpmom.F90 index 667c0a36b68cdea0d618707cd56fdb5cc2ad8cfb..4a9a5d8527695cb366d4dc5031da9911318dcf36 100644 --- a/vgen/mpmom.F90 +++ b/vgen/mpmom.F90 @@ -1,193 +1,251 @@ -MODULE m_mpmom +module m_mpmom ! *********************************************************** - ! determine the multipole moments of (original charge minus - ! plane wave charge) for each atom type - ! c.l.fu - ! cf. M.Weinert J.Math.Phys. 22(11) (1981) p.2434 eq. (10)-(15) + ! calculation of the multipole moments of the original charge + ! density minus the interstitial charge density + ! for each atom type + ! + ! For yukawa_residual = .true. the subroutines calculate the + ! multipole moments for the Yukawa potential instead of the + ! Coulomb potential. This is used in the preconditioning of + ! the SCF iteration for metallic systems. ! ! qlmo(m,l,n) : mult.mom. of the mufftn-tin charge density ! qlmp(m,l,n) : mult.mom. of the plane-wave charge density ! qlm (m,l,n) : (output) difference of the former quantities ! + ! references: + ! for both the Coulomb and the Yukawa pseudo charge density: + ! F. Tran, P. Blaha: Phys. Rev. B 83, 235118 (2011) + ! or see the original paper for the normal Coulomb case only: + ! M. Weinert: J.Math.Phys. 22(11) (1981) p.2434 eq. (10)-(15) ! *********************************************************** -CONTAINS - SUBROUTINE mpmom(mpi,atoms,sphhar,stars,sym,cell,oneD,qpw,rho,qlm) - - USE m_types - IMPLICIT NONE - TYPE(t_mpi),INTENT(IN) :: mpi - TYPE(t_oneD),INTENT(IN) :: oneD - TYPE(t_sym),INTENT(IN) :: sym - TYPE(t_stars),INTENT(IN) :: stars - TYPE(t_cell),INTENT(IN) :: cell - TYPE(t_sphhar),INTENT(IN) :: sphhar - TYPE(t_atoms),INTENT(IN) :: atoms - - ! .. Array Arguments .. - REAL, INTENT (IN) :: rho(:,0:,:) !(atoms%jmtd,0:sphhar%nlhd,atoms%ntype) - COMPLEX, INTENT (IN) :: qpw(:) !(stars%ng3) - COMPLEX, INTENT (OUT):: qlm(-atoms%lmaxd:atoms%lmaxd,0:atoms%lmaxd,atoms%ntype) - - ! .. Local Scalars .. - INTEGER j,jm,lh ,mb,mem,mems,n,nd ,l,nat,m - - ! .. Local Arrays .. - COMPLEX qlmo(-atoms%lmaxd:atoms%lmaxd,0:atoms%lmaxd,atoms%ntype) - COMPLEX qlmp(-atoms%lmaxd:atoms%lmaxd,0:atoms%lmaxd,atoms%ntype) - - ! multipole moments of original charge (q_{lm}^i) - IF (mpi%irank == 0) THEN - CALL mt_moments(atoms,sphhar,rho(:,:,:),qlmo) - ENDIF ! mpi%irank == 0 - - CALL pw_moments(mpi,stars,atoms,cell,sym,oneD,qpw(:),qlmp) - - ! eq.(15): \tilde q_(lm}^i = q_{lm}^i - q_{lm}^{Ii} - IF (mpi%irank == 0) THEN - qlm=qlmo-qlmp - - ! Output section - nat = 1 - DO n = 1,atoms%ntype - WRITE (6,FMT=8000) n - nd = atoms%ntypsy(nat) - DO lh = 0,sphhar%nlh(nd) - l = sphhar%llh(lh,nd) - mems = sphhar%nmem(lh,nd) - DO mem = 1,mems - m = sphhar%mlh(mem,lh,nd) - WRITE (6,FMT=8010) l,m,qlmo(m,l,n),qlmp(m,l,n) - ! write(16,1002) l,m,qlmo(m,l,n),qlmp(m,l,n) - ENDDO - ENDDO - nat = nat + atoms%neq(n) - ENDDO - ! + +contains + + subroutine mpmom( input, mpi, atoms, sphhar, stars, sym, cell, oneD, qpw, rho, potdenType, qlm ) + + use m_types + implicit none + + type(t_input), intent(in) :: input + type(t_mpi), intent(in) :: mpi + type(t_oneD), intent(in) :: oneD + type(t_sym), intent(in) :: sym + type(t_stars), intent(in) :: stars + type(t_cell), intent(in) :: cell + type(t_sphhar), intent(in) :: sphhar + type(t_atoms), intent(in) :: atoms + real, intent(in) :: rho(:,0:,:) !(atoms%jmtd,0:sphhar%nlhd,atoms%ntype) + complex, intent(in) :: qpw(:) !(stars%ng3) + integer, intent(in) :: potdenType + complex, intent(out) :: qlm(-atoms%lmaxd:atoms%lmaxd,0:atoms%lmaxd,atoms%ntype) + + integer :: j, jm, lh, mb, mem, mems, n, nd, l, nat, m + complex :: qlmo(-atoms%lmaxd:atoms%lmaxd,0:atoms%lmaxd,atoms%ntype) + complex :: qlmp(-atoms%lmaxd:atoms%lmaxd,0:atoms%lmaxd,atoms%ntype) + + ! multipole moments of original charge density + if ( mpi%irank == 0 ) then + call mt_moments( input, atoms, sphhar, rho(:,:,:), potdenType, qlmo ) + end if + + ! multipole moments of the interstitial charge density in the spheres + call pw_moments( input, mpi, stars, atoms, cell, sym, oneD, qpw(:), potdenType, qlmp ) + + if ( mpi%irank == 0 ) then + ! see (A14) + qlm = qlmo - qlmp + ! output section + nat = 1 + do n = 1, atoms%ntype + write( 6, fmt=8000 ) n + nd = atoms%ntypsy(nat) + do lh = 0, sphhar%nlh(nd) + l = sphhar%llh(lh,nd) + mems = sphhar%nmem(lh,nd) + do mem = 1, mems + m = sphhar%mlh(mem,lh,nd) + write( 6, fmt=8010 ) l, m, qlmo(m,l,n), qlmp(m,l,n) + end do + end do + nat = nat + atoms%neq(n) + end do + 8000 FORMAT (/,10x,'multipole moments for atom type=',i5,/,/,t3,'l',t7,& & 'm',t27,'original',t57,'plane wave') 8010 FORMAT (1x,i2,2x,i3,2x,2 (5x,2e15.5)) ! - ENDIF ! mpi%irank == 0 + end if ! mpi%irank == 0 + + end subroutine mpmom + - END SUBROUTINE mpmom + subroutine mt_moments( input, atoms, sphhar, rho, potdenType, qlmo ) + ! multipole moments of original charge density + ! see (A15) (Coulomb case) or (A17) (Yukawa case) + use m_intgr, only: intgr3 + use m_constants, only: sfp_const, POTDEN_TYPE_POTYUK + use m_types + use m_DoubleFactorial + use m_SphBessel + implicit none - SUBROUTINE mt_moments(atoms,sphhar,rho,qlmo) - !multipole moments of original charge (q_{lm}^i) - USE m_intgr, ONLY : intgr3 - USE m_constants,ONLY:sfp_const - USE m_types - IMPLICIT NONE - TYPE(t_sphhar),INTENT(IN) :: sphhar - TYPE(t_atoms),INTENT(IN) :: atoms - REAL,INTENT(IN) :: rho(: ,0:, :) - COMPLEX,INTENT(OUT)::qlmo(-atoms%lmaxd:,0:,:) + type(t_input), intent(in) :: input + type(t_sphhar), intent(in) :: sphhar + type(t_atoms), intent(in) :: atoms + real, intent(in) :: rho(: ,0:, :) + integer, intent(in) :: potdenType + complex, intent(out) :: qlmo(-atoms%lmaxd:,0:,:) - INTEGER :: n,ns,jm,nl,l,j,mb ,m,nat - REAL :: fint - REAL f(MAXVAL(atoms%jri)) + integer :: n, ns, jm, nl, l, j, mb, m, nat, i, imax, lmax + real :: fint + real :: f( maxval( atoms%jri ) ) + real, allocatable, dimension(:,:) :: il, kl - qlmo=0.0 + if ( potdenType == POTDEN_TYPE_POTYUK ) then + allocate( il(0:atoms%lmaxd, 1:atoms%jmtd), kl(0:atoms%lmaxd, 1:atoms%jmtd) ) + end if + + qlmo = 0.0 nat = 1 - DO n = 1, atoms%ntype - ns = atoms%ntypsy(nat) - jm = atoms%jri(n) - DO nl = 0, sphhar%nlh(ns) - l = sphhar%llh(nl,ns) - DO j = 1, jm - f(j) = (atoms%rmsh(j,n)**l)*rho(j,nl,n) - ENDDO - CALL intgr3(f,atoms%rmsh(:,n),atoms%dx(n),jm,fint) - DO mb = 1, sphhar%nmem(nl,ns) - m = sphhar%mlh(mb,nl,ns) - qlmo(m,l,n) = qlmo(m,l,n) + sphhar%clnu(mb,nl,ns)*fint - ENDDO - ENDDO - qlmo(0,0,n) = qlmo(0,0,n) - atoms%zatom(n)/sfp_const - nat = nat + atoms%neq(n) - ENDDO - END SUBROUTINE mt_moments - - - SUBROUTINE pw_moments(mpi,stars,atoms,cell,sym,oneD,qpw_in,qlmp_out) - !multipole moments of plane wave charge inside the spheres (q_{lm}^{Ii}) - USE m_phasy1 - USE m_sphbes - USE m_od_phasy - USE m_constants,ONLY:sfp_const - USE m_types - IMPLICIT NONE - TYPE(t_mpi),INTENT(IN) :: mpi - TYPE(t_oneD),INTENT(IN) :: oneD - TYPE(t_sym),INTENT(IN) :: sym - TYPE(t_stars),INTENT(IN) :: stars - TYPE(t_cell),INTENT(IN) :: cell - TYPE(t_atoms),INTENT(IN) :: atoms - COMPLEX,INTENT(IN) :: qpw_in(:) - COMPLEX,INTENT(OUT):: qlmp_out(-atoms%lmaxd:,0:,:) - !locals - INTEGER:: n,k,l,ll1 ,lm,ierr(3),m - COMPLEX sk3i,cil,nqpw - COMPLEX pylm( (MAXVAL(atoms%lmax)+1)**2 ,atoms%ntype ) - REAL::sk3r,rl3 - REAL aj(0:MAXVAL(atoms%lmax)+1) - COMPLEX :: qpw(stars%ng3) - LOGICAL :: od + do n = 1, atoms%ntype + ns = atoms%ntypsy(nat) + jm = atoms%jri(n) + imax = atoms%jri(n) + lmax = sphhar%llh(sphhar%nlh(ns), ns) + if ( potdenType == POTDEN_TYPE_POTYUK ) then + do concurrent (i = 1:imax) + call ModSphBessel( il(:, i), kl(:, i), input%preconditioning_param * atoms%rmsh(i, n), lmax ) + end do + end if + do nl = 0, sphhar%nlh(ns) + l = sphhar%llh(nl,ns) + do j = 1, jm + if ( potdenType /= POTDEN_TYPE_POTYUK ) then + f(j) = atoms%rmsh(j,n) ** l * rho(j,nl,n) + else + f(j) = il(l, j) * rho(j,nl,n) + end if + end do + call intgr3( f, atoms%rmsh(:,n), atoms%dx(n), jm, fint ) + if ( potdenType == POTDEN_TYPE_POTYUK ) then + fint = fint * DoubleFactorial( l ) / input%preconditioning_param ** l + end if + do mb = 1, sphhar%nmem(nl,ns) + m = sphhar%mlh(mb,nl,ns) + qlmo(m,l,n) = qlmo(m,l,n) + sphhar%clnu(mb,nl,ns) * fint + end do + end do + if ( potdenType /= POTDEN_TYPE_POTYUK ) then + qlmo(0,0,n) = qlmo(0,0,n) - atoms%zatom(n) / sfp_const + end if + nat = nat + atoms%neq(n) + end do + + end subroutine mt_moments + + + subroutine pw_moments( input, mpi, stars, atoms, cell, sym, oneD, qpw_in, potdenType, qlmp_out ) + ! multipole moments of the interstitial charge in the spheres + + use m_phasy1 + use m_sphbes + use m_od_phasy + use m_constants, only: sfp_const, POTDEN_TYPE_POTYUK + use m_types + use m_DoubleFactorial + use m_SphBessel + implicit none + + type(t_input), intent(in) :: input + type(t_mpi), intent(in) :: mpi + type(t_oneD), intent(in) :: oneD + type(t_sym), intent(in) :: sym + type(t_stars), intent(in) :: stars + type(t_cell), intent(in) :: cell + type(t_atoms), intent(in) :: atoms + complex, intent(in) :: qpw_in(:) + integer, intent(in) :: potdenType + complex, intent(out) :: qlmp_out(-atoms%lmaxd:,0:,:) + + integer :: n, k, l, ll1, lm, ierr(3), m + complex :: sk3i, cil, nqpw + complex :: pylm(( maxval( atoms%lmax ) + 1 ) ** 2, atoms%ntype) + real :: sk3r, rl2 + real :: aj(0:maxval( atoms%lmax ) + 1 ) + complex :: qpw(stars%ng3) + logical :: od + real :: il(0:maxval( atoms%lmax ) + 1 ) + real :: kl(0:maxval( atoms%lmax ) + 1 ) #ifdef CPP_MPI - INCLUDE 'mpif.h' + include 'mpif.h' #endif - COMPLEX qlmp(-atoms%lmaxd:atoms%lmaxd,0:atoms%lmaxd,atoms%ntype) - - qpw=qpw_in(:stars%ng3) - qlmp= 0.0 - IF (mpi%irank==0) THEN - !g eq 0 term : \sqrt{4 \pi}/3 R_i^3 \rho_I(0) \delta_{l,0} - - DO n = 1,atoms%ntype - qlmp(0,0,n) = qpw(1)*stars%nstr(1)*atoms%volmts(n)/sfp_const - ENDDO - ENDIF + complex :: qlmp(-atoms%lmaxd:atoms%lmaxd,0:atoms%lmaxd,atoms%ntype) + + qpw = qpw_in(:stars%ng3) + qlmp = 0.0 + if ( mpi%irank == 0 ) then + ! q=0 term: see (A19) (Coulomb case) or (A20) (Yukawa case) + do n = 1, atoms%ntype + if ( potdenType /= POTDEN_TYPE_POTYUK ) then + qlmp(0,0,n) = qpw(1) * stars%nstr(1) * atoms%volmts(n) / sfp_const + else + call ModSphBessel( il(0:1), kl(0:1), input%preconditioning_param * atoms%rmt(n), 1 ) + qlmp(0,0,n) = qpw(1) * stars%nstr(1) * sfp_const * atoms%rmt(n) ** 2 * il(1) / input%preconditioning_param + end if + end do + end if #ifdef CPP_MPI - CALL MPI_BCAST(qpw,SIZE(qpw),MPI_DOUBLE_COMPLEX,0, mpi%mpi_comm,ierr) + call MPI_BCAST( qpw, size(qpw), MPI_DOUBLE_COMPLEX, 0, mpi%mpi_comm, ierr ) #endif - ! g ne 0 terms : \sum_{K \= 0} 4 \pi i^l \rho_I(K) R_i^{l+3} \times - ! j_{l+1} (KR_i) / KR_i \exp{iK\xi_i} Y^*_{lm} (K) - od=oneD%odi%d1 -! !$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(pylm,nqpw,n,sk3r,aj,rl3,sk3i,& -! !$OMP& l,cil,ll1,m,lm,k) REDUCTION(+:qlmp) - DO k = mpi%irank+2, stars%ng3, mpi%isize - IF (od) THEN - CALL od_phasy(atoms%ntype,stars%ng3,atoms%nat,atoms%lmaxd,atoms%ntype,atoms%neq,atoms%lmax,& - atoms%taual,cell%bmat,stars%kv3,k,oneD%odi,oneD%ods,& - pylm) - ELSE - CALL phasy1(atoms,stars,sym,cell,k,pylm) - END IF - ! - nqpw = qpw(k)*stars%nstr(k) - DO n = 1,atoms%ntype - sk3r = stars%sk3(k)*atoms%rmt(n) - CALL sphbes(atoms%lmax(n)+1,sk3r,aj) - rl3 = atoms%rmt(n)**3 - sk3i = nqpw/sk3r - DO l = 0,atoms%lmax(n) - cil = aj(l+1)*sk3i*rl3 - ll1 = l*(l+1) + 1 - DO m = -l,l - lm = ll1 + m - qlmp(m,l,n) = qlmp(m,l,n) + cil*pylm(lm,n) - ENDDO - rl3 = rl3*atoms%rmt(n) - ENDDO ! l = 0, atoms%lmax(n) - ENDDO ! n = 1, atoms%ntype - ENDDO ! k = 2, stars%ng3 -! !$OMP END PARALLEL DO + + ! q/=0 terms: see (A16) (Coulomb case) or (A18) (Yukawa case) + od = oneD%odi%d1 + !$omp parallel do default( shared ) private( pylm, nqpw, n, sk3r, aj, rl2, sk3i, & + !$omp& l, cil, ll1, m, lm, k ) reduction( +:qlmp ) + do k = mpi%irank+2, stars%ng3, mpi%isize + if ( od ) then + call od_phasy( atoms%ntype, stars%ng3, atoms%nat, atoms%lmaxd, atoms%ntype, & + atoms%neq, atoms%lmax, atoms%taual, cell%bmat, stars%kv3, k, oneD%odi, oneD%ods, pylm) + else + call phasy1( atoms, stars, sym, cell, k, pylm ) + end if + + nqpw = qpw(k) * stars%nstr(k) + do n = 1, atoms%ntype + sk3r = stars%sk3(k) * atoms%rmt(n) + call sphbes( atoms%lmax(n) + 1, sk3r, aj ) + rl2 = atoms%rmt(n) ** 2 + if ( potdenType == POTDEN_TYPE_POTYUK ) then + call ModSphBessel( il(0:atoms%lmax(n)+1), kl(0:atoms%lmax(n)+1), input%preconditioning_param * atoms%rmt(n), atoms%lmax(n) + 1 ) + sk3i = nqpw / ( stars%sk3(k) ** 2 + input%preconditioning_param ** 2 ) * rl2 + else + sk3i = nqpw / stars%sk3(k) + end if + do l = 0, atoms%lmax(n) + if ( potdenType == POTDEN_TYPE_POTYUK ) then + cil = ( stars%sk3(k) * il(l) * aj(l+1) + input%preconditioning_param * il(l+1) * aj(l) ) * ( DoubleFactorial( l ) / input%preconditioning_param ** l ) * sk3i + else + cil = aj(l+1) * sk3i * rl2 + rl2 = rl2 * atoms%rmt(n) + end if + ll1 = l * ( l + 1 ) + 1 + do m = -l, l + lm = ll1 + m + qlmp(m,l,n) = qlmp(m,l,n) + cil * pylm(lm,n) + end do + end do ! l = 0, atoms%lmax(n) + end do ! n = 1, atoms%ntype + end do ! k = 2, stars%ng3 + !$omp end parallel do #ifdef CPP_MPI - PRINT *,"mpi",mpi%irank,qlmp(0,0,:) - CALL MPI_REDUCE(qlmp,qlmp_out,SIZE(qlmp),MPI_DOUBLE_COMPLEX,MPI_SUM,0,mpi%mpi_comm,ierr) + print *, "mpi", mpi%irank, qlmp(0,0,:) + call MPI_REDUCE( qlmp, qlmp_out, size(qlmp), MPI_DOUBLE_COMPLEX, MPI_SUM, 0, mpi%mpi_comm, ierr ) #else - qlmp_out=qlmp + qlmp_out = qlmp #endif - END SUBROUTINE pw_moments -END MODULE m_mpmom + end subroutine pw_moments + +end module m_mpmom diff --git a/vgen/psqpw.F90 b/vgen/psqpw.F90 index 78facb0f7eeb881299919d24a2a540b815be2d1c..ba9b2167075218227feef28ea23fa17e52d33f65 100644 --- a/vgen/psqpw.F90 +++ b/vgen/psqpw.F90 @@ -1,238 +1,216 @@ -MODULE m_psqpw +module m_psqpw ! *********************************************************** ! generates the fourier coefficients of pseudo charge density - ! c.l.fu - ! corrected april 1990 m.w. - ! - ! cf. M.Weinert J.Math.Phys. 22(11) (1981) p.2434 eq. (10)-(15) - ! - ! - ! parallelized 04/08 gb + ! + ! For yukawa_residual = .true. the subroutines calculate the + ! pseudo charge density for the generation of the Yukawa + ! potential instead of the Coulomb potential. This is used in + ! the preconditioning of the SCF iteration for metallic systems. + ! + ! references: + ! for both the Coulomb and Yukawa cases: + ! F. Tran, P. Blaha: Phys. Rev. B 83, 235118 (2011) + ! or see the original paper for the normal Coulomb case only: + ! M. Weinert: J. Math. Phys. 22(11) (1981) p.2434 eq. (10)-(15) ! *********************************************************** -CONTAINS - SUBROUTINE psqpw(mpi,& - & atoms,sphhar,stars,vacuum,& - & DIMENSION,cell,input,sym,oneD,& - & qpw,rho,rht,l_xyav,& - & psq) - ! + +contains + + subroutine psqpw( mpi, atoms, sphhar, stars, vacuum, dimension, cell, input, sym, oneD, & + & qpw, rho, rht, l_xyav, potdenType, psq ) + #include"cpp_double.h" - USE m_constants - USE m_phasy1 - USE m_mpmom - USE m_sphbes - USE m_qsf - USE m_od_phasy - USE m_od_cylbes - USE m_types + use m_constants + use m_phasy1 + use m_mpmom + use m_sphbes + use m_qsf + use m_od_phasy + use m_od_cylbes + use m_types + use m_DoubleFactorial + use m_SphBessel + implicit none - IMPLICIT NONE - ! .. - ! .. Scalar Arguments .. - TYPE(t_mpi),INTENT(IN) :: mpi - TYPE(t_atoms),INTENT(IN) :: atoms - TYPE(t_sphhar),INTENT(IN) :: sphhar - TYPE(t_stars),INTENT(IN) :: stars - TYPE(t_vacuum),INTENT(IN) :: vacuum - TYPE(t_dimension),INTENT(IN) :: DIMENSION - TYPE(t_cell),INTENT(IN) :: cell - TYPE(t_input),INTENT(IN) :: input - TYPE(t_sym),INTENT(IN) :: sym - TYPE(t_oneD),INTENT(IN) :: oneD + type(t_mpi), intent(in) :: mpi + type(t_atoms), intent(in) :: atoms + type(t_sphhar), intent(in) :: sphhar + type(t_stars), intent(in) :: stars + type(t_vacuum), intent(in) :: vacuum + type(t_dimension), intent(in) :: dimension + type(t_cell), intent(in) :: cell + type(t_input), intent(in) :: input + type(t_sym), intent(in) :: sym + type(t_oneD), intent(in) :: oneD + logical, intent(in) :: l_xyav + complex, intent(in) :: qpw(stars%ng3) + real, intent(in) :: rho(atoms%jmtd,0:sphhar%nlhd,atoms%ntype) + real, intent(in) :: rht(vacuum%nmzd,2) + integer, intent(in) :: potdenType + complex, intent(out) :: psq(stars%ng3) - LOGICAL, INTENT (IN) :: l_xyav - ! .. - ! .. Array Arguments .. - COMPLEX, INTENT (IN) :: qpw(stars%ng3) - REAL, INTENT (IN) :: rho(atoms%jmtd,0:sphhar%nlhd,atoms%ntype) - REAL, INTENT (IN) :: rht(vacuum%nmzd,2) - COMPLEX, INTENT (OUT):: psq(stars%ng3) - !-odim - !+odim - ! .. - ! .. Local Scalars .. - COMPLEX psint,sa,sl,sm - REAL f,fact,fpo,gz,p,qvac,rmtl,s,fJ,gr,g - INTEGER ivac,k,l ,n,n1,nc,ncvn,lm,ll1 ,nd,m,nz - ! .. - ! .. Local Arrays .. - COMPLEX pylm( (atoms%lmaxd+1)**2 ,atoms%ntype ) - COMPLEX qlm(-atoms%lmaxd:atoms%lmaxd,0:atoms%lmaxd,atoms%ntype) - REAL q2(vacuum%nmzd),pn(0:atoms%lmaxd,atoms%ntype),aj(0:atoms%lmaxd+DIMENSION%ncvd+1) - REAL rht1(vacuum%nmz) + complex :: psint, sa, sl, sm + real :: f, fact, fpo, gz, p, qvac, rmtl, s, fJ, gr, g + integer :: ivac, k, l, n, n1, nc, ncvn, lm, ll1, nd, m, nz + complex :: pylm(( atoms%lmaxd + 1 ) ** 2, atoms%ntype) + complex :: qlm(-atoms%lmaxd:atoms%lmaxd,0:atoms%lmaxd,atoms%ntype) + real :: q2(vacuum%nmzd) + real :: pn(0:atoms%lmaxd,atoms%ntype) + real :: aj(0:atoms%lmaxd+DIMENSION%ncvd+1) + real :: rht1(vacuum%nmz) + real, allocatable, dimension(:) :: il, kl + real :: g0(atoms%ntype) #ifdef CPP_MPI - INCLUDE 'mpif.h' - INTEGER ierr(3) - COMPLEX, ALLOCATABLE :: c_b(:) + include 'mpif.h' + integer :: ierr(3) + complex, allocatable :: c_b(:) #endif - ! .. - - ! ! Calculate multipole moments - ! - CALL mpmom(mpi,& - & atoms,sphhar,stars,& - & sym,cell,oneD,& - & qpw,rho,& - & qlm) + call mpmom( input, mpi, atoms, sphhar, stars, sym, cell, oneD, qpw, rho, potdenType, qlm ) #ifdef CPP_MPI - psq(:) = CMPLX(0.0,0.0) - CALL MPI_BCAST(qpw,size(qpw),CPP_MPI_COMPLEX,0,mpi%mpi_comm,ierr) - nd = (2*atoms%lmaxd+1)*(atoms%lmaxd+1)*atoms%ntype - CALL MPI_BCAST(qlm,nd,CPP_MPI_COMPLEX,0,mpi%MPI_COMM,ierr) + psq(:) = cmplx( 0.0, 0.0 ) + call MPI_BCAST( qpw, size(qpw), CPP_MPI_COMPLEX, 0, mpi%mpi_comm, ierr ) + nd = ( 2 * atoms%lmaxd + 1 ) * ( atoms%lmaxd + 1 ) * atoms%ntype + call MPI_BCAST( qlm, nd, CPP_MPI_COMPLEX, 0, mpi%MPI_COMM, ierr ) #endif - ! - ! pn(l,n) = (2l + 2nc(n) + 3)!! / (2l + 1)!! R^l ; ncv(n)=n+l in paper - ! - DO n = 1,atoms%ntype - rmtl = 1.0 - DO l = 0,atoms%lmax(n) - IF (l.GE.atoms%ncv(n)) THEN - pn(l,n) = 0.0 - ELSE - p = 1. - DO nc = l,atoms%ncv(n) - p = p* (2*nc+3) - ENDDO - pn(l,n) = p/rmtl - END IF - rmtl = rmtl*atoms%rmt(n) - ENDDO - ENDDO - ! - ! G eq 0 term (eq.29) : \tilde \rho_s (0) = \sqrt{4 pi} / \Omega \sum_i \tilde q_{00}^i - ! + + ! prefactor in (A10) (Coulomb case) or (A11) (Yukawa case) + ! nc(n) is the integer p in the paper; ncv(n) is l + p + ! Coulomb case: pn(l,n) = (2 * l + 2 * p + 3)!! / ( (2 * l + 1)!! * R ** (ncv(n) + 1) ), + ! Yukawa case: pn(l,n) = lambda ** (l + p + 1) / ( i_{l+p+1}(lambda * R) * (2 * l + 1)!! ) + ! g0 is the prefactor for the q=0 component in (A13) + pn = 0. + do n = 1, atoms%ntype + if ( potdenType /= POTDEN_TYPE_POTYUK ) then + do l = 0, min( atoms%ncv(n) - 1, atoms%lmax(n) ) + pn(l, n) = DoubleFactorial( atoms%ncv(n) + 1, l ) / ( atoms%rmt(n) ** ( atoms%ncv(n) + 1 ) ) + end do + else + allocate( il(0:atoms%ncv(n)+1), kl(0:atoms%ncv(n)+1) ) + call ModSphBessel( il(0:), kl(0:), input%preconditioning_param * atoms%rmt(n), atoms%ncv(n) + 1 ) + g0(n) = ( input%preconditioning_param * atoms%rmt(n) ) ** ( atoms%ncv(n) + 1 ) / DoubleFactorial( atoms%ncv(n) + 1 ) / il( atoms%ncv(n) + 1 ) !p=ncv(n) + do l = 0, min( atoms%ncv(n) - 1, atoms%lmax(n) ) + pn(l, n) = input%preconditioning_param ** ( atoms%ncv(n) + 1 ) / il( atoms%ncv(n) + 1 ) / DoubleFactorial( l ) + end do + deallocate( il, kl ) + end if + end do + + ! q=0 term: see (A12) (Coulomb case) or (A13) (Yukawa case) + if( mpi%irank == 0 ) then s = 0. - DO n = 1,atoms%ntype - s = s + atoms%neq(n)*REAL(qlm(0,0,n)) - ENDDO - IF (mpi%irank == 0) THEN - psq(1) = qpw(1) + (sfp_const/cell%omtil)*s - ENDIF - ! - ! G ne 0 term (eq.28) : \tilde \rho_s (K) = 4 pi / \Omega \sum_{lmi} (-i)^l \exp{-iK\xi_i} - ! (2n+3)!!/(2l+1)!! * 1/R_i^l * j_{n+1}(KR_i)/(KR_i)^{n-l+1} Y_{lm} (K) - ! - fpo = 1./cell%omtil - !$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(pylm,sa,n,ncvn,aj,& - !$OMP& sl,l,n1,ll1,sm,m,lm) - DO k = mpi%irank+2, stars%ng3, mpi%isize - IF (.NOT.oneD%odi%d1) THEN - CALL phasy1(& - & atoms,stars,sym,& - & cell,k,& - & pylm) - ELSE - !-odim - CALL od_phasy(& - & atoms%ntype,stars%ng3,atoms%nat,atoms%lmaxd,atoms%ntype,atoms%neq,atoms%lmax,& - & atoms%taual,cell%bmat,stars%kv3,k,oneD%odi,oneD%ods,& - & pylm) - !+odim - END IF - ! - sa = 0. - DO n = 1,atoms%ntype - ncvn = atoms%ncv(n) - CALL sphbes(ncvn+1,stars%sk3(k)*atoms%rmt(n),aj) - sl = 0. - DO l = 0,atoms%lmax(n) - IF (l.GE.ncvn) GO TO 60 - n1 = ncvn - l + 1 - ll1 = l*(l+1) + 1 - sm = 0. - DO m = -l,l - lm = ll1 + m - sm = sm + qlm(m,l,n)*CONJG(pylm(lm,n)) - ENDDO -60 sl = sl + pn(l,n)/ ((stars%sk3(k)*atoms%rmt(n))**n1)*aj(ncvn+1)*sm - ENDDO - sa = sa + atoms%neq(n)*sl - ENDDO - psq(k) = qpw(k) + fpo*sa - ENDDO - !$OMP END PARALLEL DO + do n = 1, atoms%ntype + if ( potdenType /= POTDEN_TYPE_POTYUK ) then + s = s + atoms%neq(n) * real( qlm(0,0,n) ) + else + s = s + atoms%neq(n) * real( qlm(0,0,n) ) * g0(n) + end if + end do + !if( mpi%irank == 0 ) then + psq(1) = qpw(1) + ( sfp_const / cell%omtil ) * s + end if + + ! q/=0 term: see (A10) (Coulomb case) or (A11) (Yukawa case) + fpo = 1. / cell%omtil + !$omp parallel do default( shared ) private( pylm, sa, n, ncvn, aj, sl, l, n1, ll1, sm, m, lm ) + do k = mpi%irank+2, stars%ng3, mpi%isize + if ( .not. oneD%odi%d1 ) then + call phasy1( atoms, stars, sym, cell, k, pylm ) + else + call od_phasy( atoms%ntype, stars%ng3, atoms%nat, atoms%lmaxd, atoms%ntype, atoms%neq, & + atoms%lmax, atoms%taual, cell%bmat, stars%kv3, k, oneD%odi, oneD%ods, pylm ) + end if + sa = 0. + do n = 1, atoms%ntype + ncvn = atoms%ncv(n) + call sphbes( ncvn + 1 , stars%sk3(k) * atoms%rmt(n), aj ) + sl = 0. + do l = 0, atoms%lmax(n) + if ( l >= ncvn ) go to 60 + n1 = ncvn - l + 1 + ll1 = l * ( l + 1 ) + 1 + sm = 0. + do m = -l, l + lm = ll1 + m + sm = sm + qlm(m,l,n) * conjg( pylm(lm,n) ) + end do +60 sl = sl + pn(l,n) / ( stars%sk3(k) ** n1 ) * aj( ncvn + 1 ) * sm + end do + sa = sa + atoms%neq(n) * sl + end do + psq(k) = qpw(k) + fpo * sa + end do + !$omp end parallel do #ifdef CPP_MPI - ALLOCATE(c_b(stars%ng3)) - CALL MPI_REDUCE(psq,c_b,stars%ng3,CPP_MPI_COMPLEX,MPI_SUM,0,mpi%MPI_COMM,ierr) - IF (mpi%irank.EQ.0) THEN - psq(:stars%ng3)=c_b(:stars%ng3) - ENDIF - DEALLOCATE (c_b) + allocate( c_b(stars%ng3) ) + call MPI_REDUCE( psq, c_b, stars%ng3, CPP_MPI_COMPLEX, MPI_SUM, 0, mpi%MPI_COMM, ierr ) + if ( mpi%irank == 0 ) then + psq(:stars%ng3) = c_b(:stars%ng3) + end if + deallocate( c_b ) #endif - IF (mpi%irank == 0) THEN - ! - ! Check: integral of the pseudo charge density within the slab - ! - IF (input%film .AND. .NOT.oneD%odi%d1) THEN - psint = psq(1)*stars%nstr(1)*vacuum%dvac - DO k = 2,stars%ng3 - IF (stars%ig2(k).EQ.1) THEN - gz = stars%kv3(3,k)*cell%bmat(3,3) - f = 2.*SIN(gz*cell%z1)/gz - psint = psint + stars%nstr(k)*psq(k)*f - END IF - ENDDO - psint = cell%area*psint - ELSEIF (input%film .AND. oneD%odi%d1) THEN - !-odim - psint = (0.0,0.0) - DO k = 2,stars%ng3 - IF (stars%kv3(3,k).EQ.0) THEN - g = (stars%kv3(1,k)*cell%bmat(1,1) + stars%kv3(2,k)*cell%bmat(2,1))**2 +& - & (stars%kv3(1,k)*cell%bmat(1,2) + stars%kv3(2,k)*cell%bmat(2,2))**2 - gr = SQRT(g) - CALL od_cylbes(1,gr*cell%z1,fJ) - f = 2*cell%vol*fJ/(gr*cell%z1) - psint = psint + stars%nstr(k)*psq(k)*f - END IF - ENDDO - psint = psint + psq(1)*stars%nstr(1)*cell%vol - !+odim - ELSEIF (.NOT.input%film) THEN - psint = psq(1)*stars%nstr(1)*cell%omtil - ENDIF - WRITE (6,FMT=8000) psint - WRITE (16,FMT=8000) psint -8000 FORMAT (/,10x,'integral of pseudo charge density inside the slab='& + + if ( mpi%irank == 0 ) then + ! Check: integral of the pseudo charge density within the slab + if ( input%film .and. .not. oneD%odi%d1 ) then + psint = psq(1) * stars%nstr(1) * vacuum%dvac + do k = 2, stars%ng3 + if ( stars%ig2(k) == 1 ) then + gz = stars%kv3(3,k) * cell%bmat(3,3) + f = 2. * sin( gz * cell%z1 ) / gz + psint = psint + stars%nstr(k) * psq(k) * f + end if + end do + psint = cell%area * psint + else if ( input%film .and. oneD%odi%d1 ) then + psint = (0.0, 0.0) + do k = 2, stars%ng3 + if ( stars%kv3(3,k) == 0 ) then + g = ( stars%kv3(1,k) * cell%bmat(1,1) + stars%kv3(2,k) * cell%bmat(2,1) ) ** 2 + & + & ( stars%kv3(1,k) * cell%bmat(1,2) + stars%kv3(2,k) * cell%bmat(2,2) ) ** 2 + gr = sqrt( g ) + call od_cylbes( 1, gr * cell%z1, fJ ) + f = 2 * cell%vol * fJ / ( gr * cell%z1 ) + psint = psint + stars%nstr(k) * psq(k) * f + end if + end do + psint = psint + psq(1) * stars%nstr(1) * cell%vol + else if ( .not. input%film ) then + psint = psq(1) * stars%nstr(1) * cell%omtil + end if + write( 6, fmt=8000 ) psint + write( 16, fmt=8000 ) psint +8000 format (/,10x,'integral of pseudo charge density inside the slab='& & ,5x,2f11.6) - IF (.NOT.input%film) RETURN - ! - ! Normalized pseudo density - ! - IF (.NOT.oneD%odi%d1) THEN - qvac = 0.0 - DO ivac = 1,vacuum%nvac - CALL qsf(vacuum%delz,rht(1,ivac),q2,vacuum%nmz,0) - q2(1) = q2(1)*cell%area - qvac = qvac + q2(1)*2./REAL(vacuum%nvac) - ENDDO - qvac = qvac - 2*input%sigma - ELSE - !-odim - qvac = 0.0 - DO nz = 1,vacuum%nmz - rht1(nz) = (cell%z1+(nz-1)*vacuum%delz)*& - & rht(nz,vacuum%nvac) - ENDDO - CALL qsf(vacuum%delz,rht1(1),q2,vacuum%nmz,0) - qvac = cell%area*q2(1) - !+odim - END IF - ! fact = abs(qvac/psint) - ! DO k = 1,nq3 - ! psq(k) = fact*psq(k) - ! ENDDO - IF (l_xyav) RETURN - fact = (qvac + psint)/(stars%nstr(1)*cell%vol) - psq(1) = psq(1) - fact - !-gu - WRITE (6,FMT=8010) fact*1000 - WRITE (16,FMT=8010) fact*1000 -8010 FORMAT (/,10x,' 1000 * normalization const. ='& + if ( .not. input%film .or. potdenType == POTDEN_TYPE_POTYUK ) return + + ! Normalized pseudo density + if ( .not. oneD%odi%d1 ) then + qvac = 0.0 + do ivac = 1, vacuum%nvac + call qsf( vacuum%delz, rht(1,ivac), q2, vacuum%nmz, 0 ) + q2(1) = q2(1) * cell%area + qvac = qvac + q2(1) * 2. / real( vacuum%nvac ) + end do + qvac = qvac - 2 * input%sigma + else + qvac = 0.0 + do nz = 1, vacuum%nmz + rht1(nz) = ( cell%z1 + ( nz - 1 ) * vacuum%delz ) * rht(nz,vacuum%nvac) + end do + call qsf( vacuum%delz, rht1(1), q2, vacuum%nmz, 0 ) + qvac = cell%area * q2(1) + end if + if ( l_xyav ) return + fact = ( qvac + psint ) / ( stars%nstr(1) * cell%vol ) + psq(1) = psq(1) - fact + write( 6, fmt=8010 ) fact * 1000 + write( 16, fmt=8010 ) fact * 1000 +8010 format (/,10x,' 1000 * normalization const. ='& & ,5x,2f11.6) - ! - ENDIF ! mpi%irank == 0 - END SUBROUTINE psqpw -END MODULE m_psqpw + end if ! mpi%irank == 0 + + end subroutine psqpw + +end module m_psqpw diff --git a/vgen/vgen_coulomb.F90 b/vgen/vgen_coulomb.F90 index 5422fd4c445d233a61be76f3804e1392fb35d380..18b684dac4c15792bddb00907500a654dc7277fa 100644 --- a/vgen/vgen_coulomb.F90 +++ b/vgen/vgen_coulomb.F90 @@ -3,229 +3,223 @@ ! This file is part of FLEUR and available as free software under the conditions ! of the MIT license as expressed in the LICENSE file in more detail. !-------------------------------------------------------------------------------- -MODULE m_vgen_coulomb - USE m_juDFT -CONTAINS - SUBROUTINE vgen_coulomb(ispin,mpi,DIMENSION,oneD,input,field,vacuum,sym,stars,cell,sphhar,atoms,den,vCoul,results) - ! *********************************************************** - ! FLAPW potential generator - ! *********************************************************** - ! Generates the Coulomb potential and optionally the density-potential integrals - ! is takes a spin variable to indicate in which spin-channel the charge resides... - ! - ! *********************************************************** - USE m_constants - USE m_vmts - USE m_intnv - USE m_vvac - USE m_vvacis - USE m_vvacxy - USE m_vintcz - USE m_checkdopall - USE m_types - USE m_od_vvac - USE m_od_vvacis - USE m_convol - USE m_psqpw - USE m_cfft - IMPLICIT NONE - INTEGER,INTENT(IN) :: ispin - TYPE(t_mpi),INTENT(IN) :: mpi - TYPE(t_dimension),INTENT(IN) :: dimension - TYPE(t_oneD),INTENT(IN) :: oneD - TYPE(t_input),INTENT(IN) :: input - TYPE(t_field),INTENT(INOUT) :: field - TYPE(t_vacuum),INTENT(IN) :: vacuum - TYPE(t_sym),INTENT(IN) :: sym - TYPE(t_stars),INTENT(IN) :: stars - TYPE(t_cell),INTENT(IN) :: cell - TYPE(t_sphhar),INTENT(IN) :: sphhar - TYPE(t_atoms),INTENT(IN) :: atoms - TYPE(t_potden), INTENT(IN) :: den - TYPE(t_potden),INTENT(INOUT) :: vCoul - TYPE(t_results),INTENT(INOUT),OPTIONAL :: results - ! .. - - - ! .. Local Scalars .. - COMPLEX vintcza,xint,rhobar - INTEGER i,i3,irec2,irec3,ivac,j,js,k,k3,lh,n,nzst1 - INTEGER imz,imzxy,ichsmrg,ivfft - INTEGER l,nat - REAL ani,g3,z,sig1dh,vz1dh - ! .. - ! .. Local Arrays .. - COMPLEX, ALLOCATABLE :: alphm(:,:),psq(:) - REAL, ALLOCATABLE :: af1(:),bf1(:) +module m_vgen_coulomb + + use m_juDFT + +contains + + subroutine vgen_coulomb( ispin, mpi, dimension, oneD, input, field, vacuum, sym, stars, & + cell, sphhar, atoms, den, vCoul, results ) + !---------------------------------------------------------------------------- + ! FLAPW potential generator + !---------------------------------------------------------------------------- + ! Generates the Coulomb or Yukawa potential and optionally the + ! density-potential integrals + ! vCoul%potdenType = POTDEN_TYPE_POTYUK -> Yukawa case + ! It takes a spin variable to indicate in which spin-channel the charge + ! resides. + !---------------------------------------------------------------------------- + + use m_constants + use m_vmts + use m_intnv + use m_vvac + use m_vvacis + use m_vvacxy + use m_vintcz + use m_checkdopall + use m_types + use m_od_vvac + use m_od_vvacis + use m_convol + use m_psqpw + use m_cfft + implicit none + + integer, intent(in) :: ispin + type(t_mpi), intent(in) :: mpi + type(t_dimension), intent(in) :: dimension + type(t_oneD), intent(in) :: oneD + type(t_input), intent(in) :: input + type(t_field), intent(inout) :: field + type(t_vacuum), intent(in) :: vacuum + type(t_sym), intent(in) :: sym + type(t_stars), intent(in) :: stars + type(t_cell), intent(in) :: cell + type(t_sphhar), intent(in) :: sphhar + type(t_atoms), intent(in) :: atoms + type(t_potden), intent(in) :: den + type(t_potden), intent(inout) :: vCoul + type(t_results), intent(inout), optional :: results + + complex :: vintcza, xint, rhobar + integer :: i, i3, irec2, irec3, ivac, j, js, k, k3 + integer :: lh, n, nzst1 + integer :: imz, imzxy, ichsmrg, ivfft + integer :: l, nat + real :: ani, g3, z, sig1dh, vz1dh + complex, allocatable :: alphm(:,:), psq(:) + real, allocatable :: af1(:), bf1(:) #ifdef CPP_MPI include 'mpif.h' integer:: ierr #endif + - ALLOCATE ( alphm(stars%ng2,2),af1(3*stars%mx3),bf1(3*stars%mx3),psq(stars%ng3) ) - - + + allocate ( alphm(stars%ng2,2), af1(3*stars%mx3), bf1(3*stars%mx3), psq(stars%ng3) ) vCoul%iter = den%iter - ! - ! ************** coulomb potential *********************** - - ! ----> create pesudo-charge density coefficients - - - CALL timestart("psqpw") - CALL psqpw(mpi, atoms,sphhar,stars,vacuum, DIMENSION,cell,input,sym,oneD,& - den%pw(:,ispin),den%mt(:,:,:,ispin),den%vacz(:,:,ispin),.FALSE., psq) - CALL timestop("psqpw") - IF (mpi%irank == 0) THEN - !First the vacuum - ! ------------------------------------------ - IF (oneD%odi%d1) THEN - !-odim - CALL timestart("Vacuum") - - !---> generates the m=0,gz=0 component of the vacuum potential - CALL od_vvac(stars,vacuum,cell, psq,den%vacz(:,:,ispin), vCoul%vacz(:,:,ispin)) - - !---> generation of the vacuum warped potential components and - !---> interstitial pw potential - !---> vvacxy_5.F is a symmetrized potential generator - - CALL od_vvacis(oneD%odi%n2d,dimension,vacuum,oneD%odi%nq2,& - oneD%odi%kv,cell,oneD%odi%M,stars,oneD%odi%nst2,& - oneD, den%vacz(:,:,ispin),den%vacxy(:,:,:,ispin),psq,& - vCoul%vacz(:,:,ispin),sym, vCoul%vacxy(:,:,:,ispin),vCoul%pw(:,ispin)) - CALL timestop("Vacuum") - - !+odim - ELSEIF (input%film .AND. .NOT.oneD%odi%d1) THEN - ! ----> potential in the vacuum region - ! - CALL timestart("Vacuum") - CALL vvac(vacuum,stars, cell,sym,input,field, psq,den%vacz(:,:,ispin), vCoul%vacz(:,:,ispin),rhobar,sig1dh,vz1dh) - CALL vvacis(stars,vacuum, sym,cell, psq, input,field, vCoul%vacxy(:,:,:,ispin)) - - CALL vvacxy(stars,vacuum,cell,sym,input,field, den%vacxy(:,:,:,ispin), vCoul%vacxy(:,:,:,ispin), alphm) - CALL timestop("Vacuum") - END IF - ! ------------------------------------------ - ! ----> potential in the interstitial region - CALL timestart("interstitial") - WRITE (6,FMT=8010) -8010 FORMAT (/,5x,'coulomb potential in the interstitial region:') - IF (input%film .AND. .NOT.oneD%odi%d1) THEN - ! -----> create v(z) for each 2-d reciprocal vector - ivfft = 3*stars%mx3 - ! ivfft = 2*mx3 - 1 - ani = 1.0/REAL(ivfft) - DO irec2 = 1,stars%ng2 - i = 0 - DO i3 = 0,ivfft - 1 - i = i + 1 - z = cell%amat(3,3)*i3*ani - IF (z.GT.cell%amat(3,3)/2.) z = z - cell%amat(3,3) - vintcza = vintcz(stars,vacuum,cell,sym,input,field,& - z,irec2, psq,vCoul%vacxy(:,:,:,ispin),vCoul%vacz(:,:,ispin),rhobar,sig1dh,vz1dh,alphm) - af1(i) = REAL(vintcza) - bf1(i) = AIMAG(vintcza) - ENDDO - ! z = (i_sm-1)*ani - ! IF (z > 0.5) z = z - 1.0 - ! af1(i_sm) = af1(i_sm) + z * delta - ! bf1(i_sm) = bf1(i_sm) + z * deltb - ! ENDDO - ! ENDIF - ! --> 1-d fourier transform and store the coefficients in vTot%pw( ,1) - CALL cfft(af1,bf1,ivfft,ivfft,ivfft,-1) - ! delta = ivfft * delta * 2 / fpi ! * amat(3,3)**2 * ani - i = 0 - DO i3 = 0,ivfft - 1 - k3 = i3 - IF (k3 > FLOOR(ivfft/2.) ) k3 = k3 - ivfft - i = i + 1 - IF ((k3.GE.-stars%mx3).AND.(k3.LE.stars%mx3)) THEN - irec3 = stars%ig(stars%kv2(1,irec2),stars%kv2(2,irec2),k3) - - ! IF ( (irec2 == 1).AND.(i3 > 0) ) THEN ! smooth potential - ! corr = 2.0*mod(abs(k3),2) - 1.0 - ! bf1(i) = bf1(i) + delta * corr / k3 - ! ENDIF - - ! ----> only stars within g_max sphere (shz oct.97) - IF (irec3.NE.0) THEN - ! - xint = CMPLX(af1(i),bf1(i))*ani - nzst1 = stars%nstr(irec3)/stars%nstr2(irec2) - IF (sym%invs.AND.(.NOT.sym%zrfs)) THEN - xint = xint*stars%rgphs(stars%kv2(1,irec2),stars%kv2(2,irec2),k3) - ENDIF - vCoul%pw(irec3,1) = vCoul%pw(irec3,1) + xint/nzst1 - END IF - ENDIF - ENDDO - ENDDO - ELSEIF (.NOT.input%film) THEN - vCoul%pw(1,ispin) = CMPLX(0.0,0.0) - vCoul%pw(2:stars%ng3,ispin)=fpi_const*psq(2:stars%ng3)/(stars%sk3(2:stars%ng3)*stars%sk3(2:stars%ng3)) - END IF - - CALL timestop("interstitial") - - ENDIF ! mpi%irank == 0 - ! -------------------------------------------- - ! ---> potential in the muffin-tin spheres - - CALL timestart("MT-spheres") + + ! PSEUDO-CHARGE DENSITY COEFFICIENTS + call timestart( "psqpw" ) + call psqpw( mpi, atoms, sphhar, stars, vacuum, dimension, cell, input, sym, oneD, & + den%pw(:,ispin), den%mt(:,:,:,ispin), den%vacz(:,:,ispin), .false., vCoul%potdenType, psq ) + call timestop( "psqpw" ) + + + + ! VACUUM POTENTIAL + if ( mpi%irank == 0 ) then + if ( oneD%odi%d1 ) then + call timestart( "Vacuum" ) + !---> generates the m=0,gz=0 component of the vacuum potential + call od_vvac( stars, vacuum, cell, psq, den%vacz(:,:,ispin), vCoul%vacz(:,:,ispin) ) + !---> generation of the vacuum warped potential components and + !---> interstitial pw potential + !---> vvacxy_5.F is a symmetrized potential generator + call od_vvacis( oneD%odi%n2d, dimension, vacuum, oneD%odi%nq2, & + oneD%odi%kv, cell, oneD%odi%M, stars, oneD%odi%nst2, & + oneD, den%vacz(:,:,ispin), den%vacxy(:,:,:,ispin), psq, & + vCoul%vacz(:,:,ispin), sym, vCoul%vacxy(:,:,:,ispin), vCoul%pw(:,ispin) ) + call timestop( "Vacuum" ) + !---> generation of the vacuum warped potential components and + elseif ( input%film .and. .not. oneD%odi%d1 ) then + ! ----> potential in the vacuum region + call timestart( "Vacuum" ) + call vvac( vacuum, stars, cell, sym, input, field, psq, den%vacz(:,:,ispin), vCoul%vacz(:,:,ispin), rhobar, sig1dh, vz1dh ) + call vvacis( stars, vacuum, sym, cell, psq, input, field, vCoul%vacxy(:,:,:,ispin) ) + call vvacxy( stars, vacuum, cell, sym, input, field, den%vacxy(:,:,:,ispin), vCoul%vacxy(:,:,:,ispin), alphm ) + call timestop( "Vacuum" ) + end if + + + + ! INTERSTITIAL POTENTIAL + call timestart( "interstitial" ) + write( 6, fmt=8010 ) +8010 format (/,5x,'coulomb potential in the interstitial region:') + ! in case of a film: + if ( input%film .and. .not.oneD%odi%d1 ) then + ! create v(z) for each 2-d reciprocal vector + ivfft = 3 * stars%mx3 + ani = 1.0 / real( ivfft ) + do irec2 = 1, stars%ng2 + i = 0 + do i3 = 0, ivfft - 1 + i = i + 1 + z = cell%amat(3,3) * i3 * ani + if ( z > cell%amat(3,3) / 2. ) z = z - cell%amat(3,3) + vintcza = vintcz( stars, vacuum, cell, sym, input, field, z, irec2, psq, & + vCoul%vacxy(:,:,:,ispin), vCoul%vacz(:,:,ispin), & + rhobar, sig1dh, vz1dh, alphm ) + af1(i) = real( vintcza ) + bf1(i) = aimag( vintcza ) + end do + ! z = (i_sm-1)*ani + ! IF (z > 0.5) z = z - 1.0 + ! af1(i_sm) = af1(i_sm) + z * delta + ! bf1(i_sm) = bf1(i_sm) + z * deltb + ! ENDDO + ! ENDIF + ! --> 1-d fourier transform and store the coefficients in vTot%pw( ,1) + call cfft( af1, bf1, ivfft, ivfft, ivfft, -1 ) + ! delta = ivfft * delta * 2 / fpi ! * amat(3,3)**2 * ani + i = 0 + do i3 = 0, ivfft - 1 + k3 = i3 + if ( k3 > floor( ivfft / 2. ) ) k3 = k3 - ivfft + i = i + 1 + if ( ( k3 >= -stars%mx3 ) .and. ( k3 <= stars%mx3 ) ) then + irec3 = stars%ig(stars%kv2(1,irec2),stars%kv2(2,irec2),k3) + ! IF ( (irec2 == 1).AND.(i3 > 0) ) THEN ! smooth potential + ! corr = 2.0*mod(abs(k3),2) - 1.0 + ! bf1(i) = bf1(i) + delta * corr / k3 + ! ENDIF + ! ----> only stars within g_max sphere (shz oct.97) + if ( irec3 /= 0 ) then + xint = cmplx( af1(i), bf1(i) ) * ani + nzst1 = stars%nstr(irec3) / stars%nstr2(irec2) + vCoul%pw(irec3,1) = vCoul%pw(irec3,1) + xint / nzst1 + end if + end if + end do + end do + ! in case of a bulk system: + else if ( .not. input%film ) then + if ( vCoul%potdenType == POTDEN_TYPE_POTYUK ) then + vCoul%pw(1:stars%ng3,ispin) = fpi_const * psq(1:stars%ng3) & + / ( stars%sk3(1:stars%ng3) ** 2 + input%preconditioning_param ** 2 ) + if( abs( real( psq(1) ) ) * cell%omtil < 0.01 ) vCoul%pw(1,ispin) = 0.0 + else + vCoul%pw(1,ispin) = cmplx(0.0,0.0) + vCoul%pw(2:stars%ng3,ispin) = fpi_const * psq(2:stars%ng3) / stars%sk3(2:stars%ng3) ** 2 + end if + end if + call timestop("interstitial") + end if ! mpi%irank == 0 + + + + ! MUFFIN-TIN POTENTIAL + call timestart( "MT-spheres" ) #ifdef CPP_MPI - CALL MPI_BCAST(den%mt,atoms%jmtd*(1+sphhar%nlhd)*atoms%ntype*dimension%jspd,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) + call MPI_BCAST( den%mt, atoms%jmtd * ( 1 + sphhar%nlhd ) * atoms%ntype * dimension%jspd, MPI_DOUBLE_PRECISION, 0, mpi%mpi_comm, ierr ) #endif - CALL vmts(mpi, stars,sphhar,atoms, sym,cell,oneD, vCoul%pw(:,ispin),den%mt(:,0:,:,ispin), vCoul%mt(:,0:,:,ispin)) - ! -------------------------------------------- - CALL timestop("MT-spheres") - - IF (mpi%irank == 0) THEN - ! ---> check continuity of coulomb potential - IF (input%vchk) THEN - CALL timestart("checking") - CALL checkDOPAll(input,DIMENSION,sphhar,stars,atoms,sym,vacuum,oneD,& - cell,vCoul,ispin) - CALL timestop("checking") - END IF - - !Calculate potential-density integrals if results-variable is present! - IF (PRESENT(results)) THEN - IF (input%total) THEN - CALL timestart("den-pot integrals") - ! - ! CALCULATE THE INTEGRAL OF n*Vcoulomb - ! - WRITE (6,FMT=8020) - WRITE (16,FMT=8020) -8020 FORMAT (/,10x,'density-coulomb potential integrals',/) - ! - ! interstitial first - ! - ! convolute ufft and pot: F(G) = \sum_(G') U(G - G') V(G') - ! - CALL convol(stars, vCoul%pw_w(:,ispin), vCoul%pw(:,ispin), stars%ufft) - ! - results%te_vcoul = 0.0 - CALL int_nv(ispin,stars,vacuum,atoms,sphhar, cell,sym,input,oneD,& - vCoul,den, results%te_vcoul) - - WRITE (6,FMT=8030) results%te_vcoul - WRITE (16,FMT=8030) results%te_vcoul -8030 FORMAT (/,10x,'total density-coulomb potential integral :', t40,f20.10) - - CALL timestop("den-pot integrals") - END IF - ! - ! - ENDIF - ENDIF !irank==0 - - - END SUBROUTINE vgen_coulomb -END MODULE m_vgen_coulomb + call vmts( input, mpi, stars, sphhar, atoms, sym, cell, oneD, vCoul%pw(:,ispin), & + den%mt(:,0:,:,ispin), vCoul%potdenType, vCoul%mt(:,0:,:,ispin) ) + call timestop( "MT-spheres" ) + + + + if( vCoul%potdenType == POTDEN_TYPE_POTYUK ) return + + + + if ( mpi%irank == 0 ) then + CHECK_CONTINUITY: if ( input%vchk ) then + call timestart( "checking" ) + call checkDOPAll( input, dimension, sphhar, stars, atoms, sym, vacuum, oneD, & + cell, vCoul, ispin ) + call timestop( "checking" ) + end if CHECK_CONTINUITY + + CALCULATE_DENSITY_POTENTIAL_INTEGRAL: if ( present( results ) ) then + if ( input%total ) then + call timestart( "den-pot integrals" ) + ! CALCULATE THE INTEGRAL OF n*Vcoulomb + write( 6, fmt=8020 ) + write( 16, fmt=8020 ) +8020 format (/,10x,'density-coulomb potential integrals',/) + ! interstitial first + ! convolute ufft and pot: F(G) = \sum_(G') U(G - G') V(G') + call convol( stars, vCoul%pw_w(:,ispin), vCoul%pw(:,ispin), stars%ufft ) + results%te_vcoul = 0.0 + call int_nv( ispin, stars, vacuum, atoms, sphhar, cell, sym, input, oneD, & + vCoul, den, results%te_vcoul ) + + write( 6, fmt=8030 ) results%te_vcoul + write( 16, fmt=8030 ) results%te_vcoul +8030 format (/,10x,'total density-coulomb potential integral :', t40,f20.10) + + call timestop( "den-pot integrals" ) + end if + end if CALCULATE_DENSITY_POTENTIAL_INTEGRAL + end if !irank==0 + + end subroutine vgen_coulomb + +end module m_vgen_coulomb diff --git a/vgen/vmts.F90 b/vgen/vmts.F90 index 19aee6bc076864634e491a63e43c37de3c3c78d7..9a3bd9efa1725e7ae1def85cef3050be203aa50e 100644 --- a/vgen/vmts.F90 +++ b/vgen/vmts.F90 @@ -1,160 +1,197 @@ -MODULE m_vmts - ! ******************************************************************* - ! this subroutine calculates the lattice harmonics expansion coeffi-* - ! cients of the coulomb potential for all atom types * - ! c.l.fu, r.podloucky * - ! ******************************************************************* -CONTAINS - SUBROUTINE vmts(mpi,stars,sphhar,atoms,& - & sym,cell,oneD,& - & vpw,rho,& - & vr) +module m_vmts + +contains + + subroutine vmts( input, mpi, stars, sphhar, atoms, sym, cell, oneD, vpw, rho, potdenType, vr ) + + !------------------------------------------------------------------------- + ! This subroutine calculates the lattice harmonics expansion coefficients + ! of the Coulomb / Yukawa potential for all atom types. + ! + ! In more detail: + ! the radius-dependent coefficient of the potential is + ! V_{lm}(r) = \int_0^R G_l(r,r') \rho_{lm}(r') r'^2 dr' + V_{lm}(R) P_l(r) + ! where + ! [sphere boundary contribution - first part of code:] + ! V_{lm}(R) is the spherical harmonics expansion of the interstitial + ! potential, + ! P_l(r) is the derivative of the spherical Green's function on the sphere + ! boundary (times a constant), + ! [sphere interior contribution - second part of code:] + ! G_l(r,r') ) = green_factor u_1(r_<) u_2(r_>) is the spherical Green's + ! function with homogeneous solutions u_1 and u_2 and + ! r_< = min(r,r') and r_> = max(r,r') + ! The integral is split in a part where r'=r_< and a part where r'=r_> and + ! the integral from r to R is split in \int_0^R - \int_0^r. Resulting + ! terms depending solely on R (not on r) are summarised in the variable + ! termsR. + ! + ! More information and equations can be found in + ! F. Tran, P. Blaha: Phys. Rev. B 83, 235118(2011) + !------------------------------------------------------------------------- #include"cpp_double.h" - USE m_constants - USE m_types - USE m_intgr, ONLY : intgr2 - USE m_phasy1 - USE m_sphbes - USE m_od_phasy - - IMPLICIT NONE - - ! .. Scalar Arguments ... - TYPE(t_mpi),INTENT(IN) :: mpi - TYPE(t_stars),INTENT(IN) :: stars - TYPE(t_sphhar),INTENT(IN) :: sphhar - TYPE(t_atoms),INTENT(IN) :: atoms - TYPE(t_sym),INTENT(IN) :: sym - TYPE(t_cell),INTENT(IN) :: cell - TYPE(t_oneD),INTENT(IN) :: oneD - - ! .. Array Arguments .. - COMPLEX, INTENT (IN) :: vpw(:)!(stars%ng3,input%jspins) - REAL, INTENT (IN) :: rho(:,0:,:)!(atoms%jmtd,0:sphhar%nlhd,atoms%ntype) - REAL, INTENT (OUT):: vr(:,0:,:)!(atoms%jmtd,0:sphhar%nlhd,atoms%ntype) - - ! .. Local Scalars .. - COMPLEX cp,sm - REAL rmt2l,rmtl,ror,rr,rrlr,fpl21 - INTEGER i,jm,k,l,l21,lh ,n,nd ,lm,n1,nat,m - - ! .. Local Arrays .. - COMPLEX vtl(0:sphhar%nlhd,atoms%ntype) + use m_constants + use m_types + use m_intgr, only : intgr2 + use m_phasy1 + use m_sphbes + use m_od_phasy + use m_SphBessel + implicit none + + type(t_input), intent(in) :: input + type(t_mpi), intent(in) :: mpi + type(t_stars), intent(in) :: stars + type(t_sphhar), intent(in) :: sphhar + type(t_atoms), intent(in) :: atoms + type(t_sym), intent(in) :: sym + type(t_cell), intent(in) :: cell + type(t_oneD), intent(in) :: oneD + complex, intent(in) :: vpw(:)!(stars%ng3,input%jspins) + real, intent(in) :: rho(:,0:,:)!(atoms%jmtd,0:sphhar%nlhd,atoms%ntype) + integer, intent(in) :: potdenType + real, intent(out) :: vr(:,0:,:)!(atoms%jmtd,0:sphhar%nlhd,atoms%ntype) + + complex :: cp, sm + integer :: i, jm, k, l, lh, n, nd, lm, n1, nat, m, imax, lmax + complex :: vtl(0:sphhar%nlhd, atoms%ntype) + complex :: pylm(( atoms%lmaxd + 1 ) ** 2, atoms%ntype) + real :: green_factor, termsR + real :: green_1 (1:atoms%jmtd), green_2 (1:atoms%jmtd) + real :: integrand_1(1:atoms%jmtd), integrand_2(1:atoms%jmtd) + real :: integral_1 (1:atoms%jmtd), integral_2 (1:atoms%jmtd) + real :: sbf(0:atoms%lmaxd) + real, allocatable, dimension(:,:) :: il, kl + !$ COMPLEX vtl_loc(0:sphhar%nlhd,atoms%ntype) - COMPLEX pylm( (atoms%lmaxd+1)**2 ,atoms%ntype ) - REAL f1r(atoms%jmtd),f2r(atoms%jmtd),x1r(atoms%jmtd),x2r(atoms%jmtd) - REAL sbf(0:atoms%lmaxd),rrl(atoms%jmtd),rrl1(atoms%jmtd) #ifdef CPP_MPI - INCLUDE 'mpif.h' - INTEGER ierr(3) - COMPLEX, ALLOCATABLE :: c_b(:) + include 'mpif.h' + integer :: ierr(3) + complex, allocatable :: c_b(:) - ! .. External Subroutines - EXTERNAL MPI_REDUCE + external MPI_REDUCE #endif integer :: OMP_GET_NUM_THREADS, OMP_GET_THREAD_NUM - ! calculate lattice harmonics expansion coefficients of the - ! interstitial coulomb potential on the sphere boundaries - vtl(:,:) = CMPLX(0.0,0.0) + ! SPHERE BOUNDARY CONTRIBUTION to the coefficients calculated from the values + ! of the interstitial Coulomb / Yukawa potential on the sphere boundary + + vtl(:,:) = cmplx( 0.0, 0.0 ) #ifdef CPP_MPI - CALL MPI_BCAST(vpw,SIZE(vpw),CPP_MPI_COMPLEX,0,mpi,ierr) + call MPI_BCAST( vpw, size(vpw), CPP_MPI_COMPLEX, 0, mpi, ierr ) #endif - ! g=0 component - IF (mpi%irank == 0) THEN - DO n = 1,atoms%ntype - vtl(0,n) = sfp_const*vpw(1) - ENDDO - ENDIF - - ! g.ne.0 components - !$OMP PARALLEL DEFAULT(NONE) & - !$OMP& SHARED(mpi,stars,vpw,oneD,atoms,sym,cell,sphhar,vtl) & - !$OMP& PRIVATE(k,cp,pylm,nat,n,sbf,nd,lh,sm,jm,m,lm,l)& - !$OMP& PRIVATE(vtl_loc) - !$ vtl_loc(:,:) = CMPLX(0.d0,0.d0) - !$OMP DO - DO k = mpi%irank+2, stars%ng3, mpi%isize - cp = vpw(k)*stars%nstr(k) - IF (.NOT.oneD%odi%d1) THEN - CALL phasy1(atoms,stars,sym,cell,k,pylm) - ELSE - !-odim - CALL od_phasy(atoms%ntype,stars%ng3,atoms%nat,atoms%lmaxd,atoms%ntype,atoms%neq,atoms%lmax,& - atoms%taual,cell%bmat,stars%kv3,k,oneD%odi,oneD%ods,pylm) - !+odim - END IF - - nat = 1 - DO n = 1,atoms%ntype - CALL sphbes(atoms%lmax(n),stars%sk3(k)*atoms%rmt(n),sbf) - nd = atoms%ntypsy(nat) - DO lh = 0,sphhar%nlh(nd) - l = sphhar%llh(lh,nd) - sm = (0.,0.) - DO jm = 1,sphhar%nmem(lh,nd) - m = sphhar%mlh(jm,lh,nd) - lm = l*(l+1) + m + 1 - sm = sm + CONJG(sphhar%clnu(jm,lh,nd))*pylm(lm,n) - ENDDO - !$ IF (.false.) THEN - vtl(lh,n) = vtl(lh,n) + cp*sbf(l)*sm - !$ ENDIF - !$ vtl_loc(lh,n) = vtl_loc(lh,n) + cp*sbf(l)*sm - ENDDO - nat = nat + atoms%neq(n) - ENDDO - ENDDO - !$OMP END DO - - !$OMP CRITICAL + ! q=0 component + if ( mpi%irank == 0 ) then + vtl(0,1:atoms%ntype) = sfp_const * vpw(1) + end if + + ! q/=0 components + !$omp parallel default( none ) & + !$omp& shared( mpi, stars, vpw, oneD, atoms, sym, cell, sphhar, vtl ) & + !$omp& private( k, cp, pylm, nat, n, sbf, nd, lh, sm, jm, m, lm, l ) & + !$omp& private( vtl_loc ) + !$ vtl_loc(:,:) = cmplx(0.d0,0.d0) + !$omp do + do k = mpi%irank+2, stars%ng3, mpi%isize + cp = vpw(k) * stars%nstr(k) + if ( .not. oneD%odi%d1 ) then + call phasy1( atoms, stars, sym, cell, k, pylm ) + else + call od_phasy( atoms%ntype, stars%ng3, atoms%nat, atoms%lmaxd, atoms%ntype, & + atoms%neq, atoms%lmax, atoms%taual, cell%bmat, stars%kv3, k, oneD%odi, oneD%ods, pylm ) + end if + nat = 1 + do n = 1, atoms%ntype + call sphbes( atoms%lmax(n), stars%sk3(k) * atoms%rmt(n), sbf ) + nd = atoms%ntypsy(nat) + do lh = 0, sphhar%nlh(nd) + l = sphhar%llh(lh,nd) + sm = (0.0,0.0) + do jm = 1, sphhar%nmem(lh,nd) + m = sphhar%mlh(jm,lh,nd) + lm = l * ( l + 1 ) + m + 1 + sm = sm + conjg( sphhar%clnu(jm,lh,nd) ) * pylm(lm,n) + end do + !$ if (.false.) then + vtl(lh,n) = vtl(lh,n) + cp * sbf(l) * sm + !$ end if + !$ vtl_loc(lh,n) = vtl_loc(lh,n) + cp * sbf(l) * sm + end do + nat = nat + atoms%neq(n) + end do + end do + !$omp end do + !$omp critical !$ vtl = vtl + vtl_loc - !$OMP END CRITICAL - !$OMP END PARALLEL + !$omp end critical + !$omp end parallel #ifdef CPP_MPI - n1 = (sphhar%nlhd+1)*atoms%ntype - ALLOCATE(c_b(n1)) - CALL MPI_REDUCE(vtl,c_b,n1,CPP_MPI_COMPLEX,MPI_SUM,0, mpi%mpi_comm,ierr) - IF (mpi%irank.EQ.0) vtl=reshape(c_b,(/sphhar%nlhd+1,atoms%ntype/)) - DEALLOCATE (c_b) + n1 = ( sphhar%nlhd + 1 ) * atoms%ntype + allocate( c_b(n1) ) + call MPI_REDUCE( vtl, c_b, n1, CPP_MPI_COMPLEX, MPI_SUM, 0, mpi%mpi_comm, ierr ) + if ( mpi%irank == 0 ) vtl = reshape( c_b, (/sphhar%nlhd+1,atoms%ntype/) ) + deallocate( c_b ) #endif - ! ----> solution of the poisson's equation + + + ! SPHERE INTERIOR CONTRIBUTION to the coefficients calculated from the + ! values of the sphere Coulomb/Yukawa potential on the sphere boundary + + if( mpi%irank == 0 ) then + if ( potdenType == POTDEN_TYPE_POTYUK ) then + allocate( il(0:atoms%lmaxd, 1:atoms%jmtd), kl(0:atoms%lmaxd, 1:atoms%jmtd) ) + end if + nat = 1 - DO n = 1,atoms%ntype - nd = atoms%ntypsy(nat) - DO lh = 0,sphhar%nlh(nd) - l = sphhar%llh(lh,nd) - l21 = 2*l + 1 - fpl21 = fpi_const/l21 - DO i = 1,atoms%jri(n) - rrl(i) = atoms%rmsh(i,n)**l - rrl1(i) = 1./( rrl(i) * atoms%rmsh(i,n) ) - x1r(i) = rrl(i)*rho(i,lh,n) - x2r(i) = rrl1(i)*rho(i,lh,n) - ENDDO - CALL intgr2(x1r,atoms%rmsh(1,n),atoms%dx(n),atoms%jri(n),f1r) - CALL intgr2(x2r,atoms%rmsh(1,n),atoms%dx(n),atoms%jri(n),f2r) - rmtl = 1./atoms%rmt(n)**l - rmt2l = 1./atoms%rmt(n)**l21 - DO i = 1,atoms%jri(n) - rrlr = rrl(i)*rmt2l - ror = rrl(i)*rmtl - vr(i,lh,n) = fpl21 * (rrl1(i)*f1r(i)-rrlr*f1r(atoms%jri(n))+& - rrl(i) * (f2r(atoms%jri(n))-f2r(i))) + ror*vtl(lh,n) - ENDDO - ENDDO - nat = nat + atoms%neq(n) - ENDDO - DO n = 1,atoms%ntype - DO i = 1,atoms%jri(n) - rr = atoms%rmsh(i,n)/atoms%rmt(n) - vr(i,0,n) = vr(i,0,n)-sfp_const*(1.-rr)/atoms%rmsh(i,n)*atoms%zatom(n) - ENDDO - ENDDO - END SUBROUTINE vmts -END MODULE m_vmts + do n = 1, atoms%ntype + nd = atoms%ntypsy(nat) + imax = atoms%jri(n) + lmax = sphhar%llh(sphhar%nlh(nd), nd) + if ( potdenType == POTDEN_TYPE_POTYUK ) then + do concurrent (i = 1:imax) + call ModSphBessel( il(0:,i), kl(0:,i), input%preconditioning_param * atoms%rmsh(i,n), lmax ) + end do + end if + do lh = 0, sphhar%nlh(nd) + l = sphhar%llh(lh,nd) + if ( potdenType == POTDEN_TYPE_POTYUK ) then + green_1(1:imax) = il(l,1:imax) + green_2(1:imax) = kl(l,1:imax) + green_factor = fpi_const * input%preconditioning_param + else + green_1(1:imax) = atoms%rmsh(1:imax,n) ** l + green_2(1:imax) = 1.0 / ( green_1(1:imax) * atoms%rmsh(1:imax,n) ) + green_factor = fpi_const / ( 2 * l + 1 ) + end if + integrand_1(1:imax) = green_1(1:imax) * rho(1:imax,lh,n) + integrand_2(1:imax) = green_2(1:imax) * rho(1:imax,lh,n) + call intgr2( integrand_1(1:imax), atoms%rmsh(1,n), atoms%dx(n), imax, integral_1(1:imax) ) + call intgr2( integrand_2(1:imax), atoms%rmsh(1,n), atoms%dx(n), imax, integral_2(1:imax) ) + termsR = integral_2(imax) + ( vtl(lh,n) / green_factor - integral_1(imax) * green_2(imax) ) / green_1(imax) + vr(1:imax,lh,n) = green_factor * ( green_1(1:imax) * ( termsR - integral_2(1:imax) ) & + + green_2(1:imax) * integral_1(1:imax) ) + end do + nat = nat + atoms%neq(n) + end do + if ( potdenType == POTDEN_TYPE_POTYUK ) then + deallocate( il, kl ) + end if + + + + if ( potdenType /= POTDEN_TYPE_POTYUK ) then + do n = 1, atoms%ntype + vr(1:atoms%jri(n),0,n) = vr(1:atoms%jri(n),0,n) - sfp_const * ( 1.0 / atoms%rmsh(1:atoms%jri(n),n) - 1.0 / atoms%rmt(n) ) * atoms%zatom(n) + end do + end if + + end if + + end subroutine vmts + +end module m_vmts