Unexpected token 'UpdateOptions.ExpandFull'
Based on https://docs.microsoft.com/en-us/bi-reference/tom/add-a-data-source-to-tabular-model-analysis-services-amo-tom
i am trying to update the Database connectionstring changes:
Import-Module SqlServer
$newConnectionString = "Connection Timeout=60;User Id=SOME_NEW_ID;Data Source=10.10.19.10;Persist Security Info=True;Session Character Set=UTF8"
$svr = new-Object Microsoft.AnalysisServices.Tabular.Server
$svr.Connect("server1.domain.com")
$svr.databases[1].model.datasources[0].ConnectionString = $newConnectionString
$svr.Databases[1].model.datasources[0].Update(UpdateOptions.ExpandFull)
But i am getting errors:
Unexpected token 'UpdateOptions.ExpandFull' in expression or
statement.
if i do regular Update():
$svr.Databases[1].model.datasources[0].Update()
i get this:
Method invocation failed because
[Microsoft.AnalysisServices.Tabular.ProviderDataSource] does not
contain a method named 'Update'
and if i try SaveChanges()
:
$svr.Databases[1].Model.SaveChanges()
I get this error:
The following exception occurred while retrieving member
"SaveChanges": "Encountered an invalid type for a default value."
if i try just ExpandFull
$svr.Databases[1].model.datasources[0].Update(ExpandFull)
i get
Unexpected token 'ExpandFull' in expression or statement.
sql-server powershell azure-analysis-services
add a comment |
Based on https://docs.microsoft.com/en-us/bi-reference/tom/add-a-data-source-to-tabular-model-analysis-services-amo-tom
i am trying to update the Database connectionstring changes:
Import-Module SqlServer
$newConnectionString = "Connection Timeout=60;User Id=SOME_NEW_ID;Data Source=10.10.19.10;Persist Security Info=True;Session Character Set=UTF8"
$svr = new-Object Microsoft.AnalysisServices.Tabular.Server
$svr.Connect("server1.domain.com")
$svr.databases[1].model.datasources[0].ConnectionString = $newConnectionString
$svr.Databases[1].model.datasources[0].Update(UpdateOptions.ExpandFull)
But i am getting errors:
Unexpected token 'UpdateOptions.ExpandFull' in expression or
statement.
if i do regular Update():
$svr.Databases[1].model.datasources[0].Update()
i get this:
Method invocation failed because
[Microsoft.AnalysisServices.Tabular.ProviderDataSource] does not
contain a method named 'Update'
and if i try SaveChanges()
:
$svr.Databases[1].Model.SaveChanges()
I get this error:
The following exception occurred while retrieving member
"SaveChanges": "Encountered an invalid type for a default value."
if i try just ExpandFull
$svr.Databases[1].model.datasources[0].Update(ExpandFull)
i get
Unexpected token 'ExpandFull' in expression or statement.
sql-server powershell azure-analysis-services
add a comment |
Based on https://docs.microsoft.com/en-us/bi-reference/tom/add-a-data-source-to-tabular-model-analysis-services-amo-tom
i am trying to update the Database connectionstring changes:
Import-Module SqlServer
$newConnectionString = "Connection Timeout=60;User Id=SOME_NEW_ID;Data Source=10.10.19.10;Persist Security Info=True;Session Character Set=UTF8"
$svr = new-Object Microsoft.AnalysisServices.Tabular.Server
$svr.Connect("server1.domain.com")
$svr.databases[1].model.datasources[0].ConnectionString = $newConnectionString
$svr.Databases[1].model.datasources[0].Update(UpdateOptions.ExpandFull)
But i am getting errors:
Unexpected token 'UpdateOptions.ExpandFull' in expression or
statement.
if i do regular Update():
$svr.Databases[1].model.datasources[0].Update()
i get this:
Method invocation failed because
[Microsoft.AnalysisServices.Tabular.ProviderDataSource] does not
contain a method named 'Update'
and if i try SaveChanges()
:
$svr.Databases[1].Model.SaveChanges()
I get this error:
The following exception occurred while retrieving member
"SaveChanges": "Encountered an invalid type for a default value."
if i try just ExpandFull
$svr.Databases[1].model.datasources[0].Update(ExpandFull)
i get
Unexpected token 'ExpandFull' in expression or statement.
sql-server powershell azure-analysis-services
Based on https://docs.microsoft.com/en-us/bi-reference/tom/add-a-data-source-to-tabular-model-analysis-services-amo-tom
i am trying to update the Database connectionstring changes:
Import-Module SqlServer
$newConnectionString = "Connection Timeout=60;User Id=SOME_NEW_ID;Data Source=10.10.19.10;Persist Security Info=True;Session Character Set=UTF8"
$svr = new-Object Microsoft.AnalysisServices.Tabular.Server
$svr.Connect("server1.domain.com")
$svr.databases[1].model.datasources[0].ConnectionString = $newConnectionString
$svr.Databases[1].model.datasources[0].Update(UpdateOptions.ExpandFull)
But i am getting errors:
Unexpected token 'UpdateOptions.ExpandFull' in expression or
statement.
if i do regular Update():
$svr.Databases[1].model.datasources[0].Update()
i get this:
Method invocation failed because
[Microsoft.AnalysisServices.Tabular.ProviderDataSource] does not
contain a method named 'Update'
and if i try SaveChanges()
:
$svr.Databases[1].Model.SaveChanges()
I get this error:
The following exception occurred while retrieving member
"SaveChanges": "Encountered an invalid type for a default value."
if i try just ExpandFull
$svr.Databases[1].model.datasources[0].Update(ExpandFull)
i get
Unexpected token 'ExpandFull' in expression or statement.
sql-server powershell azure-analysis-services
sql-server powershell azure-analysis-services
asked Nov 11 '18 at 17:34
CatasterCataster
18912
18912
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
The error is the way that you specify the enum for the update.
You are working directly with .NET types and you have to understand / know where a given enum belongs. In this case the UpdateOptions lives in the Microsoft.AnalysisServices namespace
Updated
Import-Module SqlServer
$newConnectionString = "Connection Timeout=60;User Id=SOME_NEW_ID;Data Source=10.10.19.10;Persist Security Info=True;Session Character Set=UTF8"
$svr = new-Object Microsoft.AnalysisServices.Tabular.Server
$svr.Connect("server1.domain.com")
$svr.databases[1].model.datasources[0].ConnectionString = $newConnectionString
$svr.Databases[1].Update([Microsoft.AnalysisServices.UpdateOptions]::ExpandFull)
Method invocation failed because [Microsoft.AnalysisServices.Tabular.ProviderDataSource] does not contain a method named 'Update'.
– Cataster
Nov 11 '18 at 18:13
The update should be executed on the model. See my updated answer.
– Mötz
Nov 11 '18 at 18:15
even with that, i get error: The following exception occurred while retrieving member "Update": "Encountered an invalid type for a default value. ....At $svr.Databases[1].model.Update([Microsoft.AnalysisServices.Update ..
– Cataster
Nov 11 '18 at 18:17
btw, i have also tried this: $svr.Databases[1].model.datasources[0].Update, and it doesnt print out an error or even anything, and i checked the dataabse, but the new connection string didnt take effect...
– Cataster
Nov 11 '18 at 18:19
1
Thank you for not giving up on me 😀
– Mötz
Nov 11 '18 at 20:29
|
show 6 more comments
Your problem is primarily a syntax problem:
$svr.Databases[1].model.datasources[0].Update(UpdateOptions.ExpandFull)
The above is a .NET method call, which PowerShell parses in expression mode, which causes UpdateOptions.ExpandFull
to report a syntax error.
In expression mode:
references to types such as
UpdateOptions
must be enclosed in[...]
; e.g.,[UpdateOptions]
references to static members of that type must be referenced via the
::
operator; e.g.[UpdateOptions]::ExpandFull
That said, you must:
either: use the full type name,
[Microsoft.AnalysisServices.UpdateOptions]::ExpandFull
, as in Mötz' helpful answer.or, in PSv5+: by placing a
using namespace Microsoft.AnalysisServices
statement at the start of the script, you can make the more concise[UpdateOptions]::ExpandFull
work.
PowerShell offers a more convenient alternative, however: you can simply specify the enumeration value's symbolic name as a string - 'ExpandFull'
- and PowerShell will automatically perform the conversion for you:
$svr.Databases[1].model.datasources[0].Update('ExpandFull')
You don't even need to know the enumeration's type name for this to work (though, if you do know it, using it in a language-aware editor such as Visual Studio Code can provide you with IntelliSense).
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53251381%2funexpected-token-updateoptions-expandfull%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
The error is the way that you specify the enum for the update.
You are working directly with .NET types and you have to understand / know where a given enum belongs. In this case the UpdateOptions lives in the Microsoft.AnalysisServices namespace
Updated
Import-Module SqlServer
$newConnectionString = "Connection Timeout=60;User Id=SOME_NEW_ID;Data Source=10.10.19.10;Persist Security Info=True;Session Character Set=UTF8"
$svr = new-Object Microsoft.AnalysisServices.Tabular.Server
$svr.Connect("server1.domain.com")
$svr.databases[1].model.datasources[0].ConnectionString = $newConnectionString
$svr.Databases[1].Update([Microsoft.AnalysisServices.UpdateOptions]::ExpandFull)
Method invocation failed because [Microsoft.AnalysisServices.Tabular.ProviderDataSource] does not contain a method named 'Update'.
– Cataster
Nov 11 '18 at 18:13
The update should be executed on the model. See my updated answer.
– Mötz
Nov 11 '18 at 18:15
even with that, i get error: The following exception occurred while retrieving member "Update": "Encountered an invalid type for a default value. ....At $svr.Databases[1].model.Update([Microsoft.AnalysisServices.Update ..
– Cataster
Nov 11 '18 at 18:17
btw, i have also tried this: $svr.Databases[1].model.datasources[0].Update, and it doesnt print out an error or even anything, and i checked the dataabse, but the new connection string didnt take effect...
– Cataster
Nov 11 '18 at 18:19
1
Thank you for not giving up on me 😀
– Mötz
Nov 11 '18 at 20:29
|
show 6 more comments
The error is the way that you specify the enum for the update.
You are working directly with .NET types and you have to understand / know where a given enum belongs. In this case the UpdateOptions lives in the Microsoft.AnalysisServices namespace
Updated
Import-Module SqlServer
$newConnectionString = "Connection Timeout=60;User Id=SOME_NEW_ID;Data Source=10.10.19.10;Persist Security Info=True;Session Character Set=UTF8"
$svr = new-Object Microsoft.AnalysisServices.Tabular.Server
$svr.Connect("server1.domain.com")
$svr.databases[1].model.datasources[0].ConnectionString = $newConnectionString
$svr.Databases[1].Update([Microsoft.AnalysisServices.UpdateOptions]::ExpandFull)
Method invocation failed because [Microsoft.AnalysisServices.Tabular.ProviderDataSource] does not contain a method named 'Update'.
– Cataster
Nov 11 '18 at 18:13
The update should be executed on the model. See my updated answer.
– Mötz
Nov 11 '18 at 18:15
even with that, i get error: The following exception occurred while retrieving member "Update": "Encountered an invalid type for a default value. ....At $svr.Databases[1].model.Update([Microsoft.AnalysisServices.Update ..
– Cataster
Nov 11 '18 at 18:17
btw, i have also tried this: $svr.Databases[1].model.datasources[0].Update, and it doesnt print out an error or even anything, and i checked the dataabse, but the new connection string didnt take effect...
– Cataster
Nov 11 '18 at 18:19
1
Thank you for not giving up on me 😀
– Mötz
Nov 11 '18 at 20:29
|
show 6 more comments
The error is the way that you specify the enum for the update.
You are working directly with .NET types and you have to understand / know where a given enum belongs. In this case the UpdateOptions lives in the Microsoft.AnalysisServices namespace
Updated
Import-Module SqlServer
$newConnectionString = "Connection Timeout=60;User Id=SOME_NEW_ID;Data Source=10.10.19.10;Persist Security Info=True;Session Character Set=UTF8"
$svr = new-Object Microsoft.AnalysisServices.Tabular.Server
$svr.Connect("server1.domain.com")
$svr.databases[1].model.datasources[0].ConnectionString = $newConnectionString
$svr.Databases[1].Update([Microsoft.AnalysisServices.UpdateOptions]::ExpandFull)
The error is the way that you specify the enum for the update.
You are working directly with .NET types and you have to understand / know where a given enum belongs. In this case the UpdateOptions lives in the Microsoft.AnalysisServices namespace
Updated
Import-Module SqlServer
$newConnectionString = "Connection Timeout=60;User Id=SOME_NEW_ID;Data Source=10.10.19.10;Persist Security Info=True;Session Character Set=UTF8"
$svr = new-Object Microsoft.AnalysisServices.Tabular.Server
$svr.Connect("server1.domain.com")
$svr.databases[1].model.datasources[0].ConnectionString = $newConnectionString
$svr.Databases[1].Update([Microsoft.AnalysisServices.UpdateOptions]::ExpandFull)
edited Nov 11 '18 at 18:24
answered Nov 11 '18 at 18:08
MötzMötz
1,052711
1,052711
Method invocation failed because [Microsoft.AnalysisServices.Tabular.ProviderDataSource] does not contain a method named 'Update'.
– Cataster
Nov 11 '18 at 18:13
The update should be executed on the model. See my updated answer.
– Mötz
Nov 11 '18 at 18:15
even with that, i get error: The following exception occurred while retrieving member "Update": "Encountered an invalid type for a default value. ....At $svr.Databases[1].model.Update([Microsoft.AnalysisServices.Update ..
– Cataster
Nov 11 '18 at 18:17
btw, i have also tried this: $svr.Databases[1].model.datasources[0].Update, and it doesnt print out an error or even anything, and i checked the dataabse, but the new connection string didnt take effect...
– Cataster
Nov 11 '18 at 18:19
1
Thank you for not giving up on me 😀
– Mötz
Nov 11 '18 at 20:29
|
show 6 more comments
Method invocation failed because [Microsoft.AnalysisServices.Tabular.ProviderDataSource] does not contain a method named 'Update'.
– Cataster
Nov 11 '18 at 18:13
The update should be executed on the model. See my updated answer.
– Mötz
Nov 11 '18 at 18:15
even with that, i get error: The following exception occurred while retrieving member "Update": "Encountered an invalid type for a default value. ....At $svr.Databases[1].model.Update([Microsoft.AnalysisServices.Update ..
– Cataster
Nov 11 '18 at 18:17
btw, i have also tried this: $svr.Databases[1].model.datasources[0].Update, and it doesnt print out an error or even anything, and i checked the dataabse, but the new connection string didnt take effect...
– Cataster
Nov 11 '18 at 18:19
1
Thank you for not giving up on me 😀
– Mötz
Nov 11 '18 at 20:29
Method invocation failed because [Microsoft.AnalysisServices.Tabular.ProviderDataSource] does not contain a method named 'Update'.
– Cataster
Nov 11 '18 at 18:13
Method invocation failed because [Microsoft.AnalysisServices.Tabular.ProviderDataSource] does not contain a method named 'Update'.
– Cataster
Nov 11 '18 at 18:13
The update should be executed on the model. See my updated answer.
– Mötz
Nov 11 '18 at 18:15
The update should be executed on the model. See my updated answer.
– Mötz
Nov 11 '18 at 18:15
even with that, i get error: The following exception occurred while retrieving member "Update": "Encountered an invalid type for a default value. ....At $svr.Databases[1].model.Update([Microsoft.AnalysisServices.Update ..
– Cataster
Nov 11 '18 at 18:17
even with that, i get error: The following exception occurred while retrieving member "Update": "Encountered an invalid type for a default value. ....At $svr.Databases[1].model.Update([Microsoft.AnalysisServices.Update ..
– Cataster
Nov 11 '18 at 18:17
btw, i have also tried this: $svr.Databases[1].model.datasources[0].Update, and it doesnt print out an error or even anything, and i checked the dataabse, but the new connection string didnt take effect...
– Cataster
Nov 11 '18 at 18:19
btw, i have also tried this: $svr.Databases[1].model.datasources[0].Update, and it doesnt print out an error or even anything, and i checked the dataabse, but the new connection string didnt take effect...
– Cataster
Nov 11 '18 at 18:19
1
1
Thank you for not giving up on me 😀
– Mötz
Nov 11 '18 at 20:29
Thank you for not giving up on me 😀
– Mötz
Nov 11 '18 at 20:29
|
show 6 more comments
Your problem is primarily a syntax problem:
$svr.Databases[1].model.datasources[0].Update(UpdateOptions.ExpandFull)
The above is a .NET method call, which PowerShell parses in expression mode, which causes UpdateOptions.ExpandFull
to report a syntax error.
In expression mode:
references to types such as
UpdateOptions
must be enclosed in[...]
; e.g.,[UpdateOptions]
references to static members of that type must be referenced via the
::
operator; e.g.[UpdateOptions]::ExpandFull
That said, you must:
either: use the full type name,
[Microsoft.AnalysisServices.UpdateOptions]::ExpandFull
, as in Mötz' helpful answer.or, in PSv5+: by placing a
using namespace Microsoft.AnalysisServices
statement at the start of the script, you can make the more concise[UpdateOptions]::ExpandFull
work.
PowerShell offers a more convenient alternative, however: you can simply specify the enumeration value's symbolic name as a string - 'ExpandFull'
- and PowerShell will automatically perform the conversion for you:
$svr.Databases[1].model.datasources[0].Update('ExpandFull')
You don't even need to know the enumeration's type name for this to work (though, if you do know it, using it in a language-aware editor such as Visual Studio Code can provide you with IntelliSense).
add a comment |
Your problem is primarily a syntax problem:
$svr.Databases[1].model.datasources[0].Update(UpdateOptions.ExpandFull)
The above is a .NET method call, which PowerShell parses in expression mode, which causes UpdateOptions.ExpandFull
to report a syntax error.
In expression mode:
references to types such as
UpdateOptions
must be enclosed in[...]
; e.g.,[UpdateOptions]
references to static members of that type must be referenced via the
::
operator; e.g.[UpdateOptions]::ExpandFull
That said, you must:
either: use the full type name,
[Microsoft.AnalysisServices.UpdateOptions]::ExpandFull
, as in Mötz' helpful answer.or, in PSv5+: by placing a
using namespace Microsoft.AnalysisServices
statement at the start of the script, you can make the more concise[UpdateOptions]::ExpandFull
work.
PowerShell offers a more convenient alternative, however: you can simply specify the enumeration value's symbolic name as a string - 'ExpandFull'
- and PowerShell will automatically perform the conversion for you:
$svr.Databases[1].model.datasources[0].Update('ExpandFull')
You don't even need to know the enumeration's type name for this to work (though, if you do know it, using it in a language-aware editor such as Visual Studio Code can provide you with IntelliSense).
add a comment |
Your problem is primarily a syntax problem:
$svr.Databases[1].model.datasources[0].Update(UpdateOptions.ExpandFull)
The above is a .NET method call, which PowerShell parses in expression mode, which causes UpdateOptions.ExpandFull
to report a syntax error.
In expression mode:
references to types such as
UpdateOptions
must be enclosed in[...]
; e.g.,[UpdateOptions]
references to static members of that type must be referenced via the
::
operator; e.g.[UpdateOptions]::ExpandFull
That said, you must:
either: use the full type name,
[Microsoft.AnalysisServices.UpdateOptions]::ExpandFull
, as in Mötz' helpful answer.or, in PSv5+: by placing a
using namespace Microsoft.AnalysisServices
statement at the start of the script, you can make the more concise[UpdateOptions]::ExpandFull
work.
PowerShell offers a more convenient alternative, however: you can simply specify the enumeration value's symbolic name as a string - 'ExpandFull'
- and PowerShell will automatically perform the conversion for you:
$svr.Databases[1].model.datasources[0].Update('ExpandFull')
You don't even need to know the enumeration's type name for this to work (though, if you do know it, using it in a language-aware editor such as Visual Studio Code can provide you with IntelliSense).
Your problem is primarily a syntax problem:
$svr.Databases[1].model.datasources[0].Update(UpdateOptions.ExpandFull)
The above is a .NET method call, which PowerShell parses in expression mode, which causes UpdateOptions.ExpandFull
to report a syntax error.
In expression mode:
references to types such as
UpdateOptions
must be enclosed in[...]
; e.g.,[UpdateOptions]
references to static members of that type must be referenced via the
::
operator; e.g.[UpdateOptions]::ExpandFull
That said, you must:
either: use the full type name,
[Microsoft.AnalysisServices.UpdateOptions]::ExpandFull
, as in Mötz' helpful answer.or, in PSv5+: by placing a
using namespace Microsoft.AnalysisServices
statement at the start of the script, you can make the more concise[UpdateOptions]::ExpandFull
work.
PowerShell offers a more convenient alternative, however: you can simply specify the enumeration value's symbolic name as a string - 'ExpandFull'
- and PowerShell will automatically perform the conversion for you:
$svr.Databases[1].model.datasources[0].Update('ExpandFull')
You don't even need to know the enumeration's type name for this to work (though, if you do know it, using it in a language-aware editor such as Visual Studio Code can provide you with IntelliSense).
edited Nov 11 '18 at 23:37
answered Nov 11 '18 at 22:17
mklement0mklement0
129k20243280
129k20243280
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53251381%2funexpected-token-updateoptions-expandfull%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown