IAP GITLAB

Commit 5b9dc6c3 authored by Tanguy Pierog's avatar Tanguy Pierog

update new DPMJETIII.2017-1 to a properly running version


git-svn-id: https://devel-ik.fzk.de/svn/mc/crmc/trunk@6207 c7a5e08c-de06-0410-9364-b41cf42a0b17
parent 06c0246b
...@@ -223,8 +223,7 @@ ENDIF (__PHOJET__) ...@@ -223,8 +223,7 @@ ENDIF (__PHOJET__)
IF (__DPMJET__) IF (__DPMJET__)
LIST(APPEND TABS dpmjpar.dat) LIST(APPEND TABS dpmjpar.dat)
LIST(APPEND TABS dpmCT14LL.pds) LIST(APPEND TABS dpmCT14LL.pds)
LIST(APPEND TABS glaubint.glb) LIST(APPEND TABS conextar.glb)
LIST(APPEND TABS glaubtar.glb)
ADD_SUBDIRECTORY ("${PROJECT_SOURCE_DIR}/src/dpmjet/3.2017-1") ADD_SUBDIRECTORY ("${PROJECT_SOURCE_DIR}/src/dpmjet/3.2017-1")
SET(STATIC_LIBS ${STATIC_LIBS} Dpmjet) SET(STATIC_LIBS ${STATIC_LIBS} Dpmjet)
get_property(HELPER SOURCE src/models.F PROPERTY COMPILE_FLAGS) get_property(HELPER SOURCE src/models.F PROPERTY COMPILE_FLAGS)
......
This diff is collapsed.
This diff is collapsed.
...@@ -18782,7 +18782,7 @@ cdh ...@@ -18782,7 +18782,7 @@ cdh
* new patch for pre-initialized variable projectile/target/energy runs * new patch for pre-initialized variable projectile/target/energy runs
IF (IOGLB.EQ.100) THEN IF (IOGLB.EQ.100) THEN
if (NIDX.eq.-2) then if (NIDX.eq.-10) then
c write(0,*) ' -- dt_glaube -- skip call into dt_glbset()' c write(0,*) ' -- dt_glaube -- skip call into dt_glbset()'
else else
...@@ -18929,6 +18929,7 @@ c DATA ECMXPI / 100000.0D0 / ...@@ -18929,6 +18929,7 @@ c DATA ECMXPI / 100000.0D0 /
*-------------------------------------------------------------------------- *--------------------------------------------------------------------------
* general initializations * general initializations
* *
LPRI = 20 LPRI = 20
LOUT = 6 LOUT = 6
* steps in projectile mass number for initialization * steps in projectile mass number for initialization
...@@ -19220,6 +19221,7 @@ cdh datadir for path to the data sets to be read in by dpmjet/phojet ...@@ -19220,6 +19221,7 @@ cdh datadir for path to the data sets to be read in by dpmjet/phojet
* *
* read data from file * read data from file
* *
IF (MODE.EQ.0) THEN IF (MODE.EQ.0) THEN
IF (LREAD) RETURN IF (LREAD) RETURN
...@@ -19403,7 +19405,7 @@ c modification for use with corsika using path to data file in DATADIR ...@@ -19403,7 +19405,7 @@ c modification for use with corsika using path to data file in DATADIR
* *
ELSE ELSE
WRITE(*,*) 'DT_GLBSET called for ',IDPROJ,NA,NB,ELAB,MODE c WRITE(*,*) 'DT_GLBSET called for ',IDPROJ,NA,NB,ELAB,MODE
* *
* check for type of projectile and set index-offset to entry in * check for type of projectile and set index-offset to entry in
* Glauber data array correspondingly * Glauber data array correspondingly
...@@ -21549,14 +21551,14 @@ C WHAT(2) = 0 ...@@ -21549,14 +21551,14 @@ C WHAT(2) = 0
C CODEWD = 'START ' C CODEWD = 'START '
C GOTO 900 C GOTO 900
C ENDIF C ENDIF
IF (NCASES.EQ.-1) THEN IF (NCASES.LE.-1) THEN !variable energy with air (TP20170630)
IP = NPMASS IP = NPMASS
IPZ = NPCHAR IPZ = NPCHAR
IT = NTMASS IT = NTMASS
ITZ = NTCHAR ITZ = NTCHAR
PPN = EPNSAV PPN = EPNSAV
VARELO = 10.D0 VARELO = 10.D0
VAREHI = EPN*1.1D0 VAREHI = PPN*1.1D0
EPN = ZERO EPN = ZERO
CMENER = ZERO CMENER = ZERO
LEINP = .TRUE. LEINP = .TRUE.
...@@ -21565,7 +21567,27 @@ C ENDIF ...@@ -21565,7 +21567,27 @@ C ENDIF
WHAT(2) = 0 WHAT(2) = 0
CODEWD = 'START ' CODEWD = 'START '
LEVPRT = .TRUE. LEVPRT = .TRUE.
IF(NCASES.EQ.-2)THEN
IOGLB = 0 ! don't use glauber tables
ELSE
IOGLB = 100 ! use glauber tables
ENDIF
GOTO 900 GOTO 900
ELSEIF (NCASES.EQ.-100) THEN !make glauber table
if(ifirst.ne.1)stop
ifirst=2
IP = NPMASS
IPZ = NPCHAR
IT = NTMASS
ITZ = NTCHAR
PPN = EPNSAV
WHAT(1) = 10.D0
WHAT(2) = PPN*1.1D0
WHAT(3) = 7d0
WHAT(4) = 56d0
WHAT(5) = 7d0
CODEWD = 'GLAUB-INI'
goto 565
ENDIF ENDIF
* read control card from input-unit LINP * read control card from input-unit LINP
READ(LINP,'(A78)',END=9999) CLINE READ(LINP,'(A78)',END=9999) CLINE
...@@ -26696,7 +26718,7 @@ Cf2py intent(out) IREJ ...@@ -26696,7 +26718,7 @@ Cf2py intent(out) IREJ
ELSE IF ((IT.EQ.1).AND.(ITZ.EQ.0)) THEN ELSE IF ((IT.EQ.1).AND.(ITZ.EQ.0)) THEN
IJTARG = 8 IJTARG = 8
ELSE IF ((IT.EQ.1).AND.(ITZ.EQ.-1)) THEN ELSE IF ((IT.EQ.1).AND.(ITZ.EQ.-1)) THEN
IJTARG = -2 IJTARG = 2
END IF END IF
IBTARG = IIBAR(IJTARG) IBTARG = IIBAR(IJTARG)
...@@ -33931,7 +33953,7 @@ C STOP ...@@ -33931,7 +33953,7 @@ C STOP
1003 FORMAT(9X,F6.1,9X,F6.2,8X,F8.3,11X,F8.3) 1003 FORMAT(9X,F6.1,9X,F6.2,8X,F8.3,11X,F8.3)
1 CONTINUE 1 CONTINUE
IVEOUT = 1 IVEOUT = 1
ELSE ELSE
* hadron/photon/nucleus-nucleus * hadron/photon/nucleus-nucleus
IF ((ABS(VAREHI).GT.ZERO).AND. IF ((ABS(VAREHI).GT.ZERO).AND.
& (ABS(VAREHI).GT.ABS(VARELO))) THEN & (ABS(VAREHI).GT.ABS(VARELO))) THEN
...@@ -34170,7 +34192,6 @@ CDECK ID>, DT_SIGEMU ...@@ -34170,7 +34192,6 @@ CDECK ID>, DT_SIGEMU
LOGICAL LPHOIN LOGICAL LPHOIN
COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
IF (MCGENE.NE.4) THEN IF (MCGENE.NE.4) THEN
IF (LPRI.GT.4) IF (LPRI.GT.4)
& WRITE(LOUT,'(A)') ' DT_SIGEMU: Combined cross sections' & WRITE(LOUT,'(A)') ' DT_SIGEMU: Combined cross sections'
...@@ -38722,7 +38743,6 @@ C DIBETA = SDIF1/STOT ...@@ -38722,7 +38743,6 @@ C DIBETA = SDIF1/STOT
SDQE = ZERO SDQE = ZERO
SDQE2 = ZERO SDQE2 = ZERO
FACN = ONE/DBLE(NSTATB) FACN = ONE/DBLE(NSTATB)
IPNT = 0 IPNT = 0
RPNT = ZERO RPNT = ZERO
...@@ -38759,6 +38779,7 @@ C CALL GSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT) ...@@ -38759,6 +38779,7 @@ C CALL GSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT)
CALL DT_POILIK(NB,NTARG,ECMNN(IE),Q2,IPNT,RPNT,1) CALL DT_POILIK(NB,NTARG,ECMNN(IE),Q2,IPNT,RPNT,1)
ENDIF ENDIF
* read pre-initialized profile-function from file * read pre-initialized profile-function from file
IF (IOGLB.EQ.1) THEN IF (IOGLB.EQ.1) THEN
READ(LDAT,'(5I10,E15.5)') KJPROJ,IA,IB,ISTATB,ISITEB,DUM READ(LDAT,'(5I10,E15.5)') KJPROJ,IA,IB,ISTATB,ISITEB,DUM
This diff is collapsed.
...@@ -6059,6 +6059,7 @@ c---------------------------------------------------------------------- ...@@ -6059,6 +6059,7 @@ c----------------------------------------------------------------------
c parameter(itext=40) c parameter(itext=40)
character text*(*) character text*(*)
dimension pp(5),erest(5),errp(4) dimension pp(5),erest(5),errp(4)
c call alist('check&',1,nptl)
n1=1 n1=1
if(iframe.eq.21.and.(abs(iappl).eq.1.or.iappl.eq.3)) if(iframe.eq.21.and.(abs(iappl).eq.1.or.iappl.eq.3))
*n1=2*(maproj+matarg+1) *n1=2*(maproj+matarg+1)
......
...@@ -40,8 +40,14 @@ c no last generation -> no decay ...@@ -40,8 +40,14 @@ c no last generation -> no decay
if(istptl(i).ne.0)return if(istptl(i).ne.0)return
if(nptl.gt.mxptl-10)then if(nptl.gt.mxptl-10)then
call alist('end&',1,nptl) if(model.eq.12)then
call utstop('hdecas: mxptl too small&') write(ifmt,*)
. 'Number of particles too large after decay with DPMJET !'
nptl=mxptl-10
else
call alist('end&',1,nptl)
call utstop('hdecas: mxptl too small&')
endif
endif endif
c entry c entry
......
...@@ -1475,7 +1475,7 @@ c *233.,1.427,1.634,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000, ...@@ -1475,7 +1475,7 @@ c *233.,1.427,1.634,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
data ((rewii(k,m),m=1,mxma),k=21,25)/ data ((rewii(k,m),m=1,mxma),k=21,25)/
* 11.,7.849e-09,0.149e+00,0.057e+00,0.000e+00,0.000e+00, * 11.,7.849e-09,0.149e+00,0.057e+00,0.000e+00,0.000e+00,
* 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, * 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,
* 22.,0.130e-05,8.490e-03,4.266e-03,0.004e+00,0.000e+00, * 22.,0.130e-05,8.490e-03,0.070e+00,0.360e+00,0.185e+00,
* 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, * 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,
* 12.,2.524e-17,0.153e+00,0.057e+00,0.000e+00,0.000e+00, * 12.,2.524e-17,0.153e+00,0.057e+00,0.000e+00,0.000e+00,
* 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, * 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,
...@@ -1586,10 +1586,8 @@ c----------------------------------------------------------------------- ...@@ -1586,10 +1586,8 @@ c-----------------------------------------------------------------------
common/crema/indx(mxindx),rema(mxre,mxma),rewi(mxre,mxma) common/crema/indx(mxindx),rema(mxre,mxma),rewi(mxre,mxma)
*,idmx(mxma,mxmx),icre1(mxre,mxma),icre2(mxre,mxma) *,idmx(mxma,mxmx),icre1(mxre,mxma),icre2(mxre,mxma)
parameter (indexOutOfRange=-999.) parameter (indexOutOfRange=-999)
parameter (iijjOutOfRange=-9999.) parameter (iijjOutOfRange=-9999)
integer istatus=0
if(iabs(id).eq.14)then if(iabs(id).eq.14)then
wi=.197/658.654e15 wi=.197/658.654e15
...@@ -1599,8 +1597,7 @@ c----------------------------------------------------------------------- ...@@ -1599,8 +1597,7 @@ c-----------------------------------------------------------------------
wi=.197/15.34e15 wi=.197/15.34e15
elseif(id.eq.20)then elseif(id.eq.20)then
wi=.197/2.6842e13 wi=.197/2.6842e13
elseif((iabs(id).lt.100.and.id.ne.20) elseif(iabs(id).lt.100.or.id.gt.1e9)then
* .or.id.gt.1e9)then
wi=0 wi=0
elseif(iabs(id).lt.1e8)then elseif(iabs(id).lt.1e8)then
ix=iabs(id)/10 ix=iabs(id)/10
...@@ -1658,13 +1655,14 @@ c returns lifetime(c*tau(fm))*gamma for id with energy p4, mass p5 ...@@ -1658,13 +1655,14 @@ c returns lifetime(c*tau(fm))*gamma for id with energy p4, mass p5
c fails when index out of range. idtaustatus will return negative c fails when index out of range. idtaustatus will return negative
c----------------------------------------------------------------------- c-----------------------------------------------------------------------
include 'epos.inc' include 'epos.inc'
parameter (indexOutOfRange=-999.) parameter (indexOutOfRange=-999)
parameter (iijjOutOfRange=-9999.) parameter (iijjOutOfRange=-9999)
integer istatus=0 istatus=0
call idtaustatus(id,p4,p5,taugm,istatus) call idtaustatus(id,p4,p5,taugm,istatus)
if(istatus.eq.indexOutOfRange) then if(istatus.eq.indexOutOfRange) then
write(ifch,*)'id:',id write(ifch,*)"id:",id,p4,p5
c call alistf('tau&')
call utstop('idtau: ix out of range.&') call utstop('idtau: ix out of range.&')
endif endif
if(istatus.eq.iijjOutOfRange) then if(istatus.eq.iijjOutOfRange) then
...@@ -1948,7 +1946,7 @@ c------------------------------------------------------------------------------ ...@@ -1948,7 +1946,7 @@ c------------------------------------------------------------------------------
c.....tranforms id of code1 (=idi) into id of code2 (=idtrafo) c.....tranforms id of code1 (=idi) into id of code2 (=idtrafo)
c.....supported codes: c.....supported codes:
c.....'nxs' = epos c.....'nxs' = epos
c.....'pdg' = PDG 1996 c.....'pdg' = PDG 1996 (DPMJET)
c.....'qgs' = QGSJet c.....'qgs' = QGSJet
c.....'ghe' = Gheisha c.....'ghe' = Gheisha
c.....'sib' = Sibyll c.....'sib' = Sibyll
...@@ -2020,12 +2018,12 @@ c------------------------------------------------------------------------------- ...@@ -2020,12 +2018,12 @@ c-------------------------------------------------------------------------------
integer istatus integer istatus
character*3 code1,code2 character*3 code1,code2
parameter (ncode=5,nidt=351) parameter (ncode=5,nidt=353)
integer idt(ncode,nidt) integer idt(ncode,nidt)
double precision drangen,dummy double precision drangen,dummy
c nxs|pdg|qgs|cor|sib c nxs|pdg|qgs|cor|sib
data ((idt(i,j),i=1,ncode),j= 1,68)/ data ((idt(i,j),i=1,ncode),j= 1,70)/
* 1,2,99,99,99 !u quark * 1,2,99,99,99 !u quark
* , 2,1,99,99,99 !d * , 2,1,99,99,99 !d
* , 3,3,99,99,99 !s * , 3,3,99,99,99 !s
...@@ -2089,12 +2087,14 @@ c nxs|pdg|qgs|cor|sib ...@@ -2089,12 +2087,14 @@ c nxs|pdg|qgs|cor|sib
* , 2331, 3314,99,99,48 !xi*- * , 2331, 3314,99,99,48 !xi*-
* , 3331, 3334,99,24,49 !omega- * , 3331, 3334,99,24,49 !omega-
* , 2140, 4122,9,137,89 !LambdaC(2.285)+ * , 2140, 4122,9,137,89 !LambdaC(2.285)+
* ,17,1000010020,99,201,1002 ! Deuteron * ,17,1000010020,99,201,1002 !Deuteron
* ,18,1000010030,99,301,1003 ! Triton * ,18,1000010030,99,301,1003 !Triton
* ,19,1000020040,99,402,1004 ! Alpha * ,19,1000020040,99,402,1004 !Alpha
* ,0,0,99,0,0 ! Air * ,0,0,99,0,0 !Air
* ,99,99,99,99,100 / ! unknown $ ,41,99,99,41,99 !QBall
data ((idt(i,j),i=1,ncode),j= 69,89)/ $ ,43,99,99,43,99 !Monopole
* ,99,99,99,99,100 / !unknown
data ((idt(i,j),i=1,ncode),j= 71,91)/
$ -340,431,99,120,74 ! Ds+ $ -340,431,99,120,74 ! Ds+
$ ,340,-431,99,121,75 ! Ds- $ ,340,-431,99,121,75 ! Ds-
$ ,-241,413,99,124,78 ! D*+ $ ,-241,413,99,124,78 ! D*+
...@@ -2116,7 +2116,7 @@ c nxs|pdg|qgs|cor|sib ...@@ -2116,7 +2116,7 @@ c nxs|pdg|qgs|cor|sib
$ ,3140,4232,99,138,87 ! Xic+ $ ,3140,4232,99,138,87 ! Xic+
$ ,1340,4322,99,143,97 ! Xi'c+ $ ,1340,4322,99,143,97 ! Xi'c+
$ ,3340,4332,99,145,99 / ! omegac0 $ ,3340,4332,99,145,99 / ! omegac0
data ((idt(i,j),i=1,ncode),j= 90,nidt)/ data ((idt(i,j),i=1,ncode),j= 92,nidt)/
$ 1112,32224,99,99,99 ! Delta(1600)++ $ 1112,32224,99,99,99 ! Delta(1600)++
$ , 1112, 2222,99,99,99 ! Delta(1620)++ $ , 1112, 2222,99,99,99 ! Delta(1620)++
$ , 1113,12224,99,99,99 ! Delta(1700)++ $ , 1113,12224,99,99,99 ! Delta(1700)++
...@@ -2370,7 +2370,7 @@ c nxs|pdg|qgs|cor|sib ...@@ -2370,7 +2370,7 @@ c nxs|pdg|qgs|cor|sib
$ ,12099,9900210,99,99,99 ! diff pi+ state $ ,12099,9900210,99,99,99 ! diff pi+ state
$ ,13099,9900320,99,99,99 ! diff K+ state $ ,13099,9900320,99,99,99 ! diff K+ state
$ ,22099,9900220,99,99,99 ! diff omega state $ ,22099,9900220,99,99,99 ! diff omega state
$ ,2099,9900310,99,99,99 ! diff K0 state $ ,2099,9900310,99,99,99 ! diff K0 state
$ ,-2099,9900130,99,99,99 ! diff pi+ state $ ,-2099,9900130,99,99,99 ! diff pi+ state
$ ,33099,9900330,99,99,99 ! diff phi state $ ,33099,9900330,99,99,99 ! diff phi state
$ ,44099,9900440,99,99,99 ! diff J/psi state $ ,44099,9900440,99,99,99 ! diff J/psi state
...@@ -2378,7 +2378,8 @@ c nxs|pdg|qgs|cor|sib ...@@ -2378,7 +2378,8 @@ c nxs|pdg|qgs|cor|sib
$ ,122099,9902110,99,99,99 ! diff neutron state $ ,122099,9902110,99,99,99 ! diff neutron state
$ ,213099,9903120,99,99,99 ! diff lambda state $ ,213099,9903120,99,99,99 ! diff lambda state
$ ,800000110,110,99,99,99 ! Reggeon $ ,800000110,110,99,99,99 ! Reggeon
$ ,800000990,990,99,99,99 / ! Pomeron $ ,800000990,990,99,99,99 / ! Pomeron
c print *,'idtrafo',' ',code1,' ',code2,idi c print *,'idtrafo',' ',code1,' ',code2,idi
......
...@@ -362,11 +362,12 @@ ...@@ -362,11 +362,12 @@
#else #else
call hjcrossc(sigi,sigt) call hjcrossc(sigi,sigt)
#endif #endif
elseif(model.eq.6.and.maproj.eq.1)then elseif(model.eq.6)then
#ifndef __SIBYLL__ #ifndef __SIBYLL__
stop'please compile with requested model' stop'please compile with requested model'
print *, dumdif(3)!get rid of unused warning print *, dumdif(3)!get rid of unused warning
#else #else
if(maproj.eq.1)then
K=1 K=1
if(iclpro.eq.1)then if(iclpro.eq.1)then
K=2 K=2
...@@ -382,6 +383,19 @@ ...@@ -382,6 +383,19 @@
sige=sngl(sige_d) sige=sngl(sige_d)
sigqel=sngl(sigqel_d) sigqel=sngl(sigqel_d)
sigi=sngl(sigt_d-sigqel_d) sigi=sngl(sigt_d-sigqel_d)
elseif(idtarg.eq.0)then
E0=dble(elab)*1.d-3 !e0 in TeV
CALL SIGNUC_INI(maproj,E0) ! fills SSIGNUC and ALNUC
sigi=sngl(SSIGNUC(maproj))
sigt=0.
sige=0.
sigqel=0.
else
sigi=0.
sigt=0.
sige=0.
sigqel=0.
endif
sigc=sigi sigc=sigi
#endif #endif
elseif(model.eq.7.or.model.eq.11)then elseif(model.eq.7.or.model.eq.11)then
...@@ -414,8 +428,7 @@ ...@@ -414,8 +428,7 @@
stop'please compile with requested model' stop'please compile with requested model'
#else #else
NITER=20000 NITER=20000
call GetDPMJETSigmaAA(niter,sigt,sigi,sige) call GetDPMJETSigmaAA(niter,sigt,sigi,sigc,sige)
sigc=0
#endif #endif
else else
sigt=0. sigt=0.
...@@ -584,7 +597,7 @@ c----------------------------------------------------------------------- ...@@ -584,7 +597,7 @@ c-----------------------------------------------------------------------
include 'epos.inc' include 'epos.inc'
COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5) COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
character*100 NameDecay character*100 NameDecay
c Integer function to translate normal id from pythia to compact one. c Integer function to translate normal id from pythia to compact one.
......
...@@ -18,7 +18,7 @@ C event debugging information ...@@ -18,7 +18,7 @@ C event debugging information
C particle decay data C particle decay data
INTEGER MDCY,MDME,KFDP INTEGER MDCY,MDME,KFDP
DOUBLE PRECISION BRAT DOUBLE PRECISION BRAT
COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5) COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
C general process information C general process information
INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4) COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment