view release on metacpan or search on metacpan
inc/Inline.pm view on Meta::CPAN
NOWARN => [WARNINGS => 0],
_INSTALL_ => [_INSTALL_ => 1],
SITE_INSTALL => undef, # No longer supported.
);
my $default_config =
{
NAME => '',
AUTONAME => -1,
VERSION => '',
DIRECTORY => '',
inc/Inline.pm view on Meta::CPAN
if ($class ne 'Inline') {
croak M01_usage_use($class) if $class =~ /^Inline::/;
croak M02_usage();
}
$CONFIG{$pkg}{template} ||= $default_config;
return unless @_;
&create_config_file(), return 1 if $_[0] eq '_CONFIG_';
goto &maker_utils if $_[0] =~ /^(install|makedist|makeppd)$/i;
inc/Inline.pm view on Meta::CPAN
my $o;
my ($pkg, $script) = caller;
my $class = shift;
croak M03_usage_bind() unless $class eq 'Inline';
$CONFIG{$pkg}{template} ||= $default_config;
my $language_id = shift or croak M03_usage_bind();
croak M03_usage_bind()
unless ($language_id =~ /^\S+$/ and $language_id !~ /\n/);
$code = shift or croak M03_usage_bind();
inc/Inline.pm view on Meta::CPAN
sub check_config {
my $o = shift;
my @others;
while (@_) {
my ($key, $value) = (shift, shift);
if (defined $default_config->{$key}) {
if ($key =~ /^(WITH|USING)$/) {
croak M10_usage_WITH_USING()
if (ref $value and ref $value ne 'ARRAY');
$value = [$value] unless ref $value;
$o->{CONFIG}{$key} = $value;
inc/Inline.pm view on Meta::CPAN
}
return (@others);
}
#==============================================================================
# Set option defaults based on current option settings.
#==============================================================================
sub fold_options {
my $o = shift;
# The following small section of code seems, to me, to be unnecessary - which is the
inc/Inline.pm view on Meta::CPAN
croak M02_usage() if $key =~ /[\s\n]/;
if ($key =~ /^(ENABLE|DISABLE)$/) {
($key, $value) = (uc $value, $key eq 'ENABLE' ? 1 : 0);
}
croak M47_invalid_config_option($key)
unless defined $default_config->{$key};
$CONFIG{$pkg}{template}{$key} = $value;
}
}
#==============================================================================
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MUDLike.pm view on Meta::CPAN
prop = jQuery.browser.msie ? "styleFloat" : "cssFloat";
if (!force && elem.style[prop])
ret = elem.style[prop];
else if (document.defaultView && document.defaultView.getComputedStyle) {
if (prop == "cssFloat" || prop == "styleFloat")
prop = "float";
prop = prop.replace(/([A-Z])/g,"-$1").toLowerCase();
var cur = document.defaultView.getComputedStyle(elem, null);
if ( cur )
ret = cur.getPropertyValue(prop);
else if ( prop == "display" )
ret = "none";
else
jQuery.swap(elem, { display: "block" }, function() {
var c = document.defaultView.getComputedStyle(this, "");
ret = c && c.getPropertyValue(prop) || "";
});
} else if (elem.currentStyle) {
lib/Acme/MUDLike.pm view on Meta::CPAN
var p = n / options.duration;
// If the easing function exists, then use it
z.now = options.easing && jQuery.easing[options.easing] ?
jQuery.easing[options.easing](p, n, firstNum, (lastNum-firstNum), options.duration) :
// else use default linear easing
((-Math.cos(p*Math.PI)/2) + 0.5) * (lastNum-firstNum) + firstNum;
// Perform the next step of the animation
z.a();
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/Machi.pm view on Meta::CPAN
unshift (@{$_[0]{Words}}, @_[1 .. $#_]);
}
=head2 affectionate
Randomly output one of predefined words to FILE_HANDLE, which default of is STDOUT.
Return: 1 if no problems while calling this method.
=cut
sub affectionate {
(ref $_[0]) || croak "Oops! Cannot call affectionate() using class method!";
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/Mahjong/Rule/CC.pm view on Meta::CPAN
require Exporter;
our @ISA = qw(Exporter);
# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.
# This allows declaration use Acme::Mahjong::Rule::CC ':all';
# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
# will save memory.
lib/Acme/Mahjong/Rule/CC.pm view on Meta::CPAN
=back
=head2 EXPORT
None by default.
=head1 SEE ALSO
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/Marvel/CinematicUniverse/Mite.pm view on Meta::CPAN
my %arg = map +( lc($_) => true ), @_;
my ( $caller, $file ) = caller;
if( _is_compiling() ) {
require Mite::Project;
'Mite::Project'->default->inject_mite_functions(
'package' => $caller,
'file' => $file,
'arg' => \%arg,
'shim' => $me,
);
lib/Acme/Marvel/CinematicUniverse/Mite.pm view on Meta::CPAN
# Usage: $me, $caller, $keyword, @has_args
sub HANDLE_has {
my ( $me, $caller, $keyword, $names ) = ( shift, shift, shift, shift );
if ( @_ % 2 ) {
my $default = shift;
unshift @_, ( 'CODE' eq ref( $default ) )
? ( is => lazy, builder => $default )
: ( is => ro, default => $default );
}
my %spec = @_;
my $code;
for my $name ( ref($names) ? @$names : $names ) {
$name =~ s/^\+//;
'CODE' eq ref( $code = $spec{default} )
and ${"$caller\::__$name\_DEFAULT__"} = $code;
'CODE' eq ref( $code = $spec{builder} )
and *{"$caller\::_build_$name"} = $code;
'CODE' eq ref( $code = $spec{trigger} )
and *{"$caller\::_trigger_$name"} = $code;
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/AutoInstall.pm view on Meta::CPAN
my ( @Missing, @Existing, %DisabledTests, $UnderCPAN, $HasCPANPLUS );
my ( $Config, $CheckOnly, $SkipInstall, $AcceptDefault, $TestOnly );
my ( $PostambleActions, $PostambleUsed );
# See if it's a testing or non-interactive session
_accept_default( $ENV{AUTOMATED_TESTING} or ! -t STDIN );
_init();
sub _accept_default {
$AcceptDefault = shift;
}
sub missing_modules {
return @Missing;
inc/Module/AutoInstall.pm view on Meta::CPAN
}
elsif ( $arg =~ /^--installdeps=(.*)$/ ) {
__PACKAGE__->install( $Config, @Missing = split( /,/, $1 ) );
exit 0;
}
elsif ( $arg =~ /^--default(?:deps)?$/ ) {
$AcceptDefault = 1;
}
elsif ( $arg =~ /^--check(?:deps)?$/ ) {
$CheckOnly = 1;
}
inc/Module/AutoInstall.pm view on Meta::CPAN
$TestOnly = 1;
}
}
}
# overrides MakeMaker's prompt() to automatically accept the default choice
sub _prompt {
goto &ExtUtils::MakeMaker::prompt unless $AcceptDefault;
my ( $prompt, $default ) = @_;
my $y = ( $default =~ /^[Yy]/ );
print $prompt, ' [', ( $y ? 'Y' : 'y' ), '/', ( $y ? 'n' : 'N' ), '] ';
print "$default\n";
return $default;
}
# the workhorse
sub import {
my $class = shift;
inc/Module/AutoInstall.pm view on Meta::CPAN
)[0]
);
while ( my ( $feature, $modules ) = splice( @args, 0, 2 ) ) {
my ( @required, @tests, @skiptests );
my $default = 1;
my $conflict = 0;
if ( $feature =~ m/^-(\w+)$/ ) {
my $option = lc($1);
inc/Module/AutoInstall.pm view on Meta::CPAN
print "[" . ( $FeatureMap{ lc($feature) } || $feature ) . "]\n";
$modules = [ %{$modules} ] if UNIVERSAL::isa( $modules, 'HASH' );
unshift @$modules, -default => &{ shift(@$modules) }
if ( ref( $modules->[0] ) eq 'CODE' ); # XXX: bugward combatability
while ( my ( $mod, $arg ) = splice( @$modules, 0, 2 ) ) {
if ( $mod =~ m/^-(\w+)$/ ) {
my $option = lc($1);
$default = $arg if ( $option eq 'default' );
$conflict = $arg if ( $option eq 'conflict' );
@tests = @{$arg} if ( $option eq 'tests' );
@skiptests = @{$arg} if ( $option eq 'skiptests' );
next;
inc/Module/AutoInstall.pm view on Meta::CPAN
or _prompt(
qq{==> Auto-install the }
. ( @required / 2 )
. ( $mandatory ? ' mandatory' : ' optional' )
. qq{ module(s) from CPAN?},
$default ? 'y' : 'n',
) =~ /^[Yy]/
)
)
{
push( @Missing, @required );
$DisabledTests{$_} = 1 for map { glob($_) } @skiptests;
}
elsif ( !$SkipInstall
and $default
and $mandatory
and
_prompt( qq{==> The module(s) are mandatory! Really skip?}, 'n', )
=~ /^[Nn]/ )
{
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/Meow.pm view on Meta::CPAN
}
=head1 EXPORTS
by default this package exports some methods for playing with your
kitties.
=head2 milk - give milk to a kitty.
if not called directly on a kitty, $_ will be checked for a kitty;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/3rd_rock.pm view on Meta::CPAN
feature.
=cut
__DATA__
# default
:all
# names first
dick sally harry tommy mary nina don leon bug caryn pitman judith august alissa vicki rico lucy elman larry doug liam christine jennifer chaz janice ana ginger jill chuck martha eddie george phillip randy connie seth marty dorothy
# names last
solomon albright dubcek strudwick howard randell rice sumner neesam deguzman zander ravelli montana gasteyer brand mafferty schulman debelko greschner goldberg
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/beatles.pm view on Meta::CPAN
the four first names (John, Paul, George, Ringo) of what we typically
consider to be the four Beatles. C<< full/standard >> contain the full
names of the fab four: John Lennon, Paul McCartney, George Harrison, and
Ringo Starr. However, in the early years of the band, the drummer was
Pete Best. Hence the additional themes C<< first/early >> and C<< full/early >>,
which swaps Ringo Starr for Pete Best. The default theme is
C<< first/standard >>.
A fifth theme is C<< albums >>, containing the names of the 12 albums that
are considered the "core" albums of The Beatles.
lib/Acme/MetaSyntactic/beatles.pm view on Meta::CPAN
=cut
__DATA__
# default
first/standard
# names first standard
John Paul George Ringo
# names full standard
John_Lennon Paul_McCartney George_Harrison Ringo_Starr
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/alphabet.pm view on Meta::CPAN
L<Acme::MetaSyntactic>, L<Acme::MetaSyntactic::Locale>.
=cut
__DATA__
# default
en
# names en
a b c d e f g h i j k l m n o p q r s t u v w x y z
# names it
a b c d e f g h i l m n o p q r s t u v z
view all matches for this distribution
view release on metacpan or search on metacpan
},
{
"class" : "Dist::Zilla::Plugin::MakeMaker",
"config" : {
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : 1
}
},
"name" : "@Filter/@Filter/MakeMaker",
"version" : "5.047"
},
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/always_sunny.pm view on Meta::CPAN
feature.
=cut
__DATA__
# default
:all
# names first
charlie mac rob dee dennis glenn wendell frank cricket matthew artemis waitress manager bonnie bill jack luther bill liam ryan maureen ben rex angel z chet carmen lefty barbara principal hwang gail brad jimmy shelley bruce schmitty ingrid
# names last
kelly reynolds albright mara ponderosa mcpoyle wallum macintyre doyle mathis nelson
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/boboiboy.pm view on Meta::CPAN
the same terms as the Perl 5 programming language system itself.
=cut
__DATA__
# default
:all
# names tmp_all
boboiboy yaya fang ying gopal
tokaba papazola kokoci tarung kaizo maskmana motobot ramenman
adudu probe ejojo borara retakka
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/breaking_bad.pm view on Meta::CPAN
feature.
=cut
__DATA__
# default
:all
# names first
walter skyler jesse marie hank saul steven mike gus skinny pete todd ted lydia badger george huell tyrus jane carmen andrea francesca tio victor brock gale jack kenny leonel frankie gratchen kuby bogdan combo marco kaylee lester matt tuco donald tim ...
# names last
white pinkman schrader goodman gomez ehrmantraut fring beneke rodarte quayle merkert kitt margolis molina cantillo salamanca boetticher delcavoli schwartz wolynetz ramey roberts markowski bolsa kalanchoe wachsberger munn gardiner goodman
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/chinese_zodiac.pm view on Meta::CPAN
the same terms as the Perl 5 programming language system itself.
=cut
__DATA__
# default
zodiac
# names zodiac
snake horse goat monkey rooster dog pig rat ox tiger rabbit dragon
# names element
wood fire earth metal water
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/christmas.pm view on Meta::CPAN
the same terms as the Perl 5 programming language system itself.
=cut
__DATA__
# default
:all
# names santa
santa saint clause nicholas nick kris kringle santy
# names elf
bushy evergreen
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/corner_gas.pm view on Meta::CPAN
feature.
=cut
__DATA__
# default
:all
# names first
brent lacey hank oscar emma davis karen wanda fitzy josh wes paul mertyl phil
# names last
leroy burrows yarbo quinton pelly dollard jensen humboldt kinistino runciman
view all matches for this distribution
view release on metacpan or search on metacpan
},
{
"class" : "Dist::Zilla::Plugin::MakeMaker",
"config" : {
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : 1
}
},
"name" : "@Author::PERLANCAR/@Filter/MakeMaker",
"version" : "6.008"
},
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/cpanauthors.pm view on Meta::CPAN
);
# protect against empty categories (Acme::CPANAuthors::Dutch)
delete $names{$_} for grep !$names{$_}, keys %names;
__PACKAGE__->init( { default => ':all', names => \%names } );
1;
__END__
view all matches for this distribution
view release on metacpan or search on metacpan
t/ams-24data.t view on Meta::CPAN
while (<$fh>) {
$in_data++ if /^__DATA__$/;
next if !$in_data;
$fail++, push @lines, $.
if /^#/ && !/^# ?(?:names(?: +[-\w]+)*|default)\s*$/;
}
is( $fail, 0, "__DATA__ section for $file" );
diag "Failed lines: @lines" if @lines;
close $fh;
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/dangdut.pm view on Meta::CPAN
the same terms as the Perl 5 programming language system itself.
=cut
__DATA__
# default
:all
# names first
rhoma elvy rita cita mansyur hamdan meggy muchsin itje jaja camelia iis evie mega vety cucu cici lilis nini fitri annisa juwita inul alam ria zaskia ayu jenita alam
# names last
irama sukaesih sugiarto citata alatas trisnawati miharja malik dahlia tamala mustika vera cahyati paramida karlina carlina bahar daratista amelia gotik tingting janet
view all matches for this distribution
view release on metacpan or search on metacpan
},
{
"class" : "Dist::Zilla::Plugin::MakeMaker",
"config" : {
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : 1
}
},
"name" : "@Author::PERLANCAR/@Filter/MakeMaker",
"version" : "6.008"
},
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/dune.pm view on Meta::CPAN
=head1 DESCRIPTION
This C<< Acme::MetaSyntactic >> theme contains codenames related to the Dune series.
There are several subcategories; see below for a full list. The default is
C<:all>. Codenames can appear in more than one.
=head1 THEMES AND SUBTHEMES
=over 2
lib/Acme/MetaSyntactic/dune.pm view on Meta::CPAN
=cut
1;
__DATA__
# default
:all
# names bene_gesserit
abomination accadia acolyte alma_mavis_taraza aloana_streggi anirul archives_mother aver_yohsa awareness_spectrum azhar_book baram bellonda bene_gesserit_training breeding_program burzmali calissa carlana cassius_ida_treac chapterhouse cienna clairby...
# names creatures
blackbird bristleback burrhorse butterfish butterfish centipede desert_hare desert_hawk desert_mouse desert_owl eagle elecran futar gaze_hound hawk heart_scallop kangaroo_mouse kulon laccifera_arctica laza_tiger leech_bat milkbug panther_fish qaraa r...
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/errno.pm view on Meta::CPAN
our $VERSION = '1.003';
use Errno ();
__PACKAGE__->init(
{ default => 'PERL',
names => {
POSIX => join( ' ', @{ $Errno::EXPORT_TAGS{POSIX} } ),
PERL => join( ' ', keys %! ),
},
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/frasier.pm view on Meta::CPAN
the same terms as the Perl 5 programming language system itself.
=cut
__DATA__
# default
:all
# names first
frasier daphne niles roz martin eddie bulldog kenny gil noel gertrude donny lilith james bebe mel ronee alice julia frederick simon lana sherry kirby charlotte kate
# names last
crane moon doyle briscoe daly chesterton shempsky douglas sternin glazer karnofsky lawrence wilcox gardner dempsey costas richman
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/gavan.pm view on Meta::CPAN
the same terms as the Perl 5 programming language system itself.
=cut
__DATA__
# default
:all
# names good
gavan mimi qom marin voicer alan deniga tsukiko hoshino kojiro oyama gosuke
fuji wakaba yoichi shigeru touyama
# names evil
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/id_beverages.pm view on Meta::CPAN
the same terms as the Perl 5 programming language system itself.
=cut
__DATA__
# default
:all
# names beverages
bajigur bandrek tubrik tarik sekoteng serbat stmj talua wedang pletok dadiah
cendol cincau dawet goyobod doger siwalan puter lahang legen cukrik ciu tuak
sopi moke lapen
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic/id_dishes.pm view on Meta::CPAN
the same terms as the Perl 5 programming language system itself.
=cut
__DATA__
# default
:all
# names dishes
arsika geprek kalasan penyet taliwang bakso bakmi bakwan betutu botok tinutuan
burgo capcai kwetiau cwiemie gepuk gadogado fuyunghai gudeg gulai karedok
ketupat kari ketoprak krecek kuluban laksa lakso lalap lawar lontong begana
view all matches for this distribution
view release on metacpan or search on metacpan
},
{
"class" : "Dist::Zilla::Plugin::MakeMaker",
"config" : {
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : 1
}
},
"name" : "@Author::PERLANCAR/@Filter/MakeMaker",
"version" : "6.008"
},
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/MetaSyntactic.pm view on Meta::CPAN
use File::Basename;
use File::Spec;
use File::Glob;
# some class data
our $Theme = 'foo'; # default theme
our %META;
# private class method
sub _find_themes {
my ( $class, @dirs ) = @_;
lib/Acme/MetaSyntactic.pm view on Meta::CPAN
sub new {
my ( $class, @args ) = ( @_ );
my $theme;
$theme = shift @args if @args % 2;
$theme = $Theme unless $theme; # same default everywhere
# defer croaking until name() is actually called
bless { theme => $theme, args => { @args }, meta => {} }, $class;
}
lib/Acme/MetaSyntactic.pm view on Meta::CPAN
Acme::MetaSyntactic - Themed metasyntactic variables names
=head1 SYNOPSIS
use Acme::MetaSyntactic; # loads the default theme
print metaname();
# this sets the default theme and loads Acme::MetaSyntactic::shadok
my $meta = Acme::MetaSyntactic->new( 'shadok' );
print $meta->name(); # return a single name
my @names = $meta->name( 4 ); # return 4 distinct names (if possible)
lib/Acme/MetaSyntactic.pm view on Meta::CPAN
my @foo = $meta->name( toto => 2 ); # return 2 names from theme toto
# but why would you need an instance variable?
use Acme::MetaSyntactic qw( batman robin );
# the first loaded theme is the default (here batman)
print metaname;
my @names = metaname( 4 );
print join ',', metabatman(3), metarobin;
lib/Acme/MetaSyntactic.pm view on Meta::CPAN
=over 4
=item new( $theme )
Create a new instance of C<Acme::MetaSyntactic> with the theme C<$theme>.
If C<$theme> is omitted, the default theme is C<foo>.
=item name( [ $theme, ] $count )
Return C<$count> items from theme C<$theme>. If no theme is given,
the theme is the one passed to the constructor.
If C<$count> is omitted, it defaults to C<1>.
If C<$count> is C<0>, the whole list is returned (this may vary depending
on the "behaviour" of the theme) in list context, and the size of the
list in scalar context.
lib/Acme/MetaSyntactic.pm view on Meta::CPAN
=back
Convenience methods also exists for all the themes. The methods are named
after the theme. They are exported only when the theme is actually used
or when it appear in the C<Acme::MetaSyntactic> import list. The first
imported theme is the default, used by the C<metaname()> function.
=head1 EXPORTS
Depending on how C<Acme::MetaSyntactic> is used, several functions can
be exported. All of them behave like the following:
lib/Acme/MetaSyntactic.pm view on Meta::CPAN
=over 4
=item metaname( [ $theme, ] $count )
Return C<$count> items from theme C<$theme>. If no theme is given,
the theme is "default" theme. See below how to change what the default is.
=back
=head2 Use cases
lib/Acme/MetaSyntactic.pm view on Meta::CPAN
This exports the C<metaname()> function only.
=item C<use Acme::MetaSyntactic 'theme';>
This exports the C<metaname()> function and the C<metaI<theme>()>
function. C<metaname()> default to the theme I<theme>.
=item C<use Acme::MetaSyntactic qw(theme1 theme2);>
This exports the C<metaname()>, C<metaI<theme1>()>, C<metaI<theme2>()>
functions. C<metaname()> default to the first theme of the list (I<theme1>).
=item C<use Acme::MetaSyntactic ':all';>
This exports the C<metaname()> function and the meta* functions for
B<all> themes. C<metaname()> default to the standard default theme (C<foo>).
=item C<use Acme::MetaSyntactic::theme;>
This exports the C<metaI<theme>()> function only. The C<metaname()>
function is not exported.
lib/Acme/MetaSyntactic.pm view on Meta::CPAN
=item C<Acme::MetaSyntactic::Locale>
The theme is made of several collections of names, each associated with
a "language". The language is either passed as a constructor parameter,
extracted from the environment or a default is selected.
=item C<Acme::MetaSyntactic::MultiList>
The theme is made of several collections of names, each associated with
a "category". Categories can include sub-categories, etc, I<ad infinitum>
(or when disk space or memory is exhausted, whichever happens first).
The category is either passed as a constructor parameter or the default
value is selected.
=item C<Acme::MetaSyntactic::Alias>
The theme is simply an alias of another theme. All items are identical,
view all matches for this distribution