Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
doctrine-dbal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tomáš Trávníček
doctrine-dbal
Commits
0042b669
Commit
0042b669
authored
May 30, 2006
by
doctrine
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added a folder remotely
parent
64ce2c10
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
603 additions
and
0 deletions
+603
-0
Country.class.php
Doctrine/Validator/Country.class.php
+265
-0
Date.class.php
Doctrine/Validator/Date.class.php
+14
-0
Email.class.php
Doctrine/Validator/Email.class.php
+47
-0
Enum.class.php
Doctrine/Validator/Enum.class.php
+23
-0
Exception.php
Doctrine/Validator/Exception.php
+13
-0
Htmlcolor.php
Doctrine/Validator/Htmlcolor.php
+17
-0
Interface.class.php
Doctrine/Validator/Interface.class.php
+5
-0
Ip.php
Doctrine/Validator/Ip.php
+22
-0
Nospace.php
Doctrine/Validator/Nospace.php
+17
-0
Notblank.php
Doctrine/Validator/Notblank.php
+21
-0
Notnull.php
Doctrine/Validator/Notnull.php
+16
-0
Protected.php
Doctrine/Validator/Protected.php
+2
-0
Range.php
Doctrine/Validator/Range.php
+21
-0
Regexp.php
Doctrine/Validator/Regexp.php
+17
-0
Required.php
Doctrine/Validator/Required.php
+13
-0
Unique.php
Doctrine/Validator/Unique.php
+18
-0
Usstate.php
Doctrine/Validator/Usstate.php
+72
-0
No files found.
Doctrine/Validator/Country.class.php
0 → 100644
View file @
0042b669
<?php
class
Doctrine_Validator_Country
{
private
static
$countries
=
array
(
"ad"
=>
"Andorra"
,
"ae"
=>
"United Arab Emirates"
,
"af"
=>
"Afghanistan"
,
"ag"
=>
"Antigua and Barbuda"
,
"ai"
=>
"Anguilla"
,
"al"
=>
"Albania"
,
"am"
=>
"Armenia"
,
"an"
=>
"Netherlands Antilles"
,
"ao"
=>
"Angola"
,
"aq"
=>
"Antarctica"
,
"ar"
=>
"Argentina"
,
"as"
=>
"American Samoa"
,
"at"
=>
"Austria"
,
"au"
=>
"Australia"
,
"aw"
=>
"Aruba"
,
"az"
=>
"Azerbaijan"
,
"ba"
=>
"Bosnia Hercegovina"
,
"bb"
=>
"Barbados"
,
"bd"
=>
"Bangladesh"
,
"be"
=>
"Belgium"
,
"bf"
=>
"Burkina Faso"
,
"bg"
=>
"Bulgaria"
,
"bh"
=>
"Bahrain"
,
"bi"
=>
"Burundi"
,
"bj"
=>
"Benin"
,
"bm"
=>
"Bermuda"
,
"bn"
=>
"Brunei Darussalam"
,
"bo"
=>
"Bolivia"
,
"br"
=>
"Brazil"
,
"bs"
=>
"Bahamas"
,
"bt"
=>
"Bhutan"
,
"bv"
=>
"Bouvet Island"
,
"bw"
=>
"Botswana"
,
"by"
=>
"Belarus (Byelorussia)"
,
"bz"
=>
"Belize"
,
"ca"
=>
"Canada"
,
"cc"
=>
"Cocos Islands"
,
"cd"
=>
'Congo, The Democratic Republic of the'
,
"cf"
=>
"Central African Republic"
,
"cg"
=>
"Congo"
,
"ch"
=>
"Switzerland"
,
"ci"
=>
"Ivory Coast"
,
"ck"
=>
"Cook Islands"
,
"cl"
=>
"Chile"
,
"cm"
=>
"Cameroon"
,
"cn"
=>
"China"
,
"co"
=>
"Colombia"
,
"cr"
=>
"Costa Rica"
,
"cs"
=>
"Czechoslovakia"
,
"cu"
=>
"Cuba"
,
"cv"
=>
"Cape Verde"
,
"cx"
=>
"Christmas Island"
,
"cy"
=>
"Cyprus"
,
"cz"
=>
'Czech Republic'
,
"de"
=>
"Germany"
,
"dj"
=>
"Djibouti"
,
"dk"
=>
'Denmark'
,
"dm"
=>
"Dominica"
,
"do"
=>
"Dominican Republic"
,
"dz"
=>
"Algeria"
,
"ec"
=>
"Ecuador"
,
"ee"
=>
"Estonia"
,
"eg"
=>
"Egypt"
,
"eh"
=>
"Western Sahara"
,
"er"
=>
'Eritrea'
,
"es"
=>
"Spain"
,
"et"
=>
"Ethiopia"
,
"fi"
=>
"Finland"
,
"fj"
=>
"Fiji"
,
"fk"
=>
"Falkland Islands"
,
"fm"
=>
"Micronesia"
,
"fo"
=>
"Faroe Islands"
,
"fr"
=>
"France"
,
"fx"
=>
'France, Metropolitan FX'
,
"ga"
=>
"Gabon"
,
"gb"
=>
'United Kingdom (Great Britain)'
,
"gd"
=>
"Grenada"
,
"ge"
=>
"Georgia"
,
"gf"
=>
"French Guiana"
,
"gh"
=>
"Ghana"
,
"gi"
=>
"Gibraltar"
,
"gl"
=>
"Greenland"
,
"gm"
=>
"Gambia"
,
"gn"
=>
"Guinea"
,
"gp"
=>
"Guadeloupe"
,
"gq"
=>
"Equatorial Guinea"
,
"gr"
=>
"Greece"
,
"gs"
=>
'South Georgia and the South Sandwich Islands'
,
"gt"
=>
"Guatemala"
,
"gu"
=>
"Guam"
,
"gw"
=>
"Guinea-bissau"
,
"gy"
=>
"Guyana"
,
"hk"
=>
"Hong Kong"
,
"hm"
=>
"Heard and McDonald Islands"
,
"hn"
=>
"Honduras"
,
"hr"
=>
"Croatia"
,
"ht"
=>
"Haiti"
,
"hu"
=>
"Hungary"
,
"id"
=>
"Indonesia"
,
"ie"
=>
"Ireland"
,
"il"
=>
"Israel"
,
"in"
=>
"India"
,
"io"
=>
"British Indian Ocean Territory"
,
"iq"
=>
"Iraq"
,
"ir"
=>
"Iran"
,
"is"
=>
"Iceland"
,
"it"
=>
"Italy"
,
"jm"
=>
"Jamaica"
,
"jo"
=>
"Jordan"
,
"jp"
=>
"Japan"
,
"ke"
=>
"Kenya"
,
"kg"
=>
"Kyrgyzstan"
,
"kh"
=>
"Cambodia"
,
"ki"
=>
"Kiribati"
,
"km"
=>
"Comoros"
,
"kn"
=>
"Saint Kitts and Nevis"
,
"kp"
=>
"North Korea"
,
"kr"
=>
"South Korea"
,
"kw"
=>
"Kuwait"
,
"ky"
=>
"Cayman Islands"
,
"kz"
=>
"Kazakhstan"
,
"la"
=>
"Laos"
,
"lb"
=>
"Lebanon"
,
"lc"
=>
"Saint Lucia"
,
"li"
=>
"Lichtenstein"
,
"lk"
=>
"Sri Lanka"
,
"lr"
=>
"Liberia"
,
"ls"
=>
"Lesotho"
,
"lt"
=>
"Lithuania"
,
"lu"
=>
"Luxembourg"
,
"lv"
=>
"Latvia"
,
"ly"
=>
"Libya"
,
"ma"
=>
"Morocco"
,
"mc"
=>
"Monaco"
,
"md"
=>
"Moldova Republic"
,
"mg"
=>
"Madagascar"
,
"mh"
=>
"Marshall Islands"
,
"mk"
=>
'Macedonia, The Former Yugoslav Republic of'
,
"ml"
=>
"Mali"
,
"mm"
=>
"Myanmar"
,
"mn"
=>
"Mongolia"
,
"mo"
=>
"Macau"
,
"mp"
=>
"Northern Mariana Islands"
,
"mq"
=>
"Martinique"
,
"mr"
=>
"Mauritania"
,
"ms"
=>
"Montserrat"
,
"mt"
=>
"Malta"
,
"mu"
=>
"Mauritius"
,
"mv"
=>
"Maldives"
,
"mw"
=>
"Malawi"
,
"mx"
=>
"Mexico"
,
"my"
=>
"Malaysia"
,
"mz"
=>
"Mozambique"
,
"na"
=>
"Namibia"
,
"nc"
=>
"New Caledonia"
,
"ne"
=>
"Niger"
,
"nf"
=>
"Norfolk Island"
,
"ng"
=>
"Nigeria"
,
"ni"
=>
"Nicaragua"
,
"nl"
=>
"Netherlands"
,
"no"
=>
"Norway"
,
"np"
=>
"Nepal"
,
"nr"
=>
"Nauru"
,
"nt"
=>
"Neutral Zone"
,
"nu"
=>
"Niue"
,
"nz"
=>
"New Zealand"
,
"om"
=>
"Oman"
,
"pa"
=>
"Panama"
,
"pe"
=>
"Peru"
,
"pf"
=>
"French Polynesia"
,
"pg"
=>
"Papua New Guinea"
,
"ph"
=>
"Philippines"
,
"pk"
=>
"Pakistan"
,
"pl"
=>
"Poland"
,
"pm"
=>
"St. Pierre and Miquelon"
,
"pn"
=>
"Pitcairn"
,
"pr"
=>
"Puerto Rico"
,
"pt"
=>
"Portugal"
,
"pw"
=>
"Palau"
,
"py"
=>
"Paraguay"
,
"qa"
=>
'Qatar'
,
"re"
=>
"Reunion"
,
"ro"
=>
"Romania"
,
"ru"
=>
"Russia"
,
"rw"
=>
"Rwanda"
,
"sa"
=>
"Saudi Arabia"
,
"sb"
=>
"Solomon Islands"
,
"sc"
=>
"Seychelles"
,
"sd"
=>
"Sudan"
,
"se"
=>
"Sweden"
,
"sg"
=>
"Singapore"
,
"sh"
=>
"St. Helena"
,
"si"
=>
"Slovenia"
,
"sj"
=>
"Svalbard and Jan Mayen Islands"
,
"sk"
=>
'Slovakia (Slovak Republic)'
,
"sl"
=>
"Sierra Leone"
,
"sm"
=>
"San Marino"
,
"sn"
=>
"Senegal"
,
"so"
=>
"Somalia"
,
"sr"
=>
"Suriname"
,
"st"
=>
"Sao Tome and Principe"
,
"sv"
=>
"El Salvador"
,
"sy"
=>
"Syria"
,
"sz"
=>
"Swaziland"
,
"tc"
=>
"Turks and Caicos Islands"
,
"td"
=>
"Chad"
,
"tf"
=>
"French Southern Territories"
,
"tg"
=>
"Togo"
,
"th"
=>
"Thailand"
,
"tj"
=>
"Tajikistan"
,
"tk"
=>
"Tokelau"
,
"tm"
=>
"Turkmenistan"
,
"tn"
=>
"Tunisia"
,
"to"
=>
"Tonga"
,
"tp"
=>
"East Timor"
,
"tr"
=>
"Turkey"
,
"tt"
=>
"Trinidad, Tobago"
,
"tv"
=>
"Tuvalu"
,
"tw"
=>
"Taiwan"
,
"tz"
=>
"Tanzania"
,
"ua"
=>
"Ukraine"
,
"ug"
=>
"Uganda"
,
"uk"
=>
"United Kingdom"
,
"um"
=>
"United States Minor Islands"
,
"us"
=>
"United States of America"
,
"uy"
=>
"Uruguay"
,
"uz"
=>
"Uzbekistan"
,
"va"
=>
"Vatican City"
,
"vc"
=>
"Saint Vincent, Grenadines"
,
"ve"
=>
"Venezuela"
,
"vg"
=>
"Virgin Islands (British)"
,
"vi"
=>
"Virgin Islands (USA)"
,
"vn"
=>
"Viet Nam"
,
"vu"
=>
"Vanuatu"
,
"wf"
=>
'Wallis and Futuna Islands'
,
"ws"
=>
"Samoa"
,
"ye"
=>
'Yemen'
,
"yt"
=>
'Mayotte'
,
"yu"
=>
"Yugoslavia"
,
"za"
=>
"South Africa"
,
"zm"
=>
"Zambia"
,
"zr"
=>
"Zaire"
,
"zw"
=>
"Zimbabwe"
);
/**
* @return array
*/
public
static
function
getCountries
()
{
return
self
::
$countries
;
}
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @param string $args
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
,
$args
)
{
return
isset
(
self
::
$countries
[
$value
]);
}
}
?>
Doctrine/Validator/Date.class.php
0 → 100644
View file @
0042b669
<?php
class
Doctrine_Validator_Date
{
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @param string $args
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
,
$args
)
{
return
checkdate
(
$value
);
}
}
?>
Doctrine/Validator/Email.class.php
0 → 100644
View file @
0042b669
<?php
class
Doctrine_Validator_Email
{
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @param string $args
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
,
$args
)
{
$parts
=
explode
(
"@"
,
$value
);
if
(
count
(
$parts
)
!=
2
)
return
false
;
if
(
strlen
(
$parts
[
0
])
<
1
||
strlen
(
$parts
[
0
])
>
64
)
return
false
;
if
(
strlen
(
$parts
[
1
])
<
1
||
strlen
(
$parts
[
1
])
>
255
)
return
false
;
$local_array
=
explode
(
"."
,
$parts
[
0
]);
for
(
$i
=
0
;
$i
<
sizeof
(
$local_array
);
$i
++
)
{
if
(
!
ereg
(
"^(([A-Za-z0-9!#$%&'*+/=?^_`
{
|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62
}
\"
))$"
,
$parts
[
$i
]))
{
return
false
;
}
}
if
(
!
ereg
(
"^\[?[0-9\.]+\]?$"
,
$parts
[
1
]))
{
// Check if domain is IP. If not, it should be valid domain name
$domain_array
=
explode
(
"."
,
$parts
[
1
]);
if
(
count
(
$domain_array
)
<
2
)
{
return
false
;
// Not enough parts to domain
}
for
(
$i
=
0
;
$i
<
sizeof
(
$domain_array
);
$i
++
)
{
if
(
!
ereg
(
"^(([A-Za-z0-9][A-Za-z0-9-]
{
0,61
}
[A-Za-z0-9])|([A-Za-z0-9]+))$"
,
$domain_array
[
$i
]))
{
return
false
;
}
}
}
if
(
function_exists
(
"checkdnsrr"
))
{
if
(
!
checkdnsrr
(
$parts
[
1
],
"MX"
))
return
false
;
}
return
true
;
}
}
?>
Doctrine/Validator/Enum.class.php
0 → 100644
View file @
0042b669
<?php
class
Doctrine_Validator_Enum
{
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @param string $args
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
,
$args
)
{
$max
=
substr_count
(
$args
,
"-"
);
$int
=
(
int
)
$value
;
if
(
$int
!=
$value
)
return
false
;
if
(
$int
<
0
||
$int
>
$max
)
return
false
;
return
true
;
}
}
?>
Doctrine/Validator/Exception.php
0 → 100644
View file @
0042b669
<?php
require_once
(
Doctrine
::
getPath
()
.
DIRECTORY_SEPARATOR
.
"Exception.php"
);
class
Doctrine_Validator_Exception
extends
Doctrine_Exception
{
private
$validator
;
public
function
__construct
(
Doctrine_Validator
$validator
)
{
$this
->
validator
=
$validator
;
}
public
function
getErrorStack
()
{
return
$this
->
validator
->
getErrorStack
();
}
}
?>
Doctrine/Validator/Htmlcolor.php
0 → 100644
View file @
0042b669
<?php
class
Doctrine_Validator_HtmlColor
{
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @param string $args
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
,
$args
)
{
if
(
!
preg_match
(
"/^#
{
0,1}[0-9]{6
}
$/"
,
$color
))
{
return
false
;
}
return
true
;
}
}
?>
Doctrine/Validator/Interface.class.php
0 → 100644
View file @
0042b669
<?php
interface
Doctrine_Validator_Interface
{
public
function
validate
();
}
?>
Doctrine/Validator/Ip.php
0 → 100644
View file @
0042b669
<?php
class
Doctrine_Validator_Ip
{
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @param string $args
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
,
$args
)
{
$e
=
explode
(
"."
,
$request
);
if
(
count
(
$e
)
!=
4
)
return
false
;
foreach
(
$e
as
$k
=>
$v
)
:
if
(
!
is_numeric
(
$v
))
return
false
;
$v
=
(
int
)
$v
;
if
(
$v
<
0
||
$v
>
255
)
return
false
;
endforeach
;
return
true
;
}
}
?>
Doctrine/Validator/Nospace.php
0 → 100644
View file @
0042b669
<?php
class
Doctrine_Validator_NoSpace
{
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @param string $args
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
,
$args
)
{
if
(
trim
(
$value
)
===
''
)
return
false
;
return
true
;
}
}
?>
Doctrine/Validator/Notblank.php
0 → 100644
View file @
0042b669
<?php
class
Doctrine_Validator_Notblank
{
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @param string $args
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
,
$args
)
{
$string
=
str_replace
(
"
\n
"
,
""
,
$value
);
$string
=
str_replace
(
"
\r
"
,
""
,
$string
);
$string
=
str_replace
(
"
\t
"
,
""
,
$string
);
$string
=
str_replace
(
"\s"
,
""
,
$string
);
$string
=
str_replace
(
" "
,
""
,
$string
);
if
(
$string
==
""
)
return
false
;
return
true
;
}
}
?>
Doctrine/Validator/Notnull.php
0 → 100644
View file @
0042b669
<?php
class
Doctrine_Validator_Notnull
{
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
)
{
if
(
$value
===
null
||
$value
===
''
)
return
false
;
return
true
;
}
}
?>
Doctrine/Validator/Protected.php
0 → 100644
View file @
0042b669
<?php
?>
Doctrine/Validator/Range.php
0 → 100644
View file @
0042b669
<?php
class
Doctrine_Validator_Range
{
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @param string $args
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
,
$args
)
{
$e
=
explode
(
"-"
,
$args
);
if
(
$value
<
$e
[
0
])
return
false
;
if
(
isset
(
$e
[
1
])
&&
$value
>
$e
[
1
])
return
false
;
return
true
;
}
}
?>
Doctrine/Validator/Regexp.php
0 → 100644
View file @
0042b669
<?php
class
Doctrine_Validator_Regexp
{
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @param string $args
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
,
$args
)
{
if
(
preg_match
(
"/
$args
/"
,
$value
))
return
true
;
return
false
;
}
}
?>
Doctrine/Validator/Required.php
0 → 100644
View file @
0042b669
<?php
class
Doctrine_Validator_Required
{
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
)
{
return
(
$value
===
null
);
}
}
?>
Doctrine/Validator/Unique.php
0 → 100644
View file @
0042b669
<?php
class
Doctrine_Validator_Unique
{
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @param string $args
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
,
$args
)
{
$table
=
$record
->
getTable
();
$sql
=
"SELECT id FROM "
.
$table
->
getTableName
()
.
" WHERE "
.
$key
.
" = ?"
;
$stmt
=
$table
->
getSession
()
->
getDBH
()
->
prepare
(
$sql
);
$stmt
->
execute
(
array
(
$value
));
return
(
!
is_array
(
$stmt
->
fetch
()));
}
}
?>
Doctrine/Validator/Usstate.php
0 → 100644
View file @
0042b669
<?php
class
ValidatorUSState
{
private
static
$states
=
array
(
"AK"
=>
true
,
"AL"
=>
true
,
"AR"
=>
true
,
"AZ"
=>
true
,
"CA"
=>
true
,
"CO"
=>
true
,
"CT"
=>
true
,
"DC"
=>
true
,
"DE"
=>
true
,
"FL"
=>
true
,
"GA"
=>
true
,
"HI"
=>
true
,
"IA"
=>
true
,
"ID"
=>
true
,
"IL"
=>
true
,
"IN"
=>
true
,
"KS"
=>
true
,
"KY"
=>
true
,
"LA"
=>
true
,
"MA"
=>
true
,
"MD"
=>
true
,
"ME"
=>
true
,
"MI"
=>
true
,
"MN"
=>
true
,
"MO"
=>
true
,
"MS"
=>
true
,
"MT"
=>
true
,
"NC"
=>
true
,
"ND"
=>
true
,
"NE"
=>
true
,
"NH"
=>
true
,
"NJ"
=>
true
,
"NM"
=>
true
,
"NV"
=>
true
,
"NY"
=>
true
,
"OH"
=>
true
,
"OK"
=>
true
,
"OR"
=>
true
,
"PA"
=>
true
,
"PR"
=>
true
,
"RI"
=>
true
,
"SC"
=>
true
,
"SD"
=>
true
,
"TN"
=>
true
,
"TX"
=>
true
,
"UT"
=>
true
,
"VA"
=>
true
,
"VI"
=>
true
,
"VT"
=>
true
,
"WA"
=>
true
,
"WI"
=>
true
,
"WV"
=>
true
,
"WY"
=>
true
);
public
function
getStates
()
{
return
self
::
$states
;
}
/**
* @param Doctrine_Record $record
* @param string $key
* @param mixed $value
* @param string $args
* @return boolean
*/
public
function
validate
(
Doctrine_Record
$record
,
$key
,
$value
,
$args
)
{
return
isset
(
self
::
$states
[
$value
]);
}
}
?>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment