 pgadmin/dlg/dlgSearchObject.cpp       | 702 +++++++++++++++++++++++++---------
 pgadmin/include/dlg/dlgSearchObject.h |   6 +-
 pgadmin/ui/dlgSearchObject.xrc        | 329 ++++++++++------
 pgadmin/ui/xrcDialogs.cpp             | 519 ++++++++++++++++---------
 4 files changed, 1073 insertions(+), 483 deletions(-)

diff --git a/pgadmin/dlg/dlgSearchObject.cpp b/pgadmin/dlg/dlgSearchObject.cpp
index effbb12..0cfee30 100644
--- a/pgadmin/dlg/dlgSearchObject.cpp
+++ b/pgadmin/dlg/dlgSearchObject.cpp
@@ -22,19 +22,26 @@
 #include "ctl/ctlListView.h"
 
 #define txtPattern        CTRL_TEXT("txtPattern")
-#define cbType          CTRL_COMBOBOX("cbType")
+#define cbType            CTRL_COMBOBOX("cbType")
+#define cbSchema          CTRL_COMBOBOX("cbSchema")
 #define lcResults         CTRL_LISTCTRL("lcResults")
-#define btnSearch             CTRL_BUTTON("btnSearch")
+#define btnSearch         CTRL_BUTTON("btnSearch")
+#define chkNames          CTRL_CHECKBOX("chkNames")
+#define chkDefinitions    CTRL_CHECKBOX("chkDefinitions")
+#define chkComments       CTRL_CHECKBOX("chkComments")
 
 BEGIN_EVENT_TABLE(dlgSearchObject, pgDialog)
 	EVT_BUTTON(wxID_HELP,                      dlgSearchObject::OnHelp)
-	EVT_BUTTON(XRCID("btnSearch"),			   dlgSearchObject::OnSearch)
+	EVT_BUTTON(XRCID("btnSearch"),             dlgSearchObject::OnSearch)
 	EVT_BUTTON(wxID_CANCEL,                    dlgSearchObject::OnCancel)
 	EVT_TEXT(XRCID("txtPattern"),              dlgSearchObject::OnChange)
 	EVT_LIST_ITEM_SELECTED(XRCID("lcResults"), dlgSearchObject::OnSelSearchResult)
+	EVT_CHECKBOX(XRCID("chkNames"),            dlgSearchObject::OnChange)
+	EVT_CHECKBOX(XRCID("chkDefinitions"),      dlgSearchObject::OnChange)
+	EVT_CHECKBOX(XRCID("chkComments"),         dlgSearchObject::OnChange)
 END_EVENT_TABLE()
 
-dlgSearchObject::dlgSearchObject(frmMain *p, pgDatabase *db)
+dlgSearchObject::dlgSearchObject(frmMain *p, pgDatabase *db, pgObject *obj)
 {
 	parent = p;
 	header = wxT("");
@@ -47,7 +54,7 @@ dlgSearchObject::dlgSearchObject(frmMain *p, pgDatabase *db)
 	appearanceFactory->SetIcons(this);
 	RestorePosition();
 
-	btnSearch->Disable();
+	ToggleBtnSearch(false);
 
 	lcResults->InsertColumn(0, _("Type"));
 	lcResults->InsertColumn(1, _("Name"));
@@ -135,8 +142,49 @@ dlgSearchObject::dlgSearchObject(frmMain *p, pgDatabase *db)
 		cbType->Append(_("Extensions"));
 		cbType->Append(_("Collations"));
 	}
+
 	cbType->SetSelection(0);
 
+	cbSchema->Clear();
+	cbSchema->Append(_("All schemas"));
+	cbSchema->Append(_("My schemas"));
+
+	if (obj->GetSchema())
+		currentSchema = obj->GetSchema()->GetName();
+	else if (obj->GetMetaType() == PGM_SCHEMA && !obj->IsCollection())
+		currentSchema = obj->GetName();
+	else
+		currentSchema = wxEmptyString;
+
+	if (!currentSchema.IsEmpty())
+		cbSchemaIdxCurrent = cbSchema->Append(wxString::Format(_("Current schema (%s)"), currentSchema.c_str()));
+
+	wxString sql;
+
+	sql = wxT("SELECT nsp.nspname")
+	      wxT("  FROM pg_namespace nsp\n");
+	if (!settings->GetShowSystemObjects())
+	{
+		if (currentdb->BackendMinimumVersion(8, 1))
+			sql += wxT(" WHERE nspname NOT LIKE E'pg\\\\_temp\\\\_%' AND nspname NOT LIKE E'pg\\\\_toast%'");
+		else
+			sql += wxT(" WHERE nspname NOT LIKE 'pg\\\\_temp\\\\_%' AND nspname NOT LIKE 'pg\\\\_toast%'");
+	}
+	sql += wxT(" ORDER BY nspname");
+
+	pgSet *set = currentdb->GetConnection()->ExecuteSet(sql);
+	if(set)
+	{
+		while(!set->Eof())
+		{
+			cbSchema->Append(set->GetVal(wxT("nspname")));
+			set->MoveNext();
+		}
+		delete set;
+	}
+
+	cbSchema->SetSelection(0);
+
 	txtPattern->SetFocus();
 }
 
@@ -188,197 +236,492 @@ void dlgSearchObject::OnSelSearchResult(wxListEvent &ev)
 
 void dlgSearchObject::OnChange(wxCommandEvent &ev)
 {
-	/* When someone searches for operators, the limit of 3 characters is ignored */
-	if(aMap[cbType->GetValue()] != wxT("Operators") && txtPattern->GetValue().Length() < 3)
-		btnSearch->Disable();
-	else
+	ToggleBtnSearch(true);
+}
+
+void dlgSearchObject::ToggleBtnSearch(bool enable)
+{
+	if(enable &&
+	   /* When someone searches for operators, the limit of 3 characters is ignored */
+	   (aMap[cbType->GetValue()] == wxT("Operators") || txtPattern->GetValue().Length() >= 3) &&
+	   // At least one search mode enabled
+	   (chkNames->GetValue() || chkDefinitions->GetValue() || chkComments->GetValue()))
+	{
 		btnSearch->Enable();
+	}
+	else
+		btnSearch->Disable();
 }
 
 void dlgSearchObject::OnSearch(wxCommandEvent &ev)
 {
+	if (!(chkNames->GetValue() || chkDefinitions->GetValue() || chkComments->GetValue()))
+		return; // should not happen
+
+	ToggleBtnSearch(false);
+	if (statusBar)
+		statusBar->SetStatusText(wxT("Searching..."));
+
+	wxString txtPatternStr;
+	if (txtPattern->GetValue().Contains(wxT("%")))
+		txtPatternStr = currentdb->GetConnection()->qtDbString(txtPattern->GetValue().Lower());
+	else
+		txtPatternStr = currentdb->GetConnection()->qtDbString(wxT("%") + txtPattern->GetValue().Lower() + wxT("%"));
 
 	/*
 	Adding objects:
 
 	Create a sql statement which lists all objects of the specified type and add it to the inner statement with an union.
-	We need three columns: type, objectname and path.
+	We need four columns: type, objectname, path and nspname (schema name). If object is schemaless, set nspname to NULL.
 	Parts of the path which has to be translated to the local langauge (because of tree path) must begin with a colon.
 	Append the type to the combobox and the mapping table in the constructor. */
 
 	wxString databasePath = parent->GetNodePath(currentdb->GetDatabase()->GetId());
-	wxString searchSQL = wxT("SELECT * FROM (  ")
-	                     wxT("	SELECT  ")
-	                     wxT("	CASE   ")
-	                     wxT("		WHEN c.relkind = 'r' THEN 'Tables'   ")
-	                     wxT("		WHEN c.relkind = 'S' THEN 'Sequences'   ")
-	                     wxT("		WHEN c.relkind = 'v' THEN 'Views'   ")
-	                     wxT("		ELSE 'should not happen'   ")
-	                     wxT("	END AS type, c.relname AS objectname,  ")
-	                     wxT("	':Schemas/' || n.nspname || '/' ||  ")
-	                     wxT("	CASE   ")
-	                     wxT("		WHEN c.relkind = 'r' THEN ':Tables'   ")
-	                     wxT("		WHEN c.relkind = 'S' THEN ':Sequences'   ")
-	                     wxT("		WHEN c.relkind = 'v' THEN ':Views'   ")
-	                     wxT("		ELSE 'should not happen'   ")
-	                     wxT("	END || '/' || c.relname AS path  ")
-	                     wxT("	FROM pg_class c  ")
-	                     wxT("	LEFT JOIN pg_namespace n ON n.oid = c.relnamespace     ")
-	                     wxT("	WHERE c.relkind in ('r','S','v')  ")
-	                     wxT("	UNION  ")
-	                     wxT("	SELECT 'Indexes', cls.relname, ':Schemas/' || n.nspname || '/:Tables/' || tab.relname || '/:Indexes/' || cls.relname ")
-	                     wxT("	FROM pg_index idx ")
-	                     wxT("	JOIN pg_class cls ON cls.oid=indexrelid ")
-	                     wxT("	JOIN pg_class tab ON tab.oid=indrelid ")
-	                     wxT("	JOIN pg_namespace n ON n.oid=tab.relnamespace ")
-	                     wxT("	LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i') ")
-	                     wxT("	LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid) ")
-	                     wxT("	LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid ")
-	                     wxT("	LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0) ")
-	                     wxT("	WHERE contype IS NULL ")
-	                     wxT("	UNION  ")
-	                     wxT("	SELECT CASE WHEN t.typname = 'trigger' THEN 'Trigger Functions' ELSE 'Functions' END AS type, p.proname,  ")
-	                     wxT("	':Schemas/' || n.nspname || '/' || case when t.typname = 'trigger' then ':Trigger Functions' else ':Functions' end || '/' || p.proname ")
-	                     wxT("	from pg_proc p  ")
-	                     wxT("	left join pg_namespace n on p.pronamespace = n.oid  ")
-	                     wxT("	left join pg_type t on p.prorettype = t.oid  ")
-	                     wxT("	union  ")
-	                     wxT("	select 'Schemas', nspname, ':Schemas/' || nspname from pg_namespace  ")
-	                     wxT("	union  ")
-	                     wxT("	select 'Columns', a.attname,  ")
-	                     wxT("	':Schemas/' || n.nspname || '/' ||  ")
-	                     wxT("	case   ")
-	                     wxT("		when t.relkind = 'r' then ':Tables'   ")
-	                     wxT("		when t.relkind = 'S' then ':Sequences'   ")
-	                     wxT("		when t.relkind = 'v' then ':Views'   ")
-	                     wxT("		else 'should not happen'   ")
-	                     wxT("	end || '/' || t.relname || '/:Columns/' || a.attname AS path  ")
-	                     wxT("	from pg_attribute a  ")
-	                     wxT("	inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v')  ")
-	                     wxT("	left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0  ")
-	                     wxT("	union  ")
-	                     wxT("	select 'Constraints', case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end, ':Schemas/' || n.nspname||'/:Tables/'||t.relname||'/:Constraints/'||case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end from pg_constraint c    ")
-	                     wxT("	left join pg_class t on c.conrelid = t.oid  ")
-	                     wxT("	left join pg_class tf on c.confrelid = tf.oid  ")
-	                     wxT("	left join pg_namespace n on t.relnamespace = n.oid 						 ")
-	                     wxT("	union  ")
-	                     wxT("	select 'Rules', r.rulename, ':Schemas/' || n.nspname||case when t.relkind = 'v' then '/:Views/' else '/:Tables/' end||t.relname||'/:Rules/'|| r.rulename from pg_rewrite r  ")
-	                     wxT("	left join pg_class t on r.ev_class = t.oid  ")
-	                     wxT("	left join pg_namespace n on t.relnamespace = n.oid 						 ")
-	                     wxT("	union  ")
-	                     wxT("	select 'Triggers', tr.tgname, ':Schemas/' || n.nspname||case when t.relkind = 'v' then '/:Views/' else '/:Tables/' end||t.relname || '/:Triggers/' || tr.tgname from pg_trigger tr  ")
-	                     wxT("	left join pg_class t on tr.tgrelid = t.oid  ")
-	                     wxT("	left join pg_namespace n on t.relnamespace = n.oid  ")
-	                     wxT("	where ");
-	if(currentdb->BackendMinimumVersion(9, 0))
-	{
-		searchSQL += wxT(" tr.tgisinternal = false ");
-	}
-	else
-	{
-		searchSQL += wxT(" tr.tgisconstraint = false ");
-	}
-	searchSQL += wxT("	union ")
-	             wxT("	SELECT 'Types', t.typname, ':Schemas/' || n.nspname || '/:Types' || t.typname ")
-	             wxT("	FROM pg_type t ")
-	             wxT("	LEFT OUTER JOIN pg_type e ON e.oid=t.typelem ")
-	             wxT("	LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c' ")
-	             wxT("	LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid ")
-	             wxT("	WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%' 	 ")
-	             wxT("	union ")
-	             wxT("	SELECT 'Conversions', co.conname, ':Schemas/' || n.nspname || '/:Conversions/' || co.conname ")
-	             wxT("	FROM pg_conversion co ")
-	             wxT("	JOIN pg_namespace n ON n.oid=co.connamespace ")
-	             wxT("	LEFT OUTER JOIN pg_description des ON des.objoid=co.oid AND des.objsubid=0	 ")
-	             wxT("	union ")
-	             wxT("	SELECT 'Casts', format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod), ':Casts/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod) ")
-	             wxT("	FROM pg_cast ca ")
-	             wxT("	JOIN pg_type st ON st.oid=castsource ")
-	             wxT("	JOIN pg_type tt ON tt.oid=casttarget ")
-	             wxT("	union ")
-	             wxT("	SELECT 'Languages', lanname, ':Languages/' || lanname ")
-	             wxT("	FROM pg_language lan ")
-	             wxT("	WHERE lanispl IS TRUE ")
-	             wxT("	union ")
-	             wxT("	SELECT 'FTS Configurations', cfg.cfgname, ':Schemas/' || n.nspname || '/:FTS Configurations/' || cfg.cfgname ")
-	             wxT("	FROM pg_ts_config cfg ")
-	             wxT("	left join pg_namespace n on cfg.cfgnamespace = n.oid	 ")
-	             wxT("	union ")
-	             wxT("	SELECT 'FTS Dictionaries', dict.dictname, ':Schemas/' || ns.nspname || '/:FTS Dictionaries/' || dict.dictname ")
-	             wxT("	FROM pg_ts_dict dict ")
-	             wxT("	left join pg_namespace ns on dict.dictnamespace = ns.oid ")
-	             wxT("	union ")
-	             wxT("	SELECT 'FTS Parsers', prs.prsname, ':Schemas/' || ns.nspname || '/:FTS Parsers/' || prs.prsname ")
-	             wxT("	FROM pg_ts_parser prs ")
-	             wxT("	left join pg_namespace ns on prs.prsnamespace = ns.oid ")
-	             wxT("	union ")
-	             wxT("	SELECT 'FTS Templates', tmpl.tmplname, ':Schemas/' || ns.nspname || '/:FTS Templates/' || tmpl.tmplname ")
-	             wxT("	FROM pg_ts_template tmpl ")
-	             wxT("	left join pg_namespace ns on tmpl.tmplnamespace = ns.oid ")
-	             wxT("	union ")
-	             wxT("	select 'Domains', t.typname, ':Schemas/' || n.nspname || '/:Domains/' || t.typname from pg_type t  ")
-	             wxT("	inner join pg_namespace n on t.typnamespace = n.oid ")
-	             wxT("	where t.typtype = 'd' ")
-	             wxT("	union ")
-	             wxT("	select 'Aggregates', pr.proname, ':Schemas/' || ns.nspname || '/:Aggregates/' || pr.proname from pg_catalog.pg_aggregate ag ")
-	             wxT("	inner join pg_proc pr on ag.aggfnoid = pr.oid ")
-	             wxT("	left join pg_namespace ns on  pr.pronamespace = ns.oid ")
-	             wxT("	union ")
-	             wxT("	select case when rolcanlogin = true then 'Login Roles' else 'Group Roles' end, rolname, case when rolcanlogin = true then ':Login Roles' else ':Group Roles' end || '/' || rolname ")
-	             wxT("	from pg_roles ")
-	             wxT("	union ")
-	             wxT("	select 'Tablespaces', spcname, ':Tablespaces/'||spcname from pg_tablespace ")
-	             wxT("	union ")
-	             wxT("	SELECT 'Operators', op.oprname, ':Schemas/' || ns.nspname || '/:Operators/' || op.oprname ")
-	             wxT("	FROM pg_operator op ")
-	             wxT("	left join pg_namespace ns on op.oprnamespace = ns.oid ")
-	             wxT("	union ")
-	             wxT("	SELECT 'Operator Classes', op.opcname, ':Schemas/' || ns.nspname || '/:Operator Classes/' || op.opcname ")
-	             wxT("	FROM pg_opclass op ")
-	             wxT("	left join pg_namespace ns on op.opcnamespace = ns.oid ")
-	             wxT("	union ")
-	             wxT("	SELECT 'Operator Families', opf.opfname, ':Schemas/' || ns.nspname || '/:Operator Families/' || opf.opfname ")
-	             wxT("	FROM pg_opfamily opf ")
-	             wxT("	left join pg_namespace ns on opf.opfnamespace = ns.oid ");
-
-
-	if(currentdb->BackendMinimumVersion(8, 4) && currentdb->GetConnection()->IsSuperuser())
+	wxString searchSQL = wxT("SELECT * FROM ( ");
+
+	bool nextMode = false;
+	// search names
+	if (chkNames->GetValue())
 	{
+		if (nextMode)
+			searchSQL += wxT("UNION ALL \n");
+		nextMode = true;
+		searchSQL += wxT("SELECT * FROM (  ")
+		             wxT("	SELECT  ")
+		             wxT("	CASE   ")
+		             wxT("		WHEN c.relkind = 'r' THEN 'Tables'   ")
+		             wxT("		WHEN c.relkind = 'S' THEN 'Sequences'   ")
+		             wxT("		WHEN c.relkind = 'v' THEN 'Views'   ")
+		             wxT("		ELSE 'should not happen'   ")
+		             wxT("	END AS type, c.relname AS objectname,  ")
+		             wxT("	':Schemas/' || n.nspname || '/' ||  ")
+		             wxT("	CASE   ")
+		             wxT("		WHEN c.relkind = 'r' THEN ':Tables'   ")
+		             wxT("		WHEN c.relkind = 'S' THEN ':Sequences'   ")
+		             wxT("		WHEN c.relkind = 'v' THEN ':Views'   ")
+		             wxT("		ELSE 'should not happen'   ")
+		             wxT("	END || '/' || c.relname AS path, n.nspname  ")
+		             wxT("	FROM pg_class c  ")
+		             wxT("	LEFT JOIN pg_namespace n ON n.oid = c.relnamespace     ")
+		             wxT("	WHERE c.relkind in ('r','S','v')  ")
+		             wxT("	UNION  ")
+		             wxT("	SELECT 'Indexes', cls.relname, ':Schemas/' || n.nspname || '/:Tables/' || tab.relname || '/:Indexes/' || cls.relname, n.nspname ")
+		             wxT("	FROM pg_index idx ")
+		             wxT("	JOIN pg_class cls ON cls.oid=indexrelid ")
+		             wxT("	JOIN pg_class tab ON tab.oid=indrelid ")
+		             wxT("	JOIN pg_namespace n ON n.oid=tab.relnamespace ")
+		             wxT("	LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i') ")
+		             wxT("	LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid) ")
+		             wxT("	LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid ")
+		             wxT("	LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0) ")
+		             wxT("	WHERE contype IS NULL ")
+		             wxT("	UNION  ")
+		             wxT("	SELECT CASE WHEN t.typname = 'trigger' THEN 'Trigger Functions' ELSE 'Functions' END AS type, p.proname,  ")
+		             wxT("	':Schemas/' || n.nspname || '/' || case when t.typname = 'trigger' then ':Trigger Functions' else ':Functions' end || '/' || p.proname, n.nspname ")
+		             wxT("	from pg_proc p  ")
+		             wxT("	left join pg_namespace n on p.pronamespace = n.oid  ")
+		             wxT("	left join pg_type t on p.prorettype = t.oid  ")
+		             wxT("	union  ")
+		             wxT("	select 'Schemas', nspname, ':Schemas/' || nspname, nspname from pg_namespace  ")
+		             wxT("	union  ")
+		             wxT("	select 'Columns', a.attname,  ")
+		             wxT("	':Schemas/' || n.nspname || '/' ||  ")
+		             wxT("	case   ")
+		             wxT("		when t.relkind = 'r' then ':Tables'   ")
+		             wxT("		when t.relkind = 'S' then ':Sequences'   ")
+		             wxT("		when t.relkind = 'v' then ':Views'   ")
+		             wxT("		else 'should not happen'   ")
+		             wxT("	end || '/' || t.relname || '/:Columns/' || a.attname AS path, n.nspname  ")
+		             wxT("	from pg_attribute a  ")
+		             wxT("	inner join pg_class t on a.attrelid = t.oid and t.relkind in ('r','v')  ")
+		             wxT("	left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0  ")
+		             wxT("	union  ")
+		             wxT("	select 'Constraints', case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end, ':Schemas/' || n.nspname||'/:Tables/'||t.relname||'/:Constraints/'||case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end, n.nspname from pg_constraint c    ")
+		             wxT("	left join pg_class t on c.conrelid = t.oid  ")
+		             wxT("	left join pg_class tf on c.confrelid = tf.oid  ")
+		             wxT("	left join pg_namespace n on t.relnamespace = n.oid 						 ")
+		             wxT("	union  ")
+		             wxT("	select 'Rules', r.rulename, ':Schemas/' || n.nspname||case when t.relkind = 'v' then '/:Views/' else '/:Tables/' end||t.relname||'/:Rules/'|| r.rulename, n.nspname from pg_rewrite r  ")
+		             wxT("	left join pg_class t on r.ev_class = t.oid  ")
+		             wxT("	left join pg_namespace n on t.relnamespace = n.oid 						 ")
+		             wxT("	union  ")
+		             wxT("	select 'Triggers', tr.tgname, ':Schemas/' || n.nspname||case when t.relkind = 'v' then '/:Views/' else '/:Tables/' end||t.relname || '/:Triggers/' || tr.tgname, n.nspname from pg_trigger tr  ")
+		             wxT("	left join pg_class t on tr.tgrelid = t.oid  ")
+		             wxT("	left join pg_namespace n on t.relnamespace = n.oid  ")
+		             wxT("	where ");
+		if(currentdb->BackendMinimumVersion(9, 0))
+			searchSQL += wxT(" tr.tgisinternal = false ");
+		else
+			searchSQL += wxT(" tr.tgisconstraint = false ");
 		searchSQL += wxT("	union ")
-		             wxT("	select 'Foreign Data Wrappers', fdwname, ':Foreign Data Wrappers/' || fdwname from pg_foreign_data_wrapper ")
+		             wxT("	SELECT 'Types', t.typname, ':Schemas/' || n.nspname || '/:Types' || t.typname, n.nspname ")
+		             wxT("	FROM pg_type t ")
+		             wxT("	LEFT OUTER JOIN pg_type e ON e.oid=t.typelem ")
+		             wxT("	LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c' ")
+		             wxT("	LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid ")
+		             wxT("	WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\\\_%' 	 ")
 		             wxT("	union ")
-		             wxT("	select 'Foreign Server', sr.srvname, ':Foreign Data Wrappers/' || fdw.fdwname || '/:Foreign Servers/' || sr.srvname from pg_foreign_server sr ")
-		             wxT("	inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid ")
+		             wxT("	SELECT 'Conversions', co.conname, ':Schemas/' || n.nspname || '/:Conversions/' || co.conname, n.nspname ")
+		             wxT("	FROM pg_conversion co ")
+		             wxT("	JOIN pg_namespace n ON n.oid=co.connamespace ")
+		             wxT("	LEFT OUTER JOIN pg_description des ON des.objoid=co.oid AND des.objsubid=0	 ")
 		             wxT("	union ")
-		             wxT("	select 'User Mappings', ro.rolname, ':Foreign Data Wrappers/' || fdw.fdwname || '/:Foreign Servers/' || sr.srvname || '/:User Mappings/' || ro.rolname from pg_user_mapping um ")
-		             wxT("	inner join pg_roles ro on um.umuser = ro.oid ")
-		             wxT("	inner join pg_foreign_server sr on um.umserver = sr.oid ")
-		             wxT("	inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid ");
-	}
-
-	if(currentdb->BackendMinimumVersion(9, 1))
-	{
-		searchSQL += wxT("	union ")
-		             wxT("	select 'Foreign Tables', c.relname, ':Schemas/' || ns.nspname || '/:Foreign Tables/' || c.relname from pg_foreign_table ft ")
-		             wxT("	inner join pg_class c on ft.ftrelid = c.oid ")
-		             wxT("	inner join pg_namespace ns on c.relnamespace = ns.oid ")
+		             wxT("	SELECT 'Casts', format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod), ':Casts/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod), NULL as nspname ")
+		             wxT("	FROM pg_cast ca ")
+		             wxT("	JOIN pg_type st ON st.oid=castsource ")
+		             wxT("	JOIN pg_type tt ON tt.oid=casttarget ")
+		             wxT("	union ")
+		             wxT("	SELECT 'Languages', lanname, ':Languages/' || lanname, NULL as nspname ")
+		             wxT("	FROM pg_language lan ")
+		             wxT("	WHERE lanispl IS TRUE ")
+		             wxT("	union ")
+		             wxT("	SELECT 'FTS Configurations', cfg.cfgname, ':Schemas/' || n.nspname || '/:FTS Configurations/' || cfg.cfgname, n.nspname ")
+		             wxT("	FROM pg_ts_config cfg ")
+		             wxT("	left join pg_namespace n on cfg.cfgnamespace = n.oid	 ")
+		             wxT("	union ")
+		             wxT("	SELECT 'FTS Dictionaries', dict.dictname, ':Schemas/' || ns.nspname || '/:FTS Dictionaries/' || dict.dictname, ns.nspname ")
+		             wxT("	FROM pg_ts_dict dict ")
+		             wxT("	left join pg_namespace ns on dict.dictnamespace = ns.oid ")
+		             wxT("	union ")
+		             wxT("	SELECT 'FTS Parsers', prs.prsname, ':Schemas/' || ns.nspname || '/:FTS Parsers/' || prs.prsname, ns.nspname ")
+		             wxT("	FROM pg_ts_parser prs ")
+		             wxT("	left join pg_namespace ns on prs.prsnamespace = ns.oid ")
+		             wxT("	union ")
+		             wxT("	SELECT 'FTS Templates', tmpl.tmplname, ':Schemas/' || ns.nspname || '/:FTS Templates/' || tmpl.tmplname, ns.nspname ")
+		             wxT("	FROM pg_ts_template tmpl ")
+		             wxT("	left join pg_namespace ns on tmpl.tmplnamespace = ns.oid ")
+		             wxT("	union ")
+		             wxT("	select 'Domains', t.typname, ':Schemas/' || n.nspname || '/:Domains/' || t.typname, n.nspname from pg_type t  ")
+		             wxT("	inner join pg_namespace n on t.typnamespace = n.oid ")
+		             wxT("	where t.typtype = 'd' ")
+		             wxT("	union ")
+		             wxT("	select 'Aggregates', pr.proname, ':Schemas/' || ns.nspname || '/:Aggregates/' || pr.proname , ns.nspname from pg_catalog.pg_aggregate ag ")
+		             wxT("	inner join pg_proc pr on ag.aggfnoid = pr.oid ")
+		             wxT("	left join pg_namespace ns on  pr.pronamespace = ns.oid ")
+		             wxT("	union ")
+		             wxT("	select case when rolcanlogin = true then 'Login Roles' else 'Group Roles' end, rolname, case when rolcanlogin = true then ':Login Roles' else ':Group Roles' end || '/' || rolname, NULL as nspname ")
+		             wxT("	from pg_roles ")
 		             wxT("	union ")
-		             wxT("	select 'Extensions', x.extname, ':Extensions/' || x.extname ")
-		             wxT("	FROM pg_extension x	")
-		             wxT("	JOIN pg_namespace n on x.extnamespace=n.oid ")
-		             wxT("	join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name ")
+		             wxT("	select 'Tablespaces', spcname, ':Tablespaces/'||spcname, NULL as nspname from pg_tablespace ")
 		             wxT("	union ")
-		             wxT("	SELECT 'Collations', c.collname, ':Schemas/' || n.nspname || '/:Collations/' || c.collname ")
-		             wxT("	FROM pg_collation c ")
-		             wxT("	JOIN pg_namespace n ON n.oid=c.collnamespace ");
+		             wxT("	SELECT 'Operators', op.oprname, ':Schemas/' || ns.nspname || '/:Operators/' || op.oprname, ns.nspname ")
+		             wxT("	FROM pg_operator op ")
+		             wxT("	left join pg_namespace ns on op.oprnamespace = ns.oid ")
+		             wxT("	union ")
+		             wxT("	SELECT 'Operator Classes', op.opcname, ':Schemas/' || ns.nspname || '/:Operator Classes/' || op.opcname, ns.nspname ")
+		             wxT("	FROM pg_opclass op ")
+		             wxT("	left join pg_namespace ns on op.opcnamespace = ns.oid ")
+		             wxT("	union ")
+		             wxT("	SELECT 'Operator Families', opf.opfname, ':Schemas/' || ns.nspname || '/:Operator Families/' || opf.opfname, ns.nspname ")
+		             wxT("	FROM pg_opfamily opf ")
+		             wxT("	left join pg_namespace ns on opf.opfnamespace = ns.oid ");
+
+		if(currentdb->BackendMinimumVersion(8, 4) && currentdb->GetConnection()->IsSuperuser())
+		{
+			searchSQL += wxT("	union ")
+			             wxT("	select 'Foreign Data Wrappers', fdwname, ':Foreign Data Wrappers/' || fdwname, NULL as nspname from pg_foreign_data_wrapper ")
+			             wxT("	union ")
+			             wxT("	select 'Foreign Server', sr.srvname, ':Foreign Data Wrappers/' || fdw.fdwname || '/:Foreign Servers/' || sr.srvname, NULL as nspname from pg_foreign_server sr ")
+			             wxT("	inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid ")
+			             wxT("	union ")
+			             wxT("	select 'User Mappings', ro.rolname, ':Foreign Data Wrappers/' || fdw.fdwname || '/:Foreign Servers/' || sr.srvname || '/:User Mappings/' || ro.rolname, NULL as nspname from pg_user_mapping um ")
+			             wxT("	inner join pg_roles ro on um.umuser = ro.oid ")
+			             wxT("	inner join pg_foreign_server sr on um.umserver = sr.oid ")
+			             wxT("	inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid ");
+		}
+
+		if(currentdb->BackendMinimumVersion(9, 1))
+		{
+			searchSQL += wxT("	union ")
+			             wxT("	select 'Foreign Tables', c.relname, ':Schemas/' || ns.nspname || '/:Foreign Tables/' || c.relname, ns.nspname from pg_foreign_table ft ")
+			             wxT("	inner join pg_class c on ft.ftrelid = c.oid ")
+			             wxT("	inner join pg_namespace ns on c.relnamespace = ns.oid ")
+			             wxT("	union ")
+			             wxT("	select 'Extensions', x.extname, ':Extensions/' || x.extname, NULL as nspname ")
+			             wxT("	FROM pg_extension x	")
+			             wxT("	JOIN pg_namespace n on x.extnamespace=n.oid ")
+			             wxT("	join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name ")
+			             wxT("	union ")
+			             wxT("	SELECT 'Collations', c.collname, ':Schemas/' || n.nspname || '/:Collations/' || c.collname, n.nspname ")
+			             wxT("	FROM pg_collation c ")
+			             wxT("	JOIN pg_namespace n ON n.oid=c.collnamespace ");
+		}
+
+		searchSQL += wxT(") sn \n")
+		             wxT("where lower(sn.objectname) like ") + txtPatternStr + wxT(" \n");
+	} // search names
+
+		// search definitions
+	if (chkDefinitions->GetValue())
+	{
+		if (nextMode)
+			searchSQL += wxT("UNION ALL \n");
+		nextMode = true;
+		searchSQL += wxT("SELECT * FROM (  ")
+		             wxT("	SELECT CASE WHEN t.typname = 'trigger' THEN 'Trigger Functions' ELSE 'Functions' END AS type, p.proname as objectname,  ")
+		             wxT("	':Schemas/' || n.nspname || '/' || case when t.typname = 'trigger' then ':Trigger Functions' else ':Functions' end || '/' || p.proname as path, n.nspname ")
+		             wxT("	from pg_proc p  ")
+		             wxT("	left join pg_namespace n on p.pronamespace = n.oid  ")
+		             wxT("	left join pg_type t on p.prorettype = t.oid  ")
+		             // TODO: search for other object's definitions (constraint expressions, defaults and so on)
+		             wxT("WHERE p.prosrc ILIKE ") + txtPatternStr + wxT(" ");
+		searchSQL += wxT(") sd \n");
+	} // search definitions
+
+	// search comments
+	if (chkComments->GetValue())
+	{
+		if (nextMode)
+			searchSQL += wxT("UNION ALL \n");
+		nextMode = true;
+
+		wxString pd = wxT("(select pd.objoid, pd.classoid, pd.objsubid, c.relname")
+		              wxT("  from pg_description pd")
+		              wxT("  join pg_class c on pd.classoid = c.oid")
+		              wxT(" where pd.description ilike ") + txtPatternStr + wxT(" UNION ")
+		              wxT("select psd.objoid, psd.classoid, NULL as objsubid, c.relname")
+		              wxT("  from pg_shdescription psd")
+		              wxT("  join pg_class c on psd.classoid = c.oid")
+		              wxT(" where psd.description ilike ") + txtPatternStr + wxT(") ");
+
+		searchSQL += wxT("SELECT * FROM (  ");
+		if(currentdb->BackendMinimumVersion(8, 4)) // Common Table Expressions are available
+		{
+			searchSQL += wxT("with pd as ") + pd;
+			pd = wxT("pd ");
+		}
+		else // use pd as a subquery
+			pd += wxT(" pd ");
+
+		searchSQL += wxT("SELECT CASE")
+		             wxT("	WHEN c.relkind = 'r' THEN 'Tables'")
+		             wxT("	WHEN c.relkind = 'S' THEN 'Sequences'")
+		             wxT("	WHEN c.relkind = 'v' THEN 'Views'")
+		             wxT("	ELSE 'should not happen'")
+		             wxT("	END AS type, c.relname AS objectname,")
+		             wxT("	':Schemas/' || n.nspname || '/' ||")
+		             wxT("	CASE")
+		             wxT("	WHEN c.relkind = 'r' THEN ':Tables'")
+		             wxT("	WHEN c.relkind = 'S' THEN ':Sequences'")
+		             wxT("	WHEN c.relkind = 'v' THEN ':Views'")
+		             wxT("	ELSE 'should not happen'")
+		             wxT("	END || '/' || c.relname AS path, n.nspname")
+		             wxT("	FROM ") + pd +
+		             wxT("	JOIN pg_class c on pd.relname = 'pg_class' and pd.objoid = c.oid")
+		             wxT("	LEFT JOIN pg_namespace n ON n.oid = c.relnamespace")
+		             wxT("	WHERE c.relkind in ('r','S','v')")
+		             wxT("	UNION")
+		             wxT("	SELECT 'Indexes', cls.relname, ':Schemas/' || n.nspname || '/:Tables/' || tab.relname || '/:Indexes/' || cls.relname, n.nspname")
+		             wxT("	FROM ") + pd +
+		             wxT("	JOIN pg_class cls ON pd.relname = 'pg_class' and pd.objoid = cls.oid")
+		             wxT("	JOIN pg_index idx ON cls.oid=indexrelid")
+		             wxT("	JOIN pg_class tab ON tab.oid=indrelid")
+		             wxT("	JOIN pg_namespace n ON n.oid=tab.relnamespace")
+		             wxT("	LEFT JOIN pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')")
+		             wxT("	LEFT OUTER JOIN pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)")
+		             wxT("	LEFT OUTER JOIN pg_description des ON des.objoid=cls.oid")
+		             wxT("	LEFT OUTER JOIN pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)")
+		             wxT("	WHERE contype IS NULL")
+		             wxT("	UNION")
+		             wxT("  select case when p_t.typname = 'trigger' THEN 'Trigger Functions' ELSE 'Functions' end as type,")
+		             wxT("       p_.proname AS objectname,")
+		             wxT("       ':Schemas/' || n.nspname || '/' ||")
+		             wxT("         case when p_t.typname = 'trigger' then ':Trigger Functions/' else ':Functions/' end || p_.proname AS path, n.nspname")
+		             wxT("  from ") + pd +
+		             wxT("  join pg_proc p_  on pd.relname = 'pg_proc' and pd.objoid = p_.oid and p_.proisagg = false")
+		             wxT("	left join pg_type p_t on p_.prorettype = p_t.oid")
+		             wxT("	left join pg_namespace n on p_.pronamespace = n.oid")
+		             wxT("	union")
+		             wxT("	select 'Schemas', n_.nspname, ':Schemas/' || n_.nspname, n_.nspname")
+		             wxT("	  from ") + pd +
+		             wxT("  join pg_namespace n_  on pd.relname = 'pg_namespace' and pd.objoid = n_.oid")
+		             wxT("	union")
+		             wxT("  select 'Columns', a.attname,")
+		             wxT("	':Schemas/' || n.nspname || '/' ||")
+		             wxT("	case")
+		             wxT("	when t.relkind = 'r' then ':Tables'")
+		             wxT("	when t.relkind = 'S' then ':Sequences'")
+		             wxT("	when t.relkind = 'v' then ':Views'")
+		             wxT("	else 'should not happen'")
+		             wxT("	end || '/' || t.relname || '/:Columns/' || a.attname AS path, n.nspname")
+		             wxT("	from ") + pd +
+		             wxT("	join pg_class t on pd.relname = 'pg_class' and pd.objoid = t.oid and t.relkind in ('r','v')")
+		             wxT("  join pg_attribute a on a.attrelid = t.oid and pd.objsubid = a.attnum")
+		             wxT("	left join pg_namespace n on t.relnamespace = n.oid where a.attnum > 0")
+		             wxT("	union")
+		             wxT("	select 'Constraints',")
+		             wxT("	  case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end,")
+		             wxT("	  ':Schemas/' || n.nspname||'/:Tables/'||t.relname||'/:Constraints/'")
+		             wxT("	    ||case when tf.relname is null then c.conname else c.conname || ' -> ' || tf.relname end, n.nspname")
+		             wxT("  from ") + pd +
+		             wxT("  join pg_constraint c on pd.relname = 'pg_constraint' and pd.objoid = c.oid")
+		             wxT("	left join pg_class t on c.conrelid = t.oid")
+		             wxT("	left join pg_class tf on c.confrelid = tf.oid")
+		             wxT("	left join pg_namespace n on t.relnamespace = n.oid")
+		             wxT("	union")
+		             wxT("  select 'Rules', r.rulename, ':Schemas/' || n.nspname||case when t.relkind = 'v' then '/:Views/' else '/:Tables/' end||t.relname||'/:Rules/'|| r.rulename, n.nspname")
+		             wxT("	from ") + pd +
+		             wxT("	join pg_rewrite r on pd.relname = 'pg_rewrite' and pd.objoid = r.oid")
+		             wxT("	left join pg_class t on r.ev_class = t.oid")
+		             wxT("	left join pg_namespace n on t.relnamespace = n.oid")
+		             wxT("	union")
+		             wxT("	select 'Triggers', tr.tgname, ':Schemas/' || n.nspname||case when t.relkind = 'v' then '/:Views/' else '/:Tables/' end||t.relname || '/:Triggers/' || tr.tgname, n.nspname")
+		             wxT("	from ") + pd +
+		             wxT("	join pg_trigger tr on pd.relname = 'pg_trigger' and pd.objoid = tr.oid")
+		             wxT("	left join pg_class t on tr.tgrelid = t.oid")
+		             wxT("	left join pg_namespace n on t.relnamespace = n.oid WHERE ");
+		if(currentdb->BackendMinimumVersion(9, 0))
+			searchSQL += wxT(" tr.tgisinternal = false ");
+		else
+			searchSQL += wxT(" tr.tgisconstraint = false ");
+		searchSQL += wxT("	union")
+		             wxT("	SELECT 'Types', t.typname, ':Schemas/' || n.nspname || '/:Types' || t.typname, n.nspname")
+		             wxT("	FROM ") + pd +
+		             wxT("	JOIN pg_type t on pd.relname = 'pg_type' and pd.objoid = t.oid")
+		             wxT("	LEFT OUTER JOIN pg_type e ON e.oid=t.typelem")
+		             wxT("	LEFT OUTER JOIN pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c'")
+		             wxT("	LEFT OUTER JOIN pg_namespace n on t.typnamespace = n.oid")
+		             wxT("	WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\\\_%'")
+		             wxT("	union")
+		             wxT("	SELECT 'Conversions', co.conname, ':Schemas/' || n.nspname || '/:Conversions/' || co.conname, n.nspname")
+		             wxT("	FROM ") + pd +
+		             wxT("	JOIN pg_conversion co on pd.relname = 'pg_conversion' and pd.objoid = co.oid")
+		             wxT("	JOIN pg_namespace n ON n.oid=co.connamespace")
+		             wxT("	LEFT OUTER JOIN pg_description des ON des.objoid=co.oid AND des.objsubid=0")
+		             wxT("	union")
+		             wxT("	SELECT 'Casts', format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod), ':Casts/' || format_type(st.oid,NULL) ||'->'|| format_type(tt.oid,tt.typtypmod), NULL as nspname")
+		             wxT("	FROM ") + pd +
+		             wxT("	JOIN pg_cast ca on pd.relname = 'pg_cast' and pd.objoid = ca.oid")
+		             wxT("	JOIN pg_type st ON st.oid=castsource")
+		             wxT("	JOIN pg_type tt ON tt.oid=casttarget")
+		             wxT("	union")
+		             wxT("	SELECT 'Languages', lanname, ':Languages/' || lanname, NULL as nspname")
+		             wxT("	FROM ") + pd +
+		             wxT("	JOIN pg_language lan on pd.relname = 'pg_language' and pd.objoid = lan.oid")
+		             wxT("	WHERE lanispl IS TRUE")
+		             wxT("	union")
+		             wxT("	SELECT 'FTS Configurations', cfg.cfgname, ':Schemas/' || n.nspname || '/:FTS Configurations/' || cfg.cfgname, n.nspname")
+		             wxT("	FROM ") + pd +
+		             wxT("	JOIN pg_ts_config cfg on pd.relname = 'pg_ts_config' and pd.objoid = cfg.oid")
+		             wxT("	left join pg_namespace n on cfg.cfgnamespace = n.oid")
+		             wxT("	union")
+		             wxT("	SELECT 'FTS Dictionaries', dict.dictname, ':Schemas/' || ns.nspname || '/:FTS Dictionaries/' || dict.dictname, ns.nspname")
+		             wxT("	FROM ") + pd +
+		             wxT("	JOIN pg_ts_dict dict on pd.relname = 'pg_ts_dict' and pd.objoid = dict.oid")
+		             wxT("	left join pg_namespace ns on dict.dictnamespace = ns.oid")
+		             wxT("	union")
+		             wxT("	SELECT 'FTS Parsers', prs.prsname, ':Schemas/' || ns.nspname || '/:FTS Parsers/' || prs.prsname, ns.nspname")
+		             wxT("	FROM ") + pd +
+		             wxT("	JOIN pg_ts_parser prs on pd.relname = 'pg_ts_parser' and pd.objoid = prs.oid")
+		             wxT("	left join pg_namespace ns on prs.prsnamespace = ns.oid")
+		             wxT("	union")
+		             wxT("	SELECT 'FTS Templates', tmpl.tmplname, ':Schemas/' || ns.nspname || '/:FTS Templates/' || tmpl.tmplname, ns.nspname")
+		             wxT("	FROM ") + pd +
+		             wxT("	JOIN pg_ts_template tmpl on pd.relname = 'pg_ts_template' and pd.objoid = tmpl.oid")
+		             wxT("	left join pg_namespace ns on tmpl.tmplnamespace = ns.oid")
+		             wxT("	union")
+		             wxT("	select 'Domains', t.typname, ':Schemas/' || n.nspname || '/:Domains/' || t.typname, n.nspname")
+		             wxT("  FROM ") + pd +
+		             wxT("  JOIN pg_type t on pd.relname = 'pg_type' and pd.objoid = t.oid")
+		             wxT("	inner join pg_namespace n on t.typnamespace = n.oid")
+		             wxT("	where t.typtype = 'd'")
+		             wxT("	union")
+		             wxT("	select 'Aggregates', pr.proname, ':Schemas/' || ns.nspname || '/:Aggregates/' || pr.proname, ns.nspname")
+		             wxT("	from ") + pd +
+		             wxT("	join pg_proc pr on pd.relname = 'pg_proc' and pd.objoid = pr.oid")
+		             wxT("	JOIN pg_catalog.pg_aggregate ag on ag.aggfnoid = pr.oid")
+		             wxT("	left join pg_namespace ns on  pr.pronamespace = ns.oid")
+		             wxT("	union")
+		             wxT("	select case when r_.rolcanlogin = true then 'Login Roles' else 'Group Roles' end, r_.rolname,")
+		             wxT("	       case when r_.rolcanlogin = true then ':Login Roles' else ':Group Roles' end || '/' || rolname, NULL as nspname")
+		             wxT("	from ") + pd +
+		             wxT("	join pg_roles r_ on pd.relname = 'pg_authid' and pd.objoid = r_.oid")
+		             wxT("	union")
+		             wxT("	select 'Tablespaces', ts_.spcname, ':Tablespaces/'||ts_.spcname, NULL as nspname")
+		             wxT("	  from ") + pd +
+		             wxT("	  JOIN pg_tablespace ts_ on pd.relname = 'pg_tablespace' and pd.objoid = ts_.oid")
+		             wxT("	union")
+		             wxT("	SELECT 'Operators', op.oprname, ':Schemas/' || ns.nspname || '/:Operators/' || op.oprname, ns.nspname")
+		             wxT("	FROM ") + pd +
+		             wxT("	JOIN pg_operator op ON pd.relname = 'pg_operator' and pd.objoid = op.oid")
+		             wxT("	left join pg_namespace ns on op.oprnamespace = ns.oid")
+		             wxT("	union")
+		             wxT("	SELECT 'Operator Classes', op.opcname, ':Schemas/' || ns.nspname || '/:Operator Classes/' || op.opcname, ns.nspname")
+		             wxT("	FROM ") + pd +
+		             wxT("	JOIN pg_opclass op ON pd.relname = 'pg_opclass' and pd.objoid = op.oid")
+		             wxT("	left join pg_namespace ns on op.opcnamespace = ns.oid")
+		             wxT("	union")
+		             wxT("	SELECT 'Operator Families', opf.opfname, ':Schemas/' || ns.nspname || '/:Operator Families/' || opf.opfname, ns.nspname")
+		             wxT("	FROM ") + pd +
+		             wxT("	JOIN pg_opfamily opf ON pd.relname = 'pg_opfamily' and pd.objoid = opf.oid")
+		             wxT("	left join pg_namespace ns on opf.opfnamespace = ns.oid");
+
+		if(currentdb->BackendMinimumVersion(8, 4) && currentdb->GetConnection()->IsSuperuser())
+		{
+			searchSQL += wxT("	union")
+		                 wxT("	select 'Foreign Data Wrappers', fdw.fdwname, ':Foreign Data Wrappers/' || fdw.fdwname, NULL as nspname ")
+		                 wxT("	  from ") + pd +
+		                 wxT("	  JOIN pg_foreign_data_wrapper fdw ON pd.relname = 'pg_foreign_data_wrapper' and pd.objoid = fdw.oid")
+		                 wxT("	union ")
+		                 wxT("	select 'Foreign Server', sr.srvname, ':Foreign Data Wrappers/' || fdw.fdwname || '/:Foreign Servers/' || sr.srvname, NULL as nspname")
+		                 wxT("	  from ") + pd +
+		                 wxT("	  JOIN pg_foreign_server sr ON pd.relname = 'pg_foreign_server' and pd.objoid = sr.oid")
+		                 wxT("	inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid ");
+		}
+
+		if(currentdb->BackendMinimumVersion(9, 1))
+		{
+			searchSQL += wxT("	union")
+		                 wxT("	select 'Foreign Tables', c.relname, ':Schemas/' || ns.nspname || '/:Foreign Tables/' || c.relname, ns.nspname")
+		                 wxT("  from ") + pd +
+		                 wxT("  JOIN pg_class c ON pd.relname = 'pg_class' and pd.objoid = c.oid")
+		                 wxT("  join pg_foreign_table ft on ft.ftrelid = c.oid")
+		                 wxT("	inner join pg_namespace ns on c.relnamespace = ns.oid")
+		                 wxT("  union")
+		                 wxT("	select 'Extensions', x.extname, ':Extensions/' || x.extname, NULL AS nspname")
+		                 wxT("	FROM ") + pd +
+		                 wxT("	JOIN pg_extension x ON pd.relname = 'pg_extension' and pd.objoid = x.oid")
+		                 wxT("	JOIN pg_namespace n on x.extnamespace=n.oid")
+		                 wxT("	join pg_available_extensions() e(name, default_version, comment) ON x.extname=e.name")
+		                 wxT("	union")
+		                 wxT("	SELECT 'Collations', c.collname, ':Schemas/' || n.nspname || '/:Collations/' || c.collname, n.nspname")
+		                 wxT("	FROM ") + pd +
+		                 wxT("	JOIN pg_collation c ON pd.relname = 'pg_collation' and pd.objoid = c.oid")
+		                 wxT("	JOIN pg_namespace n ON n.oid=c.collnamespace");
+		}
+		searchSQL += wxT(") sc \n");
+	} // search comments
+
+	searchSQL += wxT(") ii \n");
+
+	bool nextPredicate = false;
+	if (cbType->GetValue() != _("All types"))
+	{
+		searchSQL += (nextPredicate) ? wxT("AND ") : wxT("WHERE ");
+		nextPredicate = true;
+		searchSQL += wxT("ii.type = ") + currentdb->GetConnection()->qtDbString(aMap[cbType->GetValue()]) + wxT(" ");
 	}
 
-	searchSQL += wxT(") i ")
-	             wxT("where lower(i.objectname) like '%") + txtPattern->GetValue().Lower() + wxT("%' ");
-	if(cbType->GetValue() != _("All types"))
+	if (cbSchema->GetSelection() == cbSchemaIdxCurrent && !currentSchema.IsEmpty())
+	{
+		searchSQL += (nextPredicate) ? wxT("AND ") : wxT("WHERE ");
+		nextPredicate = true;
+		searchSQL += wxT("ii.nspname = ") + currentdb->GetConnection()->qtDbString(currentSchema) + wxT(" ");
+	}
+	else if (cbSchema->GetValue() == _("My schemas"))
+	{
+		searchSQL += (nextPredicate) ? wxT("AND ") : wxT("WHERE ");
+		nextPredicate = true;
+		searchSQL += wxT("ii.nspname IN (SELECT n.nspname FROM pg_namespace n WHERE n.nspowner = (SELECT u.usesysid FROM pg_user u WHERE u.usename = ")
+		           + currentdb->GetConnection()->qtDbString(currentdb->GetConnection()->GetUser()) + wxT(")) ");
+	}
+	else if (cbSchema->GetValue() != _("All schemas"))
 	{
-		searchSQL += wxT("AND i.type = '") + aMap[cbType->GetValue()] + wxT("' ");
+		searchSQL += (nextPredicate) ? wxT("AND ") : wxT("WHERE ");
+		nextPredicate = true;
+		searchSQL += wxT("ii.nspname = ") + currentdb->GetConnection()->qtDbString(cbSchema->GetValue()) + wxT(" ");
 	}
+
 	searchSQL += wxT("ORDER BY 1, 2");
 
 	pgSet *set = currentdb->GetConnection()->ExecuteSet(searchSQL);
@@ -460,6 +803,14 @@ void dlgSearchObject::OnSearch(wxCommandEvent &ev)
 		lcResults->SetColumnWidth(1, wxLIST_AUTOSIZE);
 		lcResults->SetColumnWidth(2, wxLIST_AUTOSIZE);
 	}
+
+	if (statusBar)
+		if (i > 0)
+			statusBar->SetStatusText(wxString::Format(wxPLURAL("Found %d item", "Found %d items",i), i));
+		else
+			statusBar->SetStatusText(wxString::Format(wxT("Nothing was found"), i));
+
+	ToggleBtnSearch(true);
 }
 
 wxString dlgSearchObject::TranslatePath(wxString &path)
@@ -495,15 +846,12 @@ searchObjectFactory::searchObjectFactory(menuFactoryList *list, wxMenu *mnu, ctl
 
 wxWindow *searchObjectFactory::StartDialog(frmMain *form, pgObject *obj)
 {
-	dlgSearchObject *so = new dlgSearchObject(form, (pgDatabase *) obj);
+	dlgSearchObject *so = new dlgSearchObject(form, obj->GetDatabase(), obj);
 	so->Show();
 	return 0;
 }
 
 bool searchObjectFactory::CheckEnable(pgObject *obj)
 {
-	if (obj && obj->IsCreatedBy(databaseFactory))
-		return ((pgDatabase *)obj)->GetConnected();
-
-	return false;
+	return obj && obj->GetDatabase() && obj->GetDatabase()->GetConnected();
 }
diff --git a/pgadmin/include/dlg/dlgSearchObject.h b/pgadmin/include/dlg/dlgSearchObject.h
index 92a4a7c..19d054a 100644
--- a/pgadmin/include/dlg/dlgSearchObject.h
+++ b/pgadmin/include/dlg/dlgSearchObject.h
@@ -16,12 +16,13 @@
 #include "ctl/ctlListView.h"
 #include "schema/pgDatabase.h"
 #include "utils/sysSettings.h"
+#include "schema/pgSchema.h"
 
 // Class declarations
 class dlgSearchObject : public pgDialog
 {
 public:
-	dlgSearchObject(frmMain *p, pgDatabase *db);
+	dlgSearchObject(frmMain *p, pgDatabase *db, pgObject *obj);
 	~dlgSearchObject();
 
 private:
@@ -31,6 +32,7 @@ private:
 	void OnChange(wxCommandEvent &ev);
 	void OnSelSearchResult(wxListEvent &ev);
 	wxString TranslatePath(wxString &path);
+	void ToggleBtnSearch(bool enable);
 	WX_DECLARE_STRING_HASH_MAP(wxString, LngMapping);
 	LngMapping aMap;
 
@@ -38,6 +40,8 @@ private:
 	frmMain *parent;
 	wxString header;
 	wxArrayString sectionName, sectionData, sectionTableHeader, sectionTableRows, sectionTableInfo, sectionSql;
+	wxString currentSchema;
+	int cbSchemaIdxCurrent;
 
 	DECLARE_EVENT_TABLE()
 };
diff --git a/pgadmin/ui/dlgSearchObject.xrc b/pgadmin/ui/dlgSearchObject.xrc
index 2597fac..6b63489 100644
--- a/pgadmin/ui/dlgSearchObject.xrc
+++ b/pgadmin/ui/dlgSearchObject.xrc
@@ -1,121 +1,214 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <resource>
-  <object class="wxDialog" name="dlgSearchObject">
-    <title>Search Objects</title>
-    <size>353,240d</size>
-    <style>wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</style>
-    <object class="wxFlexGridSizer">
-      <cols>1</cols>
-      <growablerows>0</growablerows>
-      <growablecols>0</growablecols>
-      <object class="sizeritem">
-        <object class="wxFlexGridSizer">
-          <cols>2</cols>
-          <vgap>3</vgap>
-          <hgap>3</hgap>
-          <growablecols>1</growablecols>
-          <growablerows>2</growablerows>
-          <object class="sizeritem">
-            <object class="wxStaticText" name="stPattern">
-              <label>Pattern</label>
-            </object>
-            <flag>wxALIGN_CENTRE_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
-            <border>4</border>
-          </object>
-          <object class="sizeritem">
-            <object class="wxFlexGridSizer">
-              <cols>2</cols>
-              <vgap>5</vgap>
-              <hgap>5</hgap>
-              <growablecols>0</growablecols>
-              <growablerows>0</growablerows>
-              <object class="sizeritem">
-                <object class="wxTextCtrl" name="txtPattern">
-                  <tooltip>Enter part of the object's name you're looking for</tooltip>
-                </object>
-                <flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT</flag>
-                <border>4</border>
-              </object>
-              <object class="sizeritem">
-                <object class="wxButton" name="btnSearch">
-                  <label>Find</label>
-                  <default>1</default>
-                  <style></style>
-                </object>
-                <flag>wxALIGN_CENTRE_VERTICAL|wxTOP</flag>
-                <border>4</border>
-              </object>
-              <flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
-              <border>4</border>
-            </object>
-            <flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
-            <border>4</border>
-          </object>
-          <object class="sizeritem">
-            <object class="wxStaticText" name="stType">
-              <label>Type</label>
-            </object>
-            <flag>wxALIGN_CENTRE_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
-            <border>4</border>
-          </object>
-          <object class="sizeritem">
-            <object class="wxComboBox" name="cbType">
-              <content/>
-              <style>wxCB_READONLY|wxCB_DROPDOWN</style>
-            </object>
-            <flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
-            <border>4</border>
-          </object>
-          <object class="sizeritem">
-            <object class="wxStaticText" name="stResults">
-              <label>Result</label>
-            </object>
-            <flag>wxALIGN_CENTRE_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
-            <border>4</border>
-          </object>
-          <object class="sizeritem">
-            <object class="wxListCtrl" name="lcResults">
-			  <size>340,150d</size>
-              <style>wxLC_REPORT</style>
-            </object>
-            <flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT|wxBOTTOM</flag>
-            <border>4</border>
-          </object>
-        </object>
-        <flag>wxEXPAND|wxALIGN_CENTRE|wxALL</flag>
-        <border>3</border>
-      </object>
-      <object class="sizeritem">
-        <object class="wxFlexGridSizer">
-          <cols>3</cols>
-          <growablecols>1</growablecols>
-          <object class="sizeritem">
-            <object class="wxButton" name="wxID_HELP">
-              <label>Help</label>
-            </object>
-            <flag>wxEXPAND|wxALL</flag>
-            <border>3</border>
-          </object>
-          <object class="spacer">
-            <size>0,0d</size>
-          </object>
-          <object class="sizeritem">
-            <object class="wxButton" name="wxID_CANCEL">
-              <label>&amp;Close</label>
-            </object>
-            <flag>wxEXPAND|wxALL</flag>
-            <border>3</border>
-          </object>
-        </object>
-        <flag>wxEXPAND|wxTOP|wxLEFT|wxRIGHT</flag>
-      </object>
-      <object class="sizeritem">
-        <object class="wxStatusBar" name="unkStatusBar">
-          <style>wxST_SIZEGRIP</style>
-        </object>
-        <flag>wxEXPAND|wxALIGN_CENTRE</flag>
-        <border>3</border>
-      </object>
-    </object>
-  </object>
+	<object class="wxDialog" name="dlgSearchObject">
+		<title>Search Objects</title>
+		<size>353,240d</size>
+		<style>wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</style>
+		<object class="wxFlexGridSizer">
+			<rows>0</rows>
+			<cols>1</cols>
+			<vgap>0</vgap>
+			<hgap>0</hgap>
+			<growablerows>0</growablerows>
+			<growablecols>0</growablecols>
+			<object class="sizeritem">
+				<option>1</option>
+				<flag>wxALIGN_CENTER|wxALL|wxEXPAND</flag>
+				<border>3</border>
+				<object class="wxGridBagSizer">
+					<vgap>3</vgap>
+					<hgap>3</hgap>
+					<growablecols>1</growablecols>
+					<growablerows>3</growablerows>
+					<object class="sizeritem">
+						<cellpos>0,0</cellpos>
+						<cellspan>1,1</cellspan>
+						<flag>wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP</flag>
+						<border>4</border>
+						<object class="wxStaticText" name="stPattern">
+							<label>Pattern</label>
+						</object>
+					</object>
+					<object class="sizeritem">
+						<cellpos>0,1</cellpos>
+						<cellspan>1,1</cellspan>
+						<flag>wxEXPAND</flag>
+						<border>0</border>
+						<object class="wxFlexGridSizer">
+							<rows>0</rows>
+							<cols>2</cols>
+							<vgap>5</vgap>
+							<hgap>5</hgap>
+							<growablecols>0</growablecols>
+							<growablerows>0</growablerows>
+							<object class="sizeritem">
+								<option>0</option>
+								<flag>wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxTOP</flag>
+								<border>3</border>
+								<object class="wxTextCtrl" name="txtPattern">
+									<tooltip>Enter part of the object&apos;s attribute you&apos;re looking for</tooltip>
+								</object>
+							</object>
+							<object class="sizeritem">
+								<option>0</option>
+								<flag>wxALIGN_CENTER_VERTICAL|wxTOP</flag>
+								<border>3</border>
+								<object class="wxButton" name="btnSearch">
+									<label>Find</label>
+									<default>1</default>
+								</object>
+							</object>
+						</object>
+					</object>
+					<object class="sizeritem">
+						<cellpos>1,0</cellpos>
+						<cellspan>1,1</cellspan>
+						<flag>wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP</flag>
+						<border>4</border>
+						<object class="wxStaticText" name="stType">
+							<label>Type</label>
+						</object>
+					</object>
+					<object class="sizeritem">
+						<cellpos>1,1</cellpos>
+						<cellspan>1,1</cellspan>
+						<flag>wxBOTTOM|wxEXPAND|wxLEFT|wxTOP</flag>
+						<border>3</border>
+						<object class="wxComboBox" name="cbType">
+							<style>wxCB_READONLY|wxCB_DROPDOWN</style>
+							<size>270,-1d</size>
+							<content/>
+						</object>
+					</object>
+					<object class="sizeritem">
+						<cellpos>2,0</cellpos>
+						<cellspan>1,1</cellspan>
+						<flag>wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP</flag>
+						<border>4</border>
+						<object class="wxStaticText" name="stSchema">
+							<label>Schema</label>
+						</object>
+					</object>
+					<object class="sizeritem">
+						<cellpos>2,1</cellpos>
+						<cellspan>1,1</cellspan>
+						<flag>wxBOTTOM|wxEXPAND|wxLEFT|wxTOP</flag>
+						<border>3</border>
+						<object class="wxComboBox" name="cbSchema">
+							<style>wxCB_DROPDOWN|wxCB_READONLY</style>
+							<size>270,-1d</size>
+							<content/>
+						</object>
+					</object>
+					<object class="sizeritem">
+						<cellpos>3,0</cellpos>
+						<cellspan>1,1</cellspan>
+						<flag>wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP</flag>
+						<border>4</border>
+						<object class="wxStaticText" name="stResults">
+							<label>Result</label>
+						</object>
+					</object>
+					<object class="sizeritem">
+						<cellpos>3,1</cellpos>
+						<cellspan>1,2</cellspan>
+						<flag>wxEXPAND</flag>
+						<border>5</border>
+						<object class="wxFlexGridSizer">
+							<rows>0</rows>
+							<cols>1</cols>
+							<vgap>0</vgap>
+							<hgap>0</hgap>
+							<growablecols>0</growablecols>
+							<growablerows>0</growablerows>
+							<object class="sizeritem">
+								<option>0</option>
+								<flag>wxALL|wxEXPAND</flag>
+								<border>3</border>
+								<object class="wxListCtrl" name="lcResults">
+									<size>340,150d</size>
+									<style>wxLC_REPORT</style>
+								</object>
+							</object>
+						</object>
+					</object>
+					<object class="sizeritem">
+						<cellpos>0,2</cellpos>
+						<cellspan>3,1</cellspan>
+						<flag>wxALIGN_CENTER_HORIZONTAL</flag>
+						<border>5</border>
+						<object class="wxBoxSizer">
+							<orient>wxVERTICAL</orient>
+							<object class="sizeritem">
+								<option>0</option>
+								<flag>wxLEFT|wxTOP</flag>
+								<border>3</border>
+								<object class="wxCheckBox" name="chkNames">
+									<label>names</label>
+									<checked>1</checked>
+								</object>
+							</object>
+							<object class="sizeritem">
+								<option>0</option>
+								<flag>wxLEFT|wxTOP</flag>
+								<border>3</border>
+								<object class="wxCheckBox" name="chkDefinitions">
+									<label>definitions</label>
+									<checked>0</checked>
+								</object>
+							</object>
+							<object class="sizeritem">
+								<option>0</option>
+								<flag>wxLEFT|wxTOP</flag>
+								<border>3</border>
+								<object class="wxCheckBox" name="chkComments">
+									<label>comments</label>
+									<checked>0</checked>
+								</object>
+							</object>
+						</object>
+					</object>
+				</object>
+			</object>
+			<object class="sizeritem">
+				<option>1</option>
+				<flag>wxEXPAND</flag>
+				<border>5</border>
+				<object class="wxFlexGridSizer">
+					<rows>0</rows>
+					<cols>3</cols>
+					<vgap>0</vgap>
+					<hgap>0</hgap>
+					<growablecols>1</growablecols>
+					<growablerows></growablerows>
+					<object class="sizeritem">
+						<option>0</option>
+						<flag>wxEXPAND|wxALL</flag>
+						<border>3</border>
+						<object class="wxButton" name="wxID_HELP">
+							<label>Help</label>
+						</object>
+					</object>
+					<object class="spacer">
+						<size>0,0d</size>
+					</object>
+					<object class="sizeritem">
+						<option>0</option>
+						<flag>wxEXPAND|wxALL</flag>
+						<border>3</border>
+						<object class="wxButton" name="wxID_CANCEL">
+							<label>&amp;Close</label>
+						</object>
+					</object>
+				</object>
+			</object>
+			<object class="sizeritem">
+				<object class="wxStatusBar" name="unkStatusBar">
+					<style>wxST_SIZEGRIP</style>
+				</object>
+				<flag>wxEXPAND|wxALIGN_CENTRE</flag>
+				<border>3</border>
+			</object>
+		</object>
+	</object>
 </resource>
diff --git a/pgadmin/ui/xrcDialogs.cpp b/pgadmin/ui/xrcDialogs.cpp
index 9edcbc7..a511c5c 100644
--- a/pgadmin/ui/xrcDialogs.cpp
+++ b/pgadmin/ui/xrcDialogs.cpp
@@ -20217,7 +20217,7 @@ static unsigned char xml_res_file_50[] = {
 99,116,62,10,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,47,
 111,98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10};
 
-static size_t xml_res_size_51 = 4470;
+static size_t xml_res_size_51 = 7618;
 static unsigned char xml_res_file_51[] = {
 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,
 110,99,111,100,105,110,103,61,34,73,83,79,45,56,56,53,57,45,49,34,63,62,
@@ -20231,200 +20231,345 @@ static unsigned char xml_res_file_51[] = {
 71,95,83,84,89,76,69,124,119,120,82,69,83,73,90,69,95,66,79,82,68,69,82,
 60,47,115,116,121,108,101,62,10,32,32,32,32,60,111,98,106,101,99,116,32,
 99,108,97,115,115,61,34,119,120,70,108,101,120,71,114,105,100,83,105,122,
-101,114,34,62,10,32,32,32,32,32,32,60,99,111,108,115,62,49,60,47,99,111,
-108,115,62,10,32,32,32,32,32,32,60,103,114,111,119,97,98,108,101,114,111,
-119,115,62,48,60,47,103,114,111,119,97,98,108,101,114,111,119,115,62,10,
-32,32,32,32,32,32,60,103,114,111,119,97,98,108,101,99,111,108,115,62,48,
-60,47,103,114,111,119,97,98,108,101,99,111,108,115,62,10,32,32,32,32,32,
-32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,
-114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,
-99,116,32,99,108,97,115,115,61,34,119,120,70,108,101,120,71,114,105,100,
-83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,99,111,108,
-115,62,50,60,47,99,111,108,115,62,10,32,32,32,32,32,32,32,32,32,32,60,118,
-103,97,112,62,51,60,47,118,103,97,112,62,10,32,32,32,32,32,32,32,32,32,
-32,60,104,103,97,112,62,51,60,47,104,103,97,112,62,10,32,32,32,32,32,32,
-32,32,32,32,60,103,114,111,119,97,98,108,101,99,111,108,115,62,49,60,47,
-103,114,111,119,97,98,108,101,99,111,108,115,62,10,32,32,32,32,32,32,32,
-32,32,32,60,103,114,111,119,97,98,108,101,114,111,119,115,62,50,60,47,103,
-114,111,119,97,98,108,101,114,111,119,115,62,10,32,32,32,32,32,32,32,32,
-32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,
-114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,
-98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,
-99,84,101,120,116,34,32,110,97,109,101,61,34,115,116,80,97,116,116,101,
-114,110,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,
-101,108,62,80,97,116,116,101,114,110,60,47,108,97,98,101,108,62,10,32,32,
-32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,
-32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,
-95,67,69,78,84,82,69,95,86,69,82,84,73,67,65,76,124,119,120,84,79,80,124,
-119,120,76,69,70,84,124,119,120,82,73,71,72,84,60,47,102,108,97,103,62,
-10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,52,
-60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,
-111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,
-101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,
-34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,
-99,108,97,115,115,61,34,119,120,70,108,101,120,71,114,105,100,83,105,122,
-101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,108,
-115,62,50,60,47,99,111,108,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,60,118,103,97,112,62,53,60,47,118,103,97,112,62,10,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,60,104,103,97,112,62,53,60,47,104,103,97,112,
-62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,103,114,111,119,97,98,
-108,101,99,111,108,115,62,48,60,47,103,114,111,119,97,98,108,101,99,111,
-108,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,103,114,111,
-119,97,98,108,101,114,111,119,115,62,48,60,47,103,114,111,119,97,98,108,
-101,114,111,119,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,
-111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,
-116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,
-111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,
-67,116,114,108,34,32,110,97,109,101,61,34,116,120,116,80,97,116,116,101,
-114,110,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-60,116,111,111,108,116,105,112,62,69,110,116,101,114,32,112,97,114,116,
-32,111,102,32,116,104,101,32,111,98,106,101,99,116,39,115,32,110,97,109,
-101,32,121,111,117,39,114,101,32,108,111,111,107,105,110,103,32,102,111,
-114,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,
-78,68,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,
-67,65,76,124,119,120,84,79,80,124,119,120,82,73,71,72,84,60,47,102,108,
-97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,
-114,100,101,114,62,52,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
-115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,
-32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
-115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,98,
-116,110,83,101,97,114,99,104,34,62,10,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,32,60,108,97,98,101,108,62,70,105,110,100,60,47,108,97,
-98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-60,100,101,102,97,117,108,116,62,49,60,47,100,101,102,97,117,108,116,62,
-10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,
-108,101,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,
-111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,
-86,69,82,84,73,67,65,76,124,119,120,84,79,80,60,47,102,108,97,103,62,10,
-32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,
-62,52,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,124,119,120,
-65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,
-120,84,79,80,124,119,120,76,69,70,84,124,119,120,82,73,71,72,84,60,47,102,
-108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,
+101,114,34,62,10,32,32,32,32,32,32,60,114,111,119,115,62,48,60,47,114,111,
+119,115,62,10,32,32,32,32,32,32,60,99,111,108,115,62,49,60,47,99,111,108,
+115,62,10,32,32,32,32,32,32,60,118,103,97,112,62,48,60,47,118,103,97,112,
+62,10,32,32,32,32,32,32,60,104,103,97,112,62,48,60,47,104,103,97,112,62,
+10,32,32,32,32,32,32,60,103,114,111,119,97,98,108,101,114,111,119,115,62,
+48,60,47,103,114,111,119,97,98,108,101,114,111,119,115,62,10,32,32,32,32,
+32,32,60,103,114,111,119,97,98,108,101,99,111,108,115,62,48,60,47,103,114,
+111,119,97,98,108,101,99,111,108,115,62,10,32,32,32,32,32,32,60,111,98,
+106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,
+109,34,62,10,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,49,60,
+47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,60,102,108,97,
+103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,124,119,120,65,76,76,
+124,119,120,69,88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,
+32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111,114,100,101,114,62,
+10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,
+61,34,119,120,71,114,105,100,66,97,103,83,105,122,101,114,34,62,10,32,32,
+32,32,32,32,32,32,32,32,60,118,103,97,112,62,51,60,47,118,103,97,112,62,
+10,32,32,32,32,32,32,32,32,32,32,60,104,103,97,112,62,51,60,47,104,103,
+97,112,62,10,32,32,32,32,32,32,32,32,32,32,60,103,114,111,119,97,98,108,
+101,99,111,108,115,62,49,60,47,103,114,111,119,97,98,108,101,99,111,108,
+115,62,10,32,32,32,32,32,32,32,32,32,32,60,103,114,111,119,97,98,108,101,
+114,111,119,115,62,51,60,47,103,114,111,119,97,98,108,101,114,111,119,115,
+62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,
+97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,
+32,32,32,32,32,32,32,32,32,60,99,101,108,108,112,111,115,62,48,44,48,60,
+47,99,101,108,108,112,111,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,
+60,99,101,108,108,115,112,97,110,62,49,44,49,60,47,99,101,108,108,115,112,
+97,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,
+120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,
+119,120,76,69,70,84,124,119,120,82,73,71,72,84,124,119,120,84,79,80,60,
+47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,
 100,101,114,62,52,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,
-32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,
-32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,124,119,120,
-65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,
-120,84,79,80,124,119,120,76,69,70,84,124,119,120,82,73,71,72,84,60,47,102,
-108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,
-101,114,62,52,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,
-32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,
-111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,
-116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,
-101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,
-120,116,34,32,110,97,109,101,61,34,115,116,84,121,112,101,34,62,10,32,32,
-32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,84,121,112,
-101,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,
-47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,
-108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,82,69,95,86,69,82,84,
-73,67,65,76,124,119,120,84,79,80,124,119,120,76,69,70,84,124,119,120,82,
-73,71,72,84,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,
-32,60,98,111,114,100,101,114,62,52,60,47,98,111,114,100,101,114,62,10,32,
-32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,
-32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,
+32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,115,
+116,80,97,116,116,101,114,110,34,62,10,32,32,32,32,32,32,32,32,32,32,32,
+32,32,32,60,108,97,98,101,108,62,80,97,116,116,101,114,110,60,47,108,97,
+98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,
+99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,
+62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,
+97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,
+32,32,32,32,32,32,32,32,32,60,99,101,108,108,112,111,115,62,48,44,49,60,
+47,99,101,108,108,112,111,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,
+60,99,101,108,108,115,112,97,110,62,49,44,49,60,47,99,101,108,108,115,112,
+97,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,
+120,69,88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,
+32,32,32,32,60,98,111,114,100,101,114,62,48,60,47,98,111,114,100,101,114,
+62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,
+108,97,115,115,61,34,119,120,70,108,101,120,71,114,105,100,83,105,122,101,
+114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,114,111,119,115,
+62,48,60,47,114,111,119,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,
+32,60,99,111,108,115,62,50,60,47,99,111,108,115,62,10,32,32,32,32,32,32,
+32,32,32,32,32,32,32,32,60,118,103,97,112,62,53,60,47,118,103,97,112,62,
+10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,104,103,97,112,62,53,60,
+47,104,103,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,103,
+114,111,119,97,98,108,101,99,111,108,115,62,48,60,47,103,114,111,119,97,
+98,108,101,99,111,108,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,
+32,60,103,114,111,119,97,98,108,101,114,111,119,115,62,48,60,47,103,114,
+111,119,97,98,108,101,114,111,119,115,62,10,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,
 105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,
-32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,67,111,
-109,98,111,66,111,120,34,32,110,97,109,101,61,34,99,98,84,121,112,101,34,
-62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,110,116,101,110,
-116,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,
-101,62,119,120,67,66,95,82,69,65,68,79,78,76,89,124,119,120,67,66,95,68,
-82,79,80,68,79,87,78,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,
-32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,
-32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,124,119,120,
-65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,
-120,84,79,80,124,119,120,76,69,70,84,124,119,120,82,73,71,72,84,60,47,102,
-108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,
-101,114,62,52,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,
-32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,
-111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,
-116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,
-101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,105,99,84,101,
-120,116,34,32,110,97,109,101,61,34,115,116,82,101,115,117,108,116,115,34,
-62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,
-82,101,115,117,108,116,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,
-32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,
-32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,
-84,82,69,95,86,69,82,84,73,67,65,76,124,119,120,84,79,80,124,119,120,76,
-69,70,84,124,119,120,82,73,71,72,84,60,47,102,108,97,103,62,10,32,32,32,
-32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,52,60,47,98,111,
-114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,
+32,32,32,32,32,32,60,111,112,116,105,111,110,62,48,60,47,111,112,116,105,
+111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,
+97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,
+67,65,76,124,119,120,69,88,80,65,78,68,124,119,120,76,69,70,84,124,119,
+120,84,79,80,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111,114,100,101,
+114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,
+101,99,116,32,99,108,97,115,115,61,34,119,120,84,101,120,116,67,116,114,
+108,34,32,110,97,109,101,61,34,116,120,116,80,97,116,116,101,114,110,34,
+62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,116,111,
+111,108,116,105,112,62,69,110,116,101,114,32,112,97,114,116,32,111,102,
+32,116,104,101,32,111,98,106,101,99,116,39,115,32,97,116,116,114,105,98,
+117,116,101,32,121,111,117,39,114,101,32,108,111,111,107,105,110,103,32,
+102,111,114,60,47,116,111,111,108,116,105,112,62,10,32,32,32,32,32,32,32,
+32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,
+32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,
+32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,
+115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,
+32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,48,60,
+47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,
+32,32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,
+82,95,86,69,82,84,73,67,65,76,124,119,120,84,79,80,60,47,102,108,97,103,
+62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,
+101,114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,
+32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,98,116,110,
+83,101,97,114,99,104,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
+32,32,32,32,60,108,97,98,101,108,62,70,105,110,100,60,47,108,97,98,101,
+108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,100,
+101,102,97,117,108,116,62,49,60,47,100,101,102,97,117,108,116,62,10,32,
+32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,
+62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,
+116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,
+62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,
+32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,
+61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,
+32,32,32,32,32,60,99,101,108,108,112,111,115,62,49,44,48,60,47,99,101,108,
+108,112,111,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,99,101,108,
+108,115,112,97,110,62,49,44,49,60,47,99,101,108,108,115,112,97,110,62,10,
+32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,65,76,
+73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,119,120,76,
+69,70,84,124,119,120,82,73,71,72,84,124,119,120,84,79,80,60,47,102,108,
+97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,
+114,62,52,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,
+32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,
+116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,115,116,84,
+121,112,101,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,
+98,101,108,62,84,121,112,101,60,47,108,97,98,101,108,62,10,32,32,32,32,
+32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,
+32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,
+32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,
+114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,99,
+101,108,108,112,111,115,62,49,44,49,60,47,99,101,108,108,112,111,115,62,
+10,32,32,32,32,32,32,32,32,32,32,32,32,60,99,101,108,108,115,112,97,110,
+62,49,44,49,60,47,99,101,108,108,115,112,97,110,62,10,32,32,32,32,32,32,
+32,32,32,32,32,32,60,102,108,97,103,62,119,120,66,79,84,84,79,77,124,119,
+120,69,88,80,65,78,68,124,119,120,76,69,70,84,124,119,120,84,79,80,60,47,
+102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,
+100,101,114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,
+32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,67,111,109,98,111,66,111,120,34,32,110,97,109,101,61,34,99,98,84,121,
+112,101,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,
+108,101,62,119,120,67,66,95,82,69,65,68,79,78,76,89,124,119,120,67,66,95,
+68,82,79,80,68,79,87,78,60,47,115,116,121,108,101,62,10,32,32,32,32,32,
+32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,50,55,48,44,45,49,100,
+60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,
+99,111,110,116,101,110,116,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,
+60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,
+98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,
+99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,
+62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,99,101,108,108,112,111,115,
+62,50,44,48,60,47,99,101,108,108,112,111,115,62,10,32,32,32,32,32,32,32,
+32,32,32,32,32,60,99,101,108,108,115,112,97,110,62,49,44,49,60,47,99,101,
+108,108,115,112,97,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,
+108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,
+73,67,65,76,124,119,120,76,69,70,84,124,119,120,82,73,71,72,84,124,119,
+120,84,79,80,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,
+32,60,98,111,114,100,101,114,62,52,60,47,98,111,114,100,101,114,62,10,32,
+32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,
+115,115,61,34,119,120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,
+109,101,61,34,115,116,83,99,104,101,109,97,34,62,10,32,32,32,32,32,32,32,
+32,32,32,32,32,32,32,60,108,97,98,101,108,62,83,99,104,101,109,97,60,47,
+108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,
+106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,
 99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,
 99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,
+32,32,32,32,32,32,32,32,32,32,32,60,99,101,108,108,112,111,115,62,50,44,
+49,60,47,99,101,108,108,112,111,115,62,10,32,32,32,32,32,32,32,32,32,32,
+32,32,60,99,101,108,108,115,112,97,110,62,49,44,49,60,47,99,101,108,108,
+115,112,97,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,
+103,62,119,120,66,79,84,84,79,77,124,119,120,69,88,80,65,78,68,124,119,
+120,76,69,70,84,124,119,120,84,79,80,60,47,102,108,97,103,62,10,32,32,32,
+32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111,
+114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,
+101,99,116,32,99,108,97,115,115,61,34,119,120,67,111,109,98,111,66,111,
+120,34,32,110,97,109,101,61,34,99,98,83,99,104,101,109,97,34,62,10,32,32,
+32,32,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,67,
+66,95,68,82,79,80,68,79,87,78,124,119,120,67,66,95,82,69,65,68,79,78,76,
+89,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,
+32,32,60,115,105,122,101,62,50,55,48,44,45,49,100,60,47,115,105,122,101,
+62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,111,110,116,101,110,
+116,47,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,
+116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,
+10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,
+115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,
+32,32,32,32,32,32,32,32,60,99,101,108,108,112,111,115,62,51,44,48,60,47,
+99,101,108,108,112,111,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,
+99,101,108,108,115,112,97,110,62,49,44,49,60,47,99,101,108,108,115,112,
+97,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,
+120,65,76,73,71,78,95,67,69,78,84,69,82,95,86,69,82,84,73,67,65,76,124,
+119,120,76,69,70,84,124,119,120,82,73,71,72,84,124,119,120,84,79,80,60,
+47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,
+100,101,114,62,52,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,
+32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,83,116,97,116,105,99,84,101,120,116,34,32,110,97,109,101,61,34,115,
+116,82,101,115,117,108,116,115,34,62,10,32,32,32,32,32,32,32,32,32,32,32,
+32,32,32,60,108,97,98,101,108,62,82,101,115,117,108,116,60,47,108,97,98,
+101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,
+99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,
+62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,
+97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,
+32,32,32,32,32,32,32,32,32,60,99,101,108,108,112,111,115,62,51,44,49,60,
+47,99,101,108,108,112,111,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,
+60,99,101,108,108,115,112,97,110,62,49,44,50,60,47,99,101,108,108,115,112,
+97,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,
+120,69,88,80,65,78,68,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,
+32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,100,101,114,
+62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,
+108,97,115,115,61,34,119,120,70,108,101,120,71,114,105,100,83,105,122,101,
+114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,114,111,119,115,
+62,48,60,47,114,111,119,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,
+32,60,99,111,108,115,62,49,60,47,99,111,108,115,62,10,32,32,32,32,32,32,
+32,32,32,32,32,32,32,32,60,118,103,97,112,62,48,60,47,118,103,97,112,62,
+10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,104,103,97,112,62,48,60,
+47,104,103,97,112,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,103,
+114,111,119,97,98,108,101,99,111,108,115,62,48,60,47,103,114,111,119,97,
+98,108,101,99,111,108,115,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,
+32,60,103,114,111,119,97,98,108,101,114,111,119,115,62,48,60,47,103,114,
+111,119,97,98,108,101,114,111,119,115,62,10,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,
+105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,32,60,111,112,116,105,111,110,62,48,60,47,111,112,116,105,
+111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,
+97,103,62,119,120,65,76,76,124,119,120,69,88,80,65,78,68,60,47,102,108,
+97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,
+114,100,101,114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,
 32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,
 115,115,61,34,119,120,76,105,115,116,67,116,114,108,34,32,110,97,109,101,
 61,34,108,99,82,101,115,117,108,116,115,34,62,10,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,60,115,105,122,101,62,51,52,48,44,49,53,48,100,60,47,
-115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,115,
-116,121,108,101,62,119,120,76,67,95,82,69,80,79,82,84,60,47,115,116,121,
-108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,
-99,116,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,
-120,69,88,80,65,78,68,124,119,120,65,76,73,71,78,95,67,69,78,84,69,82,95,
-86,69,82,84,73,67,65,76,124,119,120,84,79,80,124,119,120,76,69,70,84,124,
-119,120,82,73,71,72,84,124,119,120,66,79,84,84,79,77,60,47,102,108,97,103,
-62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,
-52,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,
-47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,
-101,99,116,62,10,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,
-88,80,65,78,68,124,119,120,65,76,73,71,78,95,67,69,78,84,82,69,124,119,
-120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,
-114,100,101,114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,
-32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,60,111,98,106,101,
-99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,
-62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
-115,61,34,119,120,70,108,101,120,71,114,105,100,83,105,122,101,114,34,62,
-10,32,32,32,32,32,32,32,32,32,32,60,99,111,108,115,62,51,60,47,99,111,108,
-115,62,10,32,32,32,32,32,32,32,32,32,32,60,103,114,111,119,97,98,108,101,
-99,111,108,115,62,49,60,47,103,114,111,119,97,98,108,101,99,111,108,115,
-62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,
-97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,
-32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,
-61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,
-73,68,95,72,69,76,80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
-60,108,97,98,101,108,62,72,101,108,112,60,47,108,97,98,101,108,62,10,32,
-32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,
-32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,
-78,68,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,
-32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111,114,100,
-101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,
-62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,
-97,115,115,61,34,115,112,97,99,101,114,34,62,10,32,32,32,32,32,32,32,32,
-32,32,32,32,60,115,105,122,101,62,48,44,48,100,60,47,115,105,122,101,62,
-10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,
+32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,62,51,52,48,44,49,53,48,
+100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,60,115,116,121,108,101,62,119,120,76,67,95,82,69,80,79,82,
+84,60,47,115,116,121,108,101,62,10,32,32,32,32,32,32,32,32,32,32,32,32,
+32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,
+32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,
+32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,
+98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,
+101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,99,101,108,108,
+112,111,115,62,48,44,50,60,47,99,101,108,108,112,111,115,62,10,32,32,32,
+32,32,32,32,32,32,32,32,32,60,99,101,108,108,115,112,97,110,62,51,44,49,
+60,47,99,101,108,108,115,112,97,110,62,10,32,32,32,32,32,32,32,32,32,32,
+32,32,60,102,108,97,103,62,119,120,65,76,73,71,78,95,67,69,78,84,69,82,
+95,72,79,82,73,90,79,78,84,65,76,60,47,102,108,97,103,62,10,32,32,32,32,
+32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,53,60,47,98,111,114,
+100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,
+99,116,32,99,108,97,115,115,61,34,119,120,66,111,120,83,105,122,101,114,
+34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,114,105,101,110,
+116,62,119,120,86,69,82,84,73,67,65,76,60,47,111,114,105,101,110,116,62,
+10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,
+99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,
+32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,
+62,48,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,32,60,102,108,97,103,62,119,120,76,69,70,84,124,119,120,
+84,79,80,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,
+32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111,114,100,101,114,
+62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,
+99,116,32,99,108,97,115,115,61,34,119,120,67,104,101,99,107,66,111,120,
+34,32,110,97,109,101,61,34,99,104,107,78,97,109,101,115,34,62,10,32,32,
+32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,
+110,97,109,101,115,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,
+32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62,49,60,47,
+99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,
+32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,
+32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,
+105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,32,60,111,112,116,105,111,110,62,48,60,47,111,112,116,105,
+111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,
+97,103,62,119,120,76,69,70,84,124,119,120,84,79,80,60,47,102,108,97,103,
+62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,100,
+101,114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,
 32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
-34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,
-32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
-66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,67,65,
-78,67,69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,
-98,101,108,62,38,97,109,112,59,67,108,111,115,101,60,47,108,97,98,101,108,
-62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,
-10,32,32,32,32,32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,
-88,80,65,78,68,124,119,120,65,76,76,60,47,102,108,97,103,62,10,32,32,32,
-32,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111,
-114,100,101,114,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,
-99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,
-32,32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,
-124,119,120,84,79,80,124,119,120,76,69,70,84,124,119,120,82,73,71,72,84,
-60,47,102,108,97,103,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,
-62,10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
-34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,
-60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,83,116,97,116,
-117,115,66,97,114,34,32,110,97,109,101,61,34,117,110,107,83,116,97,116,
-117,115,66,97,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,115,116,121,
-108,101,62,119,120,83,84,95,83,73,90,69,71,82,73,80,60,47,115,116,121,108,
-101,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,
-32,32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,124,
-119,120,65,76,73,71,78,95,67,69,78,84,82,69,60,47,102,108,97,103,62,10,
-32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,62,51,60,47,98,111,114,
-100,101,114,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,
-32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,60,47,111,98,106,101,99,
-116,62,10,60,47,114,101,115,111,117,114,99,101,62,10};
+34,119,120,67,104,101,99,107,66,111,120,34,32,110,97,109,101,61,34,99,104,
+107,68,101,102,105,110,105,116,105,111,110,115,34,62,10,32,32,32,32,32,
+32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,100,101,
+102,105,110,105,116,105,111,110,115,60,47,108,97,98,101,108,62,10,32,32,
+32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,
+100,62,48,60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,
+32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,
+32,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,
+32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
+115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,
+32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,48,60,47,111,
+112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
+32,60,102,108,97,103,62,119,120,76,69,70,84,124,119,120,84,79,80,60,47,
+102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,
+98,111,114,100,101,114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,32,
+32,32,32,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,
+97,115,115,61,34,119,120,67,104,101,99,107,66,111,120,34,32,110,97,109,
+101,61,34,99,104,107,67,111,109,109,101,110,116,115,34,62,10,32,32,32,32,
+32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,98,101,108,62,99,111,
+109,109,101,110,116,115,60,47,108,97,98,101,108,62,10,32,32,32,32,32,32,
+32,32,32,32,32,32,32,32,32,32,32,32,60,99,104,101,99,107,101,100,62,48,
+60,47,99,104,101,99,107,101,100,62,10,32,32,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,
+32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,
+32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,
+32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,
+98,106,101,99,116,62,10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,
+10,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
+115,105,122,101,114,105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,
+111,112,116,105,111,110,62,49,60,47,111,112,116,105,111,110,62,10,32,32,
+32,32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,60,47,
+102,108,97,103,62,10,32,32,32,32,32,32,32,32,60,98,111,114,100,101,114,
+62,53,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,32,32,60,111,
+98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,70,108,101,120,71,
+114,105,100,83,105,122,101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,60,
+114,111,119,115,62,48,60,47,114,111,119,115,62,10,32,32,32,32,32,32,32,
+32,32,32,60,99,111,108,115,62,51,60,47,99,111,108,115,62,10,32,32,32,32,
+32,32,32,32,32,32,60,118,103,97,112,62,48,60,47,118,103,97,112,62,10,32,
+32,32,32,32,32,32,32,32,32,60,104,103,97,112,62,48,60,47,104,103,97,112,
+62,10,32,32,32,32,32,32,32,32,32,32,60,103,114,111,119,97,98,108,101,99,
+111,108,115,62,49,60,47,103,114,111,119,97,98,108,101,99,111,108,115,62,
+10,32,32,32,32,32,32,32,32,32,32,60,103,114,111,119,97,98,108,101,114,111,
+119,115,47,62,10,32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,
+32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,101,109,34,62,10,
+32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,111,110,62,48,60,
+47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,
+102,108,97,103,62,119,120,69,88,80,65,78,68,124,119,120,65,76,76,60,47,
+102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,98,111,114,
+100,101,114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,32,32,32,32,
+32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,120,73,68,95,
+72,69,76,80,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,60,108,97,
+98,101,108,62,72,101,108,112,60,47,108,97,98,101,108,62,10,32,32,32,32,
+32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,
+32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,
+32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,112,97,99,
+101,114,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,115,105,122,101,
+62,48,44,48,100,60,47,115,105,122,101,62,10,32,32,32,32,32,32,32,32,32,
+32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,111,
+98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,105,116,
+101,109,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,111,112,116,105,
+111,110,62,48,60,47,111,112,116,105,111,110,62,10,32,32,32,32,32,32,32,
+32,32,32,32,32,60,102,108,97,103,62,119,120,69,88,80,65,78,68,124,119,120,
+65,76,76,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,32,32,32,32,
+60,98,111,114,100,101,114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,
+32,32,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
+115,61,34,119,120,66,117,116,116,111,110,34,32,110,97,109,101,61,34,119,
+120,73,68,95,67,65,78,67,69,76,34,62,10,32,32,32,32,32,32,32,32,32,32,32,
+32,32,32,60,108,97,98,101,108,62,38,97,109,112,59,67,108,111,115,101,60,
+47,108,97,98,101,108,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,47,111,
+98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,32,32,60,47,111,98,106,
+101,99,116,62,10,32,32,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,
+10,32,32,32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,
+60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,115,105,122,101,114,
+105,116,101,109,34,62,10,32,32,32,32,32,32,32,32,60,111,98,106,101,99,116,
+32,99,108,97,115,115,61,34,119,120,83,116,97,116,117,115,66,97,114,34,32,
+110,97,109,101,61,34,117,110,107,83,116,97,116,117,115,66,97,114,34,62,
+10,32,32,32,32,32,32,32,32,32,32,60,115,116,121,108,101,62,119,120,83,84,
+95,83,73,90,69,71,82,73,80,60,47,115,116,121,108,101,62,10,32,32,32,32,
+32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,32,32,32,32,60,
+102,108,97,103,62,119,120,69,88,80,65,78,68,124,119,120,65,76,73,71,78,
+95,67,69,78,84,82,69,60,47,102,108,97,103,62,10,32,32,32,32,32,32,32,32,
+60,98,111,114,100,101,114,62,51,60,47,98,111,114,100,101,114,62,10,32,32,
+32,32,32,32,60,47,111,98,106,101,99,116,62,10,32,32,32,32,60,47,111,98,
+106,101,99,116,62,10,32,32,60,47,111,98,106,101,99,116,62,10,60,47,114,
+101,115,111,117,114,99,101,62,10};
 
 static size_t xml_res_size_52 = 1165;
 static unsigned char xml_res_file_52[] = {
